Тег mvc:view-контроллера Spring 3.0 MVC

Вот отрывок моего mvc-config.xml:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/"/>
    <property name="suffix" value=".jsp"/>
</bean>

<mvc:view-controller path="/index" view-name="welcome"/>    
<mvc:view-controller path="/static/login" view-name="/static/login"/>   
<mvc:view-controller path="/login" view-name="/static/login"/>

У меня есть welcome.jsp на/WEB-INF/view/каталоге и login.jsp на/WEB-INF/view/static/.

Это работает на '/index' и '/login' пути. Но я получаю 404 ответа для '/static/login' при вызове от браузера. Я ожидаю, что '/static/login /' и '/login' должен вести себя то же.

Что могло быть неправильным здесь?

Ценил бы любую справку.

Спасибо!

Вот web.xml:

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:META-INF/spring/applicationContext*.xml</param-value>
    </context-param>

    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>

    <!-- Enables clean URLs with JSP views e.g. /welcome instead of /app/welcome -->
    <filter>
        <filter-name>UrlRewriteFilter</filter-name>
        <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <filter-mapping>
        <filter-name>UrlRewriteFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!-- Handles all requests into the application -->
    <servlet>
        <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>
                /WEB-INF/spring/*.xml
            </param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- Maps all /app requests to the DispatcherServlet for handling -->
    <servlet-mapping>
        <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
        <url-pattern>/app/*</url-pattern>
    </servlet-mapping>

</web-app>

и вот urlrewrite.xml:

<urlrewrite default-match-type="wildcard">
    <rule>
        <from>/</from>
        <to>/app/welcome</to>
    </rule>
    <rule>
        <from>/static/**</from>
        <to last="true">/static/$1</to>
    </rule>

    <rule>
        <from>/**</from>
        <to last="true">/app/$1</to>
    </rule>
    <outbound-rule>
        <from>/app/**</from>
        <to>/$1</to>
    </outbound-rule>    
</urlrewrite>

Среда: я использую сервер SpringSource tc Выпуск v2.0 Dev
Версия Spring: 3.0.3. ВЫПУСК

5
задан Daniel Serodio 25 April 2013 в 17:25
поделиться

2 ответа

Запрос / static / login не может попасть в ваш DispatcherServlet, потому что он соответствует правилу перезаписи с / static / ** на / static / $ 1 с last = "true" , поэтому не соответствует правилу от / ** до / app / $ 1 ], что приводит к DispatcherServlet. Дополнительную информацию см. В документации UrlRewriteFilter .

6
ответ дан 14 December 2019 в 04:30
поделиться

У меня все работает нормально. Не могли бы вы сказать, какие у вас сопоставления сервлетов диспетчера? Было бы неплохо, если бы вы могли прикрепить весь контент web.xml.

2
ответ дан 14 December 2019 в 04:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: