Question

Partout je regarde toujours la même explication pop-ups.
Configurez le résolveur de vues.

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

Et mettez ensuite un fichier dans le chemin d'accès aux classes nommé view.properties avec des paires clé-valeur (ne vous occupez pas des noms).

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

Que signifient logout.class et logout.url ?
Comment ResourceBundleViewResolver utilise-t-il les paires clé-valeur du fichier?
Mon but est que lorsque quelqu'un entre l'URI myserver / myapp / logout.htm , le fichier logout.jsp soit servi.

Était-ce utile?

La solution

ResourceBundleViewResolver utilise la clé / les valeurs dans views.properties pour créer des beans de vue (créés dans un contexte d'application interne). Le nom du haricot de vue dans votre exemple sera "logout". et ce sera un haricot de type JstlView. JstlView a un attribut appelé URL qui sera défini sur "WEB-INF / jsp / logout.jsp". Vous pouvez définir n'importe quel attribut sur la classe de vue de la même manière.

Ce qui vous semble manquer est votre couche contrôleur / gestionnaire. Si vous souhaitez que /myapp/logout.htm serve logout.jsp, vous devez mapper un contrôleur dans /myapp/logout.htm et ce contrôleur doit renvoyer le nom de la vue "logout". ResourceBundleViewResolver sera alors consulté pour un bean portant ce nom et renverra votre instance de JstlView.

Autres conseils

Pour répondre à votre question, logout est le nom de la vue obtenu à partir de l'objet ModelAndView renvoyé par le contrôleur. Si vous rencontrez des problèmes, vous avez probablement besoin de la configuration supplémentaire suivante.

Vous devez ajouter un mappage de servlet pour *. htm dans votre web.xml :

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

Et si vous souhaitez mapper directement le *. jsp sans créer de contrôleur personnalisé, vous devez ajouter le bean suivant à votre contexte Spring:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top