1. @RequestParam注解
此注解适合前端传回的参数名与后端参数名不一致,但是不可为空,如果为空需加上“required”参数, 还可以设定默认值用“defaultValue”参数。
public String add(@RequestParam(value="id" required=false)Integer idxxxa, defaultValue="1"){
...
}
2. 处理POST提交乱码的问题
在web.xml中配置如下过滤器
<!-- 处理POST提交乱码的问题 -->
<filter>
<filter-name>encoding</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>encoding</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
3. springMVC与struts2的区别
- springmvc的入口是一个servlet即前端控制器,而struts2入口时一个filter过滤器。
- springmvc时基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或者多例(建议单例),struts2是基于类开发,传递参数是通过类的属性,只能设计为多例(多例是以类为单位)。
- struts2采用值栈存储请求和响应的数据,通过OGNL存取数据,springmvc通过参数解析器是将request请求内容解析,并给方法形参赋值,将数据和视图封装成ModelAndView对象,最后又将ModelAndView中的模型数据通过request域传输到页面,jsp视图解析器默认使用jstl。
4. 如何对静态资源放行
“\”是拦截所有,包括静态资源。如需对静态资源放行,需要在springmvc.xml中进行如下配置:
<!-- 对静态资源放行 -->
<mvc:resources location="/css/" mapping="/css/**"/>
<mvc:resources location="/js/" mapping="/js/**"/>
...
5. 全局更改编码
打开tomcat的server.xml,找到8080端口处加一个URIEncoding的属性:
<Connector URIEncoding="UTF-8" connectionTimeout="20000", port="8080" protocol="HTTP/1.1" ......>