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作用域的方式.

  1. 使用ModelAndView,那么该方法的返回类型必须是ModelAndView
  2. 使用Model, 方法的返回值还是字符串类型。
  3. 使用Map.方法的返回值还是字符串类型。
  4. 原始的HttpServletRequest对象保存

1.2 数据保存到session作用域的方式.

  1. 使用原始的HttpSession保存。
  2. 使用注解@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>
原文地址:https://www.cnblogs.com/1556553526qq-com/p/11456149.html