Frage

überall Ich sehe immer die gleiche Erklärung Pop-ups.
Konfigurieren Sie die Ansicht Resolver.

<bean id="viewMappings"
      class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
    <property name="basename" value="views" />
</bean>

Und legte dann eine Datei in dem Classpath namens view.properties mit einigen Schlüssel-Wert-Paaren (Sie die Namen nichts dagegen).

logout.class=org.springframework.web.servlet.view.JstlView
logout.url=WEB-INF/jsp/logout.jsp

Was bedeutet logout.class und logout.url bedeuten?
Wie funktioniert ResourceBundleViewResolver die Schlüssel-Wert-Paare in der Datei verwendet?
Mein Ziel ist es, dass, wenn jemand betritt die URI myserver/myapp/logout.htm die Datei logout.jsp serviert wird.

War es hilfreich?

Lösung

ResourceBundleViewResolver verwenden den Schlüssel / vals in views.properties Ansicht Bohnen erstellen (eigentlich in einem internen Anwendungskontext erstellt). Der Name der Ansicht Bohne in Ihrem Beispiel wird „Logout“, und es wird eine Bohne vom Typ JstlView sein. JstlView hat eine genannte URL-Attribut, das auf "WEB-INF / jsp / logout.jsp" gesetzt wird. Sie können auf eine ähnliche Art und Weise jedes Attribut auf die Ansichtsklasse gesetzt.

Was Sie scheinen zu fehlen, ist der Controller / handler Schicht. Wenn Sie /myapp/logout.htm dienen logout.jsp möchten, müssen Sie einen Controller in /myapp/logout.htm Karte und die Steuerung der Ansicht Namen „Logout“ zurückgeben muss. Die ResourceBundleViewResolver wird dann für eine Bean dieses Namens zu Rate gezogen werden, und kehren die Instanz von JstlView.

Andere Tipps

Zur Beantwortung Ihrer Frage logout der von dem Modeland Objekt durch die Steuerung zurück erhielt Ansicht Name ist. Wenn Ihre Probleme haben Sie viele benötigen folgende zusätzliche Konfiguration.

Sie benötigen ein Servletzuordnung für *.htm in Ihrem web.xml hinzuzufügen:

    <web-app>
        <servlet>
            <servlet-name>htm</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <oad-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>htm</servlet-name>
            <url-pattern>*.htm</url-pattern>
        </servlet-mapping>
    </web-app>

Und wenn Sie möchten direkt auf die *.jsp abzubilden, ohne eine individuelle Steuerung zu schaffen, dann müssen Sie die folgende Bohne zu Ihrem Frühlings Kontext hinzuzufügen:

    <bean id="urlFilenameController"
        class="org.springframework.web.servlet.mvc.UrlFilenameViewController" />

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top