変数から struts2 パラメータ値を作成していますが、ある場合には機能し、別の場合には機能しません。メニュー項目クリックの「結果」は次のとおりです。
<result name="WidgetList" type="redirectAction">
<param name="actionName">actList</param>
<param name="object">Widget</param>
</result>
そしてアクションマッピング:
<action name="actList" class="MyClass" method="execute">
<interceptor-ref name="newStack" />
<result name="success">
<param name="location">jsp + ${object} + List.jsp</param>
</result>
<result name="Edit" type="redirectAction">
<param name="actionName">actEdit + ${object}</param>
</result>
</action>
「編集」結果 (ユーザーがリスト内のウィジェットをクリックした後に返される) では、actionName が正しく作成され、そのアクションが実行されてページが表示されます。
actEdit + ${object}
になります:
actEditWidget
ただし、${object} パラメータが正しく置き換えられていても、'actList' にリダイレクトするメニュー クリックは正しくビルドされません。
jsp + ${object} + List.jsp
文字列になります:
"jsp+Widget+List.jsp"
そして私は得る:
HTTP Status 404 - /MyApp/jsp+Widget+List.jsp
なぜこれはあるケースでは機能し、他のケースでは機能しないのですか...どうすればこれを「修正」できますか?