springmvc学习(二)
在第一章中为了练手创建一个基本的springmvc 例子,这章主要记录 spring mvc中如何 接受前端发送过来的请求,前端发送请求数据类型(基本数据类型int,sring 等。对象类型:例如修改一个user的信息 。以及包装的对象类型)一下分别介绍这三种类型是如何传递 接受的。
- 接受基本数据类型:int
搭建好一个基本springmvc的项目 配置 可以看我springmvc(一)
创建一个SpringMvcTransmitInt类,并且创建一个 transmitInt(int age)方法 如图:|
从浏览器中如何地址:http://localhost:8080/springmvc/transmitInt.action?age=2
注意:方法transmitInt(int age) 参数名 age必须和请求中的参数 相同 如果 不相同 则请求的时候报错:
绑定基本类型时候 如果要实现 请求参数和 方法参数 名 不相同 则 可以使用: @RequestParam 处理入参参数 和方法参数名字不一样的时候,value:请求的入参参入名(此处是age)required 是否为必填 ,defaultValue 默认值 如果请求中不带参数 则 默认值就是1
-
绑定 入参是pojo类型的数据
/** * 绑定对象 * * @param user * @return */ @RequestMapping("transmitPoJo") public ModelAndView transmitPoJo(User user) { ModelAndView mav = new ModelAndView(); mav.setViewName("transmitpackagepojo"); return mav; }
<body> <span>${ msg }</span> <!-- 上传图片是需要指定属性 enctype="multipart/form-data" --> <!-- <form id="itemForm" action="" method="post" enctype="multipart/form-data"> --> <form id="itemForm" action="${pageContext.request.contextPath }/transmitPoJo.action" enctype="multipart/form-data" method="pos"> <table width="100%" border=1> <tr> <td>姓名</td> <td><input type="text" name="name" value="${user.name}" /></td> </tr> <tr> <td>岁数</td> <td><input type="text" name="age" value="${user.age}" /></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="提交" /> </td> </tr> </table> </form> </body>
public class User { public String name; public int age; public Address address; public User() { } public User(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } @Override public String toString() { return "User [name=" + name + ", age=" + age + ", address=" + address + "]"; } }
注意:传递对象的时候 jsp中的name需要和user中的属性 相同
- 绑定 入参是包装类型的对象
<body> <span>${ msg }</span> <!-- 上传图片是需要指定属性 enctype="multipart/form-data" --> <!-- <form id="itemForm" action="" method="post" enctype="multipart/form-data"> --> <form id="itemForm" action="${pageContext.request.contextPath }/transmitPoJoList.action" enctype="multipart/form-data" method="pos"> <table width="100%" border=1> <tr> <td>姓名</td> <td><input type="text" name="name" value="${user.name}" /></td> </tr> <tr> <td>岁数</td> <td><input type="text" name="age" value="${user.age}" /></td> </tr> <tr> <td>用户省份</td> <td><input type="text" name="address.province" value="${address.province}" /></td> </tr> <tr> <td>用户城市</td> <td><input type="text" name="address.city" value="${address.city}" /></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="提交" /> </td> </tr> </table> </form> </body>
jsp中的name必须和User里面的address 的属性名相同 用 . - 此外 springmvc 传递 数据 还有 数组类型 和 集合类型。感兴趣的朋友 可以自己去试试。以上内容如果哪里有说的不对 或者 理解错误的 希望多包涵,帮忙指正