2011-12-09 4 views
0

SpringMVCがビュー名を解決するときに、コントローラー名(クラス名またはBean名)をdir名として入れたいと思います。 私はUrlBasedViewResolverのように接頭辞paramを/WEB-INF/admin/${controller}/のように定義しましたが、もちろん動作しません。 UrlBasedViewResolverは、単純な(のようなview.setUrl(getPrefix() + viewName + getSuffix());)の名​​前を表示するビューの接頭辞を付けるためViewReolverのコントローラークラス名にプレースホルダーを使用する方法

<bean id="viewResolver" 
     class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
    <property name="prefix" value="/WEB-INF/admin/${controller}/"/> 
    <property name="suffix" value=".jsp"/> 
    <property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView"/> 
</bean> 

もちろん、それは動作しません。

この問題を実装する最も簡単な方法は何ですか。

解決方法のコントローラ名をメソッドUrlBasedViewResolverサブクラスで呼び出す最も簡単な方法は何ですか?

+1

「コントローラ名」とは何ですか?ビーンの名前?クラス名?パス名? – skaffman

+0

@skaffman、それは必要ではありません。しかし、クラス名は良いでしょう。 –

+1

「必要でない」とはどういう意味ですか?具体的に質問し、それに応じて更新してください。 – skaffman

答えて

1

あなたは(それは、コントローラの実行後が、ビューをレンダリングする前に呼び出されています)HandlerInterceptorを作成し、そのpostHandle()方法でModelAndViewのビュー名のプロパティを変更しようとすることができます。また、このメソッドはコントローラのインスタンスをhandleとして受け取ります。

関連する問題