距离上次更新已经过了 1319 天,文中部分内容可能已经过时,如有疑问,请在下方留言。

直接传值

返回类型

  1. ModelAndView:传参数和jsp页面
  2. String:指定jsp页面
  3. Void:不能表示数据和视图,通过HttpServletResponse输出数据。响应ajax请求。
  4. Object:例如String,Integer,Map,List,Student,返回数据,与视图无关。相应ajax请求。

springmvc处理器方法返回Object,可以转化为json输出的浏览器,相应ajax的内部原理。

mvc:annotation-driver 注解驱动

注解驱动实现的功能是:完成java到json,xml,text,二进制等数据格式的转换

HttpMessageConveter接口:消息转换器。

功能:定义了java转为json,xml等数据格式的方法。这个接口有很多的实现类。

这些实现类完成 java对象到json,java对象到xml,java对象到二进制数据的转换

静态资源的处理方式:

在servletMapping的url使用/后,defautl中给servlet会被代替,无法使用静态资源。

<!-- 第一种解决静态冲突的方法 -->

<!-- 注解驱动 目的:解除mvc:default-servlet-handler 和 requestMapping的冲突 -->

<mvc:annotation-driven />

 

<!-- 静态default加载 -->

<mvc:default-servlet-handler />

 

<!-- 第二种解决静态冲突的方法

  mvc:resources 加入后框架会创建ResourceHttpRequestHandler

  让这个对象处理静态资源的访问,不依赖tomcat服务器

  mapping:访问静态资源的uri地址,使用通配符**

  location:静态资源在你的项目中的目录位置

 -->

 <mvc:resources mapping="/html/**" location="/html/" />

 

<!-- mvc:resources 和@RequestMapping 有一定的冲突 -->

<mvc:annotation-driven />

 
XML

base的使用

当form中action或者href 没有 / 开头的的地址:表示当前页面访问地址的基地址,再次访问会出错

解决方案:

${pageContext.request.contextPath}
Java

2.加入base,在所有没有以 / 开头的地址,都会以base为基地址

<%
    String basePath = request.getScheme() + "://" +
        request.getServerName() + ":" + request.getServerPort() +
        request.getContextPath() + "/";
%>

//在head中加入
<base href = "<%=basePath>" />
XML
文章作者: 郭远
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 郭远的博客空间
SpringMVC SpringMVC
喜欢就支持一下吧
打赏
微信 微信
支付宝 支付宝