ポートレットごとに異なるビューリゾルバ(すべてがJstlViewタイプ)を構成できますか?私のJSPのディレクトリ構造は次のようになります。私は、一般的なアプリケーションコンテキストのcommon.xml
およびポートレットに1つずつ(mydetails-portlet.xml
、myorder-portlet.xml
)を持っているポートレットごとに異なるビューリゾルバを使用する
(treegen使用して生成)
+- WEB-INF
|
+- jsp
|
+- myorder
| |
| |- summary.jsp
| |
| |- edit-order.jsp
|
+- mydetails
| |
| |- summary.jsp
| |
| |- edit-details.jsp
|
|- error.jsp
|
|- success.jsp
。
私はまた、任意のポートレット(error.jsp
,)から呼び出すことができるいくつかの一般的なJSPを持っています。
common.xml
内部viewResolver
定義は次のようになります。
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/mydetails/" />
<property name="suffix" value=".jsp" />
<property name="order" value="1" />
</bean>
そして、私は@RequestMapping
内の次の行を使用してerror.jsp
とedit-details.jsp
を呼び出すために期待しています:mydetails-portlet.xml
内部viewResolver
定義がどのように見える
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
<property name="order" value="2" />
</bean>
コントローラメソッド、例えば、mydetails-portlet:
return "error";
return "edit-details";
viewResolver
をJstlView
に複数定義すると古いものが上書きされてしまい、最終的に最後に読み込まれるようになります。この結果、私は私の意見を正しく解決することができません。
return "mydetails/edit-details"
のようなハードコードされたパスに頼らずに、私がしようとしていることを達成するための他の方法はありますか?
私の場合は動作しません。私はspring-portlet-mvcを使用します。 – adarshr