3

に 2 つのフォルダーがありますWEB-INF

Folder1には のような 3 つの jsp が含まれていますpage1.jsp , page2.jsp , page3.jsp

Folder2には、page4.jsp.

dispatcher-Serlet.xmlで、次のように構成しました。

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/folder1/" />
    <property name="suffix" value=".jsp" />
</bean>

コントローラーで、

@RequestMapping(value="page4.html",method=RequestMethod.GET)
public  String getTransfer(){

    List<String> list = new LinkedList<String>();
    Hashtable<String , Object> map = MyHashtableClasss.getDetails;

    if(!map.isEmpty()){
        Set<String> keys = map.keySet();
        for(String key: keys){
                list.add(map.get(key).getUserName());
        }
    }
    model.addAttribute(list);

    return "page4";
}

ビューにpage4.jspを取得するにはどうすればよいですか。Folder1 にその page4.jsp がなかったからです。

一般に、どのようJSPに異なるフォルダ内の異なるファイルを表示Springできますか?それは可能ですか? そうでない場合、代替手段は何ですか。

私たちのスタックユーザーが私を助けてくれることを願っています.

4

2 に答える 2

6

1変更

<property name="prefix" value="/WEB-INF/folder1/" />

<property name="prefix" value="/WEB-INF/" />

フォルダーパスを含むビューを返す

return "folder1/page4";

2もう 1 つの方法は、複数のビュー リゾルバー Bean を構成し、それぞれに優先順位を設定することです。解決策と制限事項については、次のリンクを確認してください。

spring mvc の複数の View リゾルバー

複数のビュー リゾルバーを備えた Spring MVC

編集

もう 1 つの方法は、 を拡張して独自のビュー リゾルバーを構築することInternalResourceViewResolverです。拡張ビュー リゾルバーでは、ロジックを追加してサブ フォルダーをスキャンし、返されたビュー名で jsp ファイルを見つけることができます。

于 2013-10-04T09:04:36.890 に答える