后台通过Map向前台传递实体参数
实体:@Entity@Table(name = "tbl_user")
public class User1 implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="user_no") private int userNo; @NotEmpty(message="姓名不能为空") @Column(name="user_name") private String userName; @NotEmpty(message="密码不能为空") //@Length(min=6,message="密码长度不能小于6位") //@Length(max=8,message="密码长度不能大于8位") private String userPwd; public User1(String name,String pwd){ this.userName=name; this.userPwd=pwd; } public User1(){};
.......
}
控制层代码
@Controller @RequestMapping("/security") public class SecurityController { @Autowired private User1Service userService ; @GetMapping("/toLogin") public String toLogin(Map<String, Object> map) { 必须作为方法的参数,否则无法传递到前端 map.put("user", new User1("user1","pwd1")); return "login"; }
前端 login.html :
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>课程管理系统登录页面</title> <link rel="stylesheet" type="text/css" th:href="@{/css/style.css}" /> <script type="text/javascript" th:src="@{/js/jquery-3.1.1.min.js}"></script> </head> <body> <div> <div id="wrapper" style="text-align:center"> <img id="login" width="100" height="20" th:src="@{/pics/logo.png}" /> <div id="f_title">课程管理系统用户登录</div> <!--${user}取后台转递的map参数,其中有个key是user--> <form th:action="@{/security/login}" method="post" th:object="${user}"> // 取参数map的key=user的实体对象 <div class="f_row"> <span>用户姓名:</span> <input type="text" class="form-control" name="userName" th:value="*{userName}" placeholder="请输入姓名"> Thymeleaf取实体对象成员 userName的值 ,如果=null , 则显示:请输入姓名 </div> <div class="f_row"> <span>登录密码:</span> <input type="text" class="form-control" name="userPwd" th:value="*{userPwd}" placeholder="请输入密码"> 必须要用 th:value取值,否则即使name的名称和实体成员名称一致也不会显示值 </div> <br> <div class="f_row"> <input type="submit" value=" 登 录 "></input> <a th:href="@{/security/register}" target="_blank">注册</a> </div> </form> </div> </div> <div id="footer"> <div th:insert="footer :: copy"></div> <div th:insert="footer :: time"></div> </div> </body> </html>
运行结果