第一部分(html页面和控制器之间传递,对象,集合,数组)
Thymeleaf教程
@RequestParam(value = “username”,required = false),flase可以没有参数
1.Controller.java(控制器页面)
记得要写注解
@Controller
public class IndexController_zhujie {
@RequestMapping("/hello")
public String hello(Model model){
//向页面传递对象
User user=new User();
user.setUserName("李明");
user.setUserPassword("123456");
model.addAttribute(user);
//向页面传递集合
List userList=new ArrayList<>();
model.addAttribute("userList",userList);
//向页面传递数组
String[]string={"李明","二公子","二少爷"};
model.addAttribute("array",string);
return "text";
}
}
2.html(视图页面)
注:
1.顶端要写上此标签(有空格,复制要去掉 < html lang=“en” xmlns:th=“http://www.thymeleaf.org”>)
- 名字
- 名字
第二部分 (页面之间传递,对象,集合,数组,的时候带参数)
thmeleaf链接
< html lang=“en” xmlns:th=“http://www.thymeleaf.org”> //开头标签,有空格。赋值需要删掉
// 写法一
1.html 页面
修改
删除
注:
1. /user/update/是跳转的地址
2. ${user.id},是带过去的参数
3. th:要记得写,注意拼接
2.controller控制器页面
@GetMapping("/update/{id}")
public String update(@PathVariable("id") int userId,Model model)
注:不通过url加?的形式,控制器要通过写需要写 {传的参数},参数列表要写@PathVariable("参数")
注:如果是form表单提交,注解用@PostMapping
// 写法二
1.html 页面
首页
上一页
删除
注:通过?的形式传递参数,拼接需注意最后有两个}的符号
注:删除可以放一张图片标签,可以和文字修改替换
2.controller控制器页面
@PostMapping("/updateUser")
public String updateUser(Long id,String usercode,String username,String userpassword)
注:多个参数,通过form表单提交,参数列表直接写上需要的参数就行
实例----修改信息(利用方法二实现的)
Controller 控制器页面
//修改
思路:
先根据前台传过来的id,查询得到对象,放进model中,在表单中显示
将修改后的参数,通过form表单,传给controller控制层,去调方法修改
1.先根据前台传过来的id,查询得到对象,放进model中,在表单中显示
@RequestMapping("/update")
public String update(Long id,Model model){
User user = userService.selectByPrimaryKey(id);
if (user!=null){
model.addAttribute(user);
return "updateUser";
}else {
return "redirect:/userlist?pageNo=1";
}
}
2.将修改后的参数,通过form表单,传给controller控制层,去调方法修改
@PostMapping("/updateUser")
public String updateUser(Long id,String usercode,String username){
User user=new User();
user.setId(id);
user.setUsercode(usercode);
user.setUsername(username);
int i = userService.updateByPrimaryKeySelective(user);
if (i>0){
return "redirect:/userlist?pageNo=1";
}else {
return "update";
}
}
//修改的时候,主键不能修改
注:readonly="readonly 只读属性
第三部分 thmeleaf 的转发和重定向 (控制器层,增加,修改,成功后转到新页面)
1.重定向
return "redirect:/userlist?pageNo=1"
注:userlist,是视图名
2.转发
return "forward:login";
3.以前的转发和重定向写法如下
response.sendRedirect("jsp/frame.jsp")
request.getRequestDispatcher("login.jsp").forward(request, response);
第四部分 (翻页功能)
//暂时不知道是干嘛的
// 当前页>1
首页
上一页
// 当前页<总页数
下一页
末页
// 跳转至()页面
页
第五部分 (查看,修改,删除)
1.查看
2.修改
3.删除
注:img图片标签可以换成,汉字的增删查改
第六部分 (补充)
下拉框
1.thymeleaf
1.遍历
注:${user.id==user2.id}, user.id是放在mode中的集合中的对象,user2.id,是放在model中的对象
2.固定数量
2.Json遍历下拉框(3步骤)
1.标签区
讨论版区
2.Json遍历区
//遍历下拉框 下拉框
var sortId2=$("#sortId2").val(); //隐藏域的值
$("#sortId").html(""); //清空下拉框
for(var i=0;i < data.sort.length;i++){
if(data.sort[i].id==parseInt(sortId2)){ //如果下拉框的值和隐藏域的值相等,设为默认
$("#sortId").append("");
}else {
$("#sortId").append("");
}
}
3.点击查询
//点击查询
$("#find").click(function () {
var sortId=$("#sortId").val(); //将下拉框的值放进隐藏域 维护隐藏域的值
$("#sortId2").val(sortId);
show();
})
注:后台,在service实现类中,查询所有下拉框的值和页面展示的信息,将两个集合一起放进Map中,
将字符串转换为Date
//将字符串转换为Date
年龄