【问题标题】:Spring mvc servlet-mapping and 406 http coreSpring mvc servlet 映射和 406 http 核心
【发布时间】:2014-12-24 09:38:48
【问题描述】:

我正在使用 Spring mvc 4 和 glassfish 4,我在使用 @ResponseBody 将对象返回为 json 的 ajax 调用时遇到了一些问题。 然后我找到了一个合适的解决方案HTTP Status 406. Spring MVC 4.0, jQuery, JSON,我认为它并不完全适用于我的项目,因为我的 servlet 映射。

我的 servlet 映射是:

   <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>

但我也想像 /* 那样处理请求,以避免 406 http 代码出现问题,所以我尝试了这个:

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

但随后调度程序也映射 *.jsp 并中断 最后我尝试了这个:

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

但随后调度程序会映射 *.js 和 *.css,如 bootstrap、jquery 等。

现在我的想法已经用完了。

【问题讨论】:

    标签: java spring spring-mvc servlets http-status-code-406


    【解决方案1】:

    最后我修复它。 为了解决 406 http 代码问题,我从 ajax 指定内容类型,然后从控制器中删除 *.htm。

    另一方面,我必须修复 servlet 映射并添加资源标签以避免更多问题。

    现在我的 servlet 映射是这样的:

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    

    我将这一行添加到 dispatcher-servlet:

    <bean id="viewResolver"
              class="org.springframework.web.servlet.view.InternalResourceViewResolver"
              p:prefix="/WEB-INF/jsp/"
              p:suffix=".jsp" />
    
    <mvc:resources mapping="/resources/**" location="/resources/" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-19
      • 1970-01-01
      • 2016-01-02
      • 1970-01-01
      • 2017-01-18
      • 2011-12-27
      • 2012-12-23
      相关资源
      最近更新 更多