1.请求参数的绑定
1)绑定机制:如果处理器参数和请求中的键名一样,MVC框架会自动将键对应的值赋给同名的处理器参数。
2)支持的数据类型:
基本数据类型和字符串类型
JAVABean
集合类型(list、map等)
3)封装JAVABean的示例:
.jsp文件:
<form action="param/saveAccount" method="post"> 姓名:<input type="text" name="username"/><br/> 密码:<input type="password" name="password"/><br/> 金额:<input type="text" name="money"/><br/> 用户名:<input type="text" name="user.uname"><br/> 年龄:<input type="text" name="user.age"> <input type="submit" value="提交"> </form>
bean:
Account: private String username; private String password; private Double money; private User user; User: private String uname; private Integer age;
处理器:
/** * 将处理器的参数设置为JavaBean,使得请求参数封装进该Bean * @param account * @return */ @RequestMapping("/saveAccount") public String saveAccount(Account account){ System.out.println("username: "+account.getUsername()); System.out.println("password: "+account.getPassword()); System.out.println("money: "+account.getMoney()); System.out.println("用户名: "+account.getUser().getUname()); System.out.println("年龄: "+account.getUser().getAge()); return "success"; }
web.xml(配置解决中文乱码的过滤器):
<!--配置解决中文乱码的过滤器--> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
4)封装集合的示例:
.jsp: <%--集合类型的参数绑定规则: List<User> users <---> name="users[x].属性" --%> <form action="param/saveAccount" method="post"> 姓名:<input type="text" name="username"/><br/> 密码:<input type="password" name="password"/><br/> 用户名List0:<input type="text" name="users[0].uname"><br/> 年龄List0:<input type="text" name="users[0].age"> 用户名List1:<input type="text" name="users[1].uname"><br/> 年龄List1:<input type="text" name="users[1].age"> 用户名Map0:<input type="text" name="userMap[‘0‘].uname"><br/> 年龄Map0:<input type="text" name="userMap[‘0‘].age"> 用户名Map1:<input type="text" name="userMap[‘1‘].uname"><br/> 年龄Map1:<input type="text" name="userMap[‘1‘].age"> <input type="submit" value="提交"> </form> Bean: private String username; private String password; private List<User> users; private Map<String,User> userMap;
2.自定义类型转换器
1)表单提交的任何数据类型都是字符串,但是Spring框架内部会默认进行数据类型转换
2)如果想自定义数据类型转换,可以实现Converter接口
原文:https://www.cnblogs.com/A-PP-Z-droplet/p/13682211.html