springMVC自动封装对象

来源:互联网 发布:js文件中定义全局变量 编辑:程序博客网 时间:2024/06/16 06:49

springMVC自动获取jsp页面input中的值,封装成对象传入后台

最近做公司的项目,项目采用的是ssm框架,发现后台在采集jsp页面表单里面的数据时没有用到传统的request.getParameter(),而是在controller的传入参数多了几个对象。因此发现springMVC的这个功能。

具体例子如下所示:

建立一个jsp页面vacate.jsp

后台接受的controller代码:

[java] view plain copy
  1. import java.util.Map;  
  2.   
  3. import javax.servlet.http.HttpServletRequest;  
  4. import javax.servlet.http.HttpServletResponse;  
  5.   
  6. import org.springframework.stereotype.Controller;  
  7. import org.springframework.web.bind.annotation.RequestMapping;  
  8. import org.springframework.web.servlet.ModelAndView;  
  9.   
  10. import com.zyl.nonglin.base.BaseController;  
  11. import com.zyl.nonglin.base.entity.Vacate;  
  12.   
  13. @Controller  
  14. @RequestMapping(value="/admin/qingjia")  
  15. public class VacateController extends BaseController{  
  16.   
  17.     /** 
  18.      * 跳转到请假页面 
  19.      * @param req 
  20.      * @param resp 
  21.      * @return 
  22.      */  
  23.     @RequestMapping(value="/toVacate")  
  24.     public ModelAndView toVacate(HttpServletRequest req,HttpServletResponse resp){  
  25.         Map<String,Object> context = getRootMap();  
  26.         return forword("/qingjia/vacate", context);  
  27.     }  
  28.     /** 
  29.      * 提交请假信息 
  30.      * @param vacate 
  31.      * @param req 
  32.      * @param resp 
  33.      */  
  34.     @RequestMapping(value="/addVacate")  
  35.     public void addVacate(Vacate vacate,HttpServletRequest req,HttpServletResponse resp){  
  36.         System.out.println(vacate.getClassNum());//  
  37.         System.out.println(vacate.getReason());  
  38.         System.out.println(vacate.getsName());  
  39.         System.out.println(vacate.getsNum());  
  40.         System.out.println(vacate.getsPhone());  
  41.     }  
  42. }  


Vacate实体类
[java] view plain copy
  1. /** 
  2.  * 请假信息类 
  3.  * @author 
  4.  * 
  5.  */  
  6. public class Vacate {  
  7.   
  8.     private String id;  
  9.     private String sNum;//学生学号  
  10.     private String sName;//学生姓名  
  11.     private String classNum;//班级编号  
  12.     private String ctime;//请假时间  
  13.     private String sPhone;//学生电话  
  14.     private String reason;//理由  
  15.     public String getId() {  
  16.         return id;  
  17.     }  
  18.     public void setId(String id) {  
  19.         this.id = id;  
  20.     }  
  21.     public String getsNum() {  
  22.         return sNum;  
  23.     }  
  24.     public void setsNum(String sNum) {  
  25.         this.sNum = sNum;  
  26.     }  
  27.     public String getsName() {  
  28.         return sName;  
  29.     }  
  30.     public void setsName(String sName) {  
  31.         this.sName = sName;  
  32.     }  
  33.     public String getClassNum() {  
  34.         return classNum;  
  35.     }  
  36.     public void setClassNum(String classNum) {  
  37.         this.classNum = classNum;  
  38.     }  
  39.     public String getCtime() {  
  40.         return ctime;  
  41.     }  
  42.     public void setCtime(String ctime) {  
  43.         this.ctime = ctime;  
  44.     }  
  45.     public String getsPhone() {  
  46.         return sPhone;  
  47.     }  
  48.     public void setsPhone(String sPhone) {  
  49.         this.sPhone = sPhone;  
  50.     }  
  51.     public String getReason() {  
  52.         return reason;  
  53.     }  
  54.     public void setReason(String reason) {  
  55.         this.reason = reason;  
  56.     }  
  57.       
  58.       
  59. }  

前端页面样式:

提交后可以看到控制台输出: