Spring mvc servlet-mapping и 406 http core

Я работаю с Spring mvc 4 и glassfish 4, и у меня были некоторые проблемы с вызовами ajax, возвращающими объект как json, с @ResponseBody. Затем я нашел правильное решение HTTP Status 406. Spring MVC 4.0, jQuery, JSON, которое не полностью работало над моим проектом, я думаю, потому что мое сервлет-отображение.

Мое отображение сервлета было:

   <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 и т. Д.

И теперь у меня кончились идеи.

1 ответ

Решение

В конце я это исправлю. С одной стороны, чтобы исправить проблему с кодом 406 http, я указываю тип контента из ajax и удаляю *.htm из контроллера.

А с другой стороны, мне пришлось исправить отображение сервлета и добавить тег ресурса, чтобы избежать новых проблем.

Теперь мое отображение сервлетов выглядит так:

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

И я добавляю эту строку в диспетчер-сервлет:

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

<mvc:resources mapping="/resources/**" location="/resources/" />
Другие вопросы по тегам