thymeleaf---前后台传递对象集合---页面传参---转发和重定向---翻页功能---查看修改删除---下拉框

第一部分(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”>)

2.还有Thymeleaf视图解析器,在servlet配置文件中配


	

姓名

密码:

  • 名字
  • 名字

第二部分 (页面之间传递,对象,集合,数组,的时候带参数)
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
年龄

你可能感兴趣的:(常用工具类)