- 日期转换器
在默认情况下,springmvc不能将String类型转成Date类型,必须自定义类型转换器
1) 如果action是继承自AbstractCommandController,则可以重写initBinder(HttpServletRequest request,ServletRequestDataBinder binder)方法实现:
public class AdminAction extends AbstractCommandController{
@Override
protected void initBinder(HttpServletRequest reque st,ServletRequestDataBinder binder) throws Exception {
binder.registerCustomEditor(Date.class,new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),true));
}
2) 如果没有继承该类,则可以用注解实现
@Controller
@RequestMapping(value = "/user")
public class UserAction {
@InitBinder
protected void initBinder(HttpServletRequest request,ServletRequestDataBinder binder) throws Exception {
binder.registerCustomEditor(
Date.class,
new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"),true));
}
- 编码过滤器
SpringMVC中,采用post方式提交时会出现中文乱码。为解决这个问题,需要在web.xml中配置SpringMVC提供的编码过滤器;
<!-- 编码过滤器 -->
<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>
注意,该过滤器只能处理post请求,不能处理get请求!