4

どこを見ても、いつも同じ説明がポップアップします。
ビュー リゾルバーを構成します。

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

次に、view.properties という名前のクラスパスに、いくつかのキーと値のペアを含むファイルを配置します (名前は気にしないでください)。

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

logout.classとはどういうlogout.url意味ですか? はファイル内のキーと値のペアを
どのように使用しますか? 私の目標は、誰かが URI を入力すると、ファイルが提供されることです。ResourceBundleViewResolver
myserver/myapp/logout.htmlogout.jsp

4

2 に答える 2

5

ResourceBundleViewResolverは、views.propertiesのkey / valsを使用してビューBeanを作成します(実際には内部アプリケーションコンテキストで作成されます)。この例のビューBeanの名前は「logout」になり、タイプJstlViewのBeanになります。JstlViewには、「WEB-INF / jsp/logout.jsp」に設定されるURLという属性があります。同様の方法で、ビュークラスに任意の属性を設定できます。

欠落しているように見えるのは、コントローラー/ハンドラーレイヤーです。/myapp/logout.htmでlogout.jspを提供する場合は、コントローラーを/myapp/logout.htmにマップする必要があり、そのコントローラーはビュー名「logout」を返す必要があります。次に、ResourceBundleViewResolverがその名前のBeanについて参照され、JstlViewのインスタンスを返します。

于 2008-09-19T20:45:16.593 に答える
0

あなたの質問に答えるにlogoutは、コントローラーによって返される ModelAndView オブジェクトから取得されるビュー名です。問題が発生している場合は、多くの場合、次の追加構成が必要です。

のサーブレット マッピングを追加する必要があり*.htmますweb.xml

    <ウェブアプリ>
        <サーブレット>
            <サーブレット名>htm</サーブレット名>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <起動時のロード>1</起動時のロード>
        </サーブレット>
        <サーブレットマッピング>
            <サーブレット名>htm</サーブレット名>
            <url-pattern>*.htm</url-pattern>
        </サーブレット-マッピング>
    </ウェブアプリ>

また、カスタム コントローラーを作成せずに に直接マップする場合は*.jsp、Spring コンテキストに次の Bean を追加する必要があります。

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

于 2008-09-19T20:56:03.960 に答える