【问题标题】:UrlFilenameViewController does not return View (Spring-MVC)UrlFilenameViewController 不返回视图(Spring-MVC)
【发布时间】:2010-11-15 21:36:16
【问题描述】:

根据Spring框架API

UrlFilenameViewController 的用途是:

将 URL 的虚拟路径转换为视图名称并返回该视图

如果我请求 /info.xhtml,它的逻辑视图名称是 info

参见UrlFilenameViewController 文档

web.xml和controller都是根据

/WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8">
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>smac</display-name>
    <servlet>
        <servlet-name>controller</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>controller</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>
</web-app>

/WEB-INF/controller-servlet.xml
<?xml version="1.0" encoding="UTF-8">
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    <bean class="org.springframework.web.servlet.view.InternalViewResolver">
        <property name="prefix" value="/WEB-INF/output/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    <bean class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>
</beans>

我的 smac 应用部署良好。

所以,如果我请求 http://127.0.0.1:8080/smac/info.xhtml,Spring-MVC 应该返回 /WEB-INF/output/info.jsp。但我在控制台中看到了以下内容:

在名称为“controller”的 DispatcherServlet 中找不到带有 URI [/smac/info.xhtml] 的 HTTP 请求的映射

谁能帮帮我?

问候,

【问题讨论】:

    标签: spring spring-mvc mapping


    【解决方案1】:

    您需要配置一个HandlerMapping。默认值是BeanNameUrlHandlerMapping,如果您将控制器 bean 绑定到与您的 URI 匹配的名称下,它只会执行您想要的操作。您可能想要 SimpleUrlHandlerMapping 代替:

    <bean name="myController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>
    
    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <value>
                /**/*.xhtml=myController
            </value>
        </property>
    </bean>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-17
      • 2013-03-19
      • 1970-01-01
      相关资源
      最近更新 更多