SpringMVC的问题(包含自己见解)
1.WEB-INF下的地址不可被直接访问与重定向访问
2.配置文件中的DispatcherServlet为“/”时,可过滤所有静态文件,如jpg,html,js但是无法拦截.jsp结尾的文件jsp结尾的还可以通过地址名访问
3.那些所要用到的地址因为是拼接原因,所以页面解析器第一个"/WEB-INF/***/",这最后一个地方需要加"/",其余的地方末尾都不许加斜杠
4.当web页面出现错误,为404,且不显示错误的地址名时,一般为servlet即包扫描下的包里面的java文件地址出现了错误
5.有2知,js被过滤后,需要释放静态资源,否则js所有都失效,尤其是ajax,这个当有图片文件时,由于图片不显示所以很容易联想到这个问题,但如果没有图片文件,这是很容易被忽略的一点,而且不报错,所以很难找
6.接收Date类型的数据
第一种方法:适用于为一个参数的
/*@InitBinder public void initBinder(ServletRequestDataBinder binder){ //只要网页中传来的数据格式为yyyy-MM-dd 就会转化为Date类型 binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd"), true)); }*/
第二种方法:适用于为对象,但对象中有Date属性
7.controller进行数据保存的方式
1.1 数据保存到request作用域的方式.
- 使用ModelAndView,那么该方法的返回类型必须是ModelAndView
- 使用Model, 方法的返回值还是字符串类型。
- 使用Map.方法的返回值还是字符串类型。
- 原始的HttpServletRequest对象保存
1.2 数据保存到session作用域的方式.
- 使用原始的HttpSession保存。
- 使用注解@SessionAttributes(name={key1,key2})
8.ajax的使用
前台:
后台:
9. ajax返回String类型乱码的问题
第一种方法:@RequestMapping(value="Ajax1",produces = "text/html;charset=UTF-8")
第二种方法:此种方法通过查看源码解决,源码中返回String的默认字体为“ISO-8859”,通过StringHttpMessageCoverter的构造方法设置为“utf-8”,因为源码没有提供set方法,所以不可以用<property>标签,需要使用<constructor-arg>标签,该标签表示构造方法,具体方法:
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
</bean>
</mvc:message-converters>
</mvc:annotation-driven>