2009-07-31 9 views
1

Nach Spring-Framework APIUrlFilenameViewController nicht zurück Ansicht (Frühling-MVC)

UrlFilenameViewController Ziel ist:

Verwandelt den virtuellen Pfad einer URL in einen Ansichtsnamen und kehrt die

ansehen

Wenn ich für /info.xhtml beantragen, seine logische Ansicht Name ist Info

Siehe UrlFilenameViewController Dokumentatio n

Sowohl web.xml und Controller nach abzubildenden

/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> 

My SMAC app setzt Ordnung.

Also, wenn ich für http://127.0.0.1:8080/smac/info.xhtml anfordern, sollte Spring-MVC /WEB-INF/output/info.jsp zurückgeben. Aber ich habe in der Konsole gesehen folgende:

Keine Zuordnung für HTTP-Anforderung mit URI gefunden [/smac/info.xhtml] in DispatcherServlet mit dem Namen 'Controller'

Kann mir jemand helfen?

Grüßen,

Antwort

2

Sie benötigen einen HandlerMapping zu konfigurieren. Die Standardeinstellung lautet BeanNameUrlHandlerMapping, was nur dann funktioniert, wenn Sie die Controller-Bean unter dem Namen binden, der Ihrem URI entspricht. Sie möchten wahrscheinlich die SimpleUrlHandlerMapping stattdessen:

<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> 
Verwandte Themen