请求参数绑定
方式一:在请求路径上加上参数
<%--请求参数绑定--%>
<a href="param/testParam?username=hyc&password=123">请求参数绑定</a>
控制类中的方法上传递路径的参数,要求名字相同。
@RequestMapping("/testParam")
public String testParam(String username,String password){
System.out.println("执行了...");
System.out.println("用户名为:"+username);
System.out.println("密码为:"+password);
return "success";
}
方式二:参数封装到实体类
<form action="param/saveAccount" method="post">
姓名:<input type="text" name="username"><br>
密码:<input type="text" name="password"><br>
金额:<input type="text" name="money"><br>
用户姓名:<input type="text" name="user.uname"><br>
用户年龄:<input type="text" name="user.age"><br>
<input type="submit" value="提交">
</form>
新建一个JavaBean类Account还有User类,JavaBean类中的属性名称要与input框name相同。
Account类:
private String username;
private String password;
private Double money;
private User user;
User类:
private String uname;
private Integer age;
解决中文乱码问题:在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>
封装集合
<form action="param/saveAccount" method="post">
姓名:<input type="text" name="username"><br>
密码:<input type="text" name="password"><br>
金额:<input type="text" name="money"><br>
用户姓名:<input type="text" name="list[0].uname"><br>
用户年龄:<input type="text" name="list[0].age"><br>
用户姓名:<input type="text" name="map['one'].uname"><br>
用户年龄:<input type="text" name="map['one'].age"><br>
<input type="submit" value="提交">
</form>
泛型为User的list和map
private String username;
private String password;
private Double money;
/*private User user;*/
private List<User> list;
private Map<String,User> map;
自定义类型转换器
新建一个工具类 StringToDateConverter继承自 Converter<String, 要转换成的类型>
/**
*
* @param s 传入的字符串
* @return
*/
@Override
public Date convert(String s) {
//判断
if(s==null){
throw new RuntimeException("请您输入数据");
}
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
try {
return df.parse(s);
} catch (Exception e) {
throw new RuntimeException("数据类型转换出错");
}
}
在springMVC中添加自定义类型转换器的组件
<!--配置自定义类型转换器-->
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="cn.utils.StringToDateConverter"></bean>
</set>
</property>
</bean>
<!--开启springMVC注解支持-->
<mvc:annotation-driven conversion-service="conversionService"/>