9

Struts2を使用しています。「search_users」アクションによって更新される人物のリストを含むダイアログボックスがあります。このリストの横に、フォームの送信時に「add_user」アクションを呼び出して別のユーザーを追加するために使用できるフォームがあります。

私がやろうとしているのは、add_userアクションが実行されると、「search_user」アクションを使用してリストが更新されることです。

次のように、struts.xmlで結果タイプ「redirect」を使用してみました。

<action name="search_users" class="org.apache.struts.gestion_edt.controller.adm_proyectos.BLSubequipo" method="searchUsers">
            <result name="success">list.jsp</result>
        </action>

        <action name="add_user" class="org.apache.struts.gestion_edt.controller.adm_proyectos.BLTipoEntregable" method="addUser">
            <result name="success" type="redirectAction">search_users</result>
        </action>

しかし、それはうまくいきません。私は何が間違っているのですか?struts.xmlファイルに気づいていないものを追加する必要がありますか?

これは私が得るエラーメッセージです:

"Caused by: There is no result type defined for type 'redirect-action' mapped with name 'success'.  Did you mean 'redirectAction'? - result - file:/.../struts.xml:59:44
    at ..."
4

3 に答える 3

16

現在の構成:

<action name="add_user" class="org.apache.struts.gestion_edt.controller.adm_proyectos.BLTipoEntregable" method="addUser">
   <result name="success" type="redirectAction">search_users</result>
</action>

ドキュメントによると、正しい形式は次のとおりです。

<action name="add_user" class="org.apache.struts.gestion_edt.controller.adm_proyectos.BLTipoEntregable" method="addUser">
    <result type="redirectAction">
        <param name="actionName">search_users</param>
        <!--<param name="namespace">/secure</param> This is optional if your action where you are redirecting is in the same namespace you can leave this, if your action is in some other name space then provide the namespace--> 
    </result>
</action>
于 2012-06-08T17:22:05.117 に答える
2

現在Struts2.3.20を使用しており、これは機能します。

<result type="redirectAction">myAction</result>

以前のバージョンでは確認していません。

于 2015-02-03T17:41:10.510 に答える
0

私はStrutsの大物ではありませんが、ドキュメントに基づくと、リダイレクトが構文的に正しくないようです:http ://struts.apache.org/2.1.6/docs/redirect-action-result.html

<package name="public" extends="struts-default">
    <action name="login" class="...">
        <!-- Redirect to another namespace -->
        <result type="redirect-action">
            <param name="actionName">dashboard</param>
            <param name="namespace">/secure</param>
        </result>
    </action>
</package>
于 2012-06-08T15:09:22.270 に答える