在控制类的方法参数中利用javabean(实体类)来收集参数 (10)
2017-04-24 16:28
99 查看
在业务控制方法中写入User实体类参数
模型中的属性名必须和客户端参数名一一对应
这里说的模型不是Model对象,这里的模型是指一个javabean,Model是向视图中封装的数据
步一:创建User实体类
步三:编写控制类及方法
步四:部署项目。访问http://localhost:8080/springmvc02/jsp/6.jsp
输入数据,经过控制类,会将客户端的数据对照User中的属性就行对应,然后匹配上的就封装到user中,model.addAttribute("user",user);到model中
在/jsp/6.jsp通过EL表达式可以访问到的model中的user数据
在业务控制方法中写入多个实体类参数
1)如果多个模型中有相同的属性时,可以用user.name或admin.name来收集客户端参数
编号:<input type="text" name="name" value="${user.id}"/><br/> 因为这里的name="name"不知道指的是user的name属性还是admin的name属性
2)用一个新的模型将User和Admin再封装一次,封装在Bean类中
分别编写User类和Admin类(这里不写了)
Bean.java
编写/jsp/5.jsp
编写控制类
访问http://localhost:8080/springmvc02/jsp/5.jsp,填写表单数据提交 经过控制类的处理,将数据封装到bean中,并model.addAttribute("bean",bean);放到model中,在返回到/jsp/5.jsp中将数据提取出来
模型中的属性名必须和客户端参数名一一对应
这里说的模型不是Model对象,这里的模型是指一个javabean,Model是向视图中封装的数据
步一:创建User实体类
package com.mo.pojo; import java.util.Date; public class User { private Integer id; private String name; private Double sal; private Date hiredate; public User(){} public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Double getSal() { return sal; } public void setSal(Double sal) { this.sal = sal; } public Date getHiredate() { return hiredate; } public void setHiredate(Date hiredate) { this.hiredate = hiredate; } @Override public String toString() { return this.id + ":" + this.name + ":" + this.sal + ":" + this.hiredate; } }步二:编写/jsp/6.jsp创建一个表单,这里表单里面的name属性必须与User里面对应的属性一致,
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP '5.jsp' starting page</title> </head> <body> <form action="${pageContext.request.contextPath}/person/pojo.action" method="post"> 编号:<input type="text" name="id" value="${user.id}"/><br/> 姓名:<input type="text" name="name" value="${user.name}"/><br/> 薪水:<input type="text" name="sal" value="${user.sal}"/><br/> 入职时间:<input type="text" name="hiredate" value="${user.hiredate}"/><br/> <input type="submit" value="提交"> </form> </body> </html>
步三:编写控制类及方法
@Controller @RequestMapping(value="/person") public class PersonAction { //将客户端的String类型的数据转化成Date类型的 @InitBinder protected void initBinder(HttpServletRequest request,ServletRequestDataBinder binder) throws Exception { binder.registerCustomEditor( Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),true)); } @RequestMapping(value="/pojo") public String pojo(User user,Model model){ System.out.println(user); model.addAttribute("user",user); return "/jsp/6.jsp"; }
步四:部署项目。访问http://localhost:8080/springmvc02/jsp/6.jsp
输入数据,经过控制类,会将客户端的数据对照User中的属性就行对应,然后匹配上的就封装到user中,model.addAttribute("user",user);到model中
在/jsp/6.jsp通过EL表达式可以访问到的model中的user数据
在业务控制方法中写入多个实体类参数
1)如果多个模型中有相同的属性时,可以用user.name或admin.name来收集客户端参数
编号:<input type="text" name="name" value="${user.id}"/><br/> 因为这里的name="name"不知道指的是user的name属性还是admin的name属性
2)用一个新的模型将User和Admin再封装一次,封装在Bean类中
分别编写User类和Admin类(这里不写了)
Bean.java
package com.mo.pojo; public class Bean { private User user; private Admin admin; public Bean(){} public User getUser() { return user; } public void setUser(User user) { this.user = user; } public Admin getAdmin() { return admin; } public void setAdmin(Admin admin) { this.admin = admin; } }
编写/jsp/5.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP '5.jsp' starting page</title> </head> <body> <form action="${pageContext.request.contextPath}/person/add.action" method="post"> 编号:<input type="text" name="user.id" value="${bean.user.id}"/><br/> 姓名:<input type="text" name="user.name" value="${bean.user.name}"/><br/> 薪水:<input type="text" name="user.sal" value="${bean.user.sal}"/><br/> 入职时间:<input type="text" name="user.hiredate" value="${bean.user.hiredate}"/><br/> <input type="submit" value="提交"> </form> </body> </html>
编写控制类
@Controller @RequestMapping(value="/person") public class PersonAction { //将客户端的String类型的数据转化成Date类型的 @InitBinder protected void initBinder(HttpServletRequest request,ServletRequestDataBinder binder) throws Exception { binder.registerCustomEditor( Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),true)); } @RequestMapping(value="/add") public String add(Bean bean,Model model){ System.out.println(bean.getUser()); System.out.println(bean.getAdmin()); model.addAttribute("bean",bean); return "/jsp/5.jsp"; }
访问http://localhost:8080/springmvc02/jsp/5.jsp,填写表单数据提交 经过控制类的处理,将数据封装到bean中,并model.addAttribute("bean",bean);放到model中,在返回到/jsp/5.jsp中将数据提取出来
相关文章推荐
- 【SpringMVC】在业务控制方法中收集数组与List<JavaBean>参数(十五)
- 在业务控制方法中收集List<JavaBean>参数 (例如 同时添加多个用户) (12)
- SpringMVC 在业务控制方法中收集数组及List<JavaBean>参数
- springmvc中,在业务控制方法中,收集数组参数,收集List集合包含javabean
- 业务控制方法中收集数组参数 (例如 批量删除用户) (11)
- springmvc在业务控制方法中收集List<JavaBean>参数,实现批量处理
- SpringMVC 在业务控制方法中写入模型变量收集参数,且使用@InitBind来解决字符串转日期类型
- springmvc中一个Action中,写多个类似的业务控制方法+在业务控制方法中写入普通变量收集参数+限定某个业务控制方法。只允许GET或POST请求方式访问
- 【SpringMVC】在业务控制方法中写入User,Admin多个模型收集参数(十四)
- Springmvc中,在业务控制方法中写入包装类收集参数
- 利用Javassist获取Java类中的方法参数名、参数类型、方法访问类型
- 控制 Flash Player 的 JavaScript 方法一览表【收集纠正】
- 利用Java生成静态HMTL页面的方法收集
- 利用反射技术动态执行方法时如何取引用类参数的值
- 模板参数的编译时检查方法,利用typedef