7

たとえば、イベントの追跡を維持するために、アクションから別のアクションにパラメーターを渡す必要があります。

それを行う最善の方法は何ですか?

セッション パラメータは使用しません。ありがとう

4

5 に答える 5

11

あるアクション内でサーバー側にいて、いくつかのパラメーターを使用して別のアクションを呼び出したいとします。

s:action タグを使用して別のアクションを呼び出すことができます。元のアクション以外の追加/他のパラメーターを使用することもできます。

    <s:action name="myAction"  ignoreContextParams="true" executeResult="true">
        <s:param name="foo" value="bar"/>
    </s:action>

標準の struts-xml 結果タイプをパラメータとともに使用することもできます。

<result name="success" type="redirect" >
      <param name="location">foo.jsp?foo=${bar}</param>
      <param name="parse">true</param>
      <param name="encode">true</param>
 </result>

クライアント側のリダイレクトが必要な場合は、適切なパラメーターを使用してクライアントに URL を送信する必要があります。また、JavaScript を使用してそこに移動することもできます。

        <s:url action="myAction" >
            <s:param name="foo" value="bar"/>
        </s:url>
于 2008-12-17T09:55:11.560 に答える
1
<td>
   <s:url id="url" action="Logging">
      <s:param name="m_userNameInAction"><s:property value="m_userNameInForm"/></s:param>
    </s:url>
    <s:a href="%{url}">English</s:a>
</td>
于 2009-09-23T15:05:13.687 に答える
1

実際には、あるアクションから別のアクションに 1 つのアクション パラメータ値を渡します。

同じ名前の Bean 変数を含めるだけです。アクション(レシーバーアクション)で受け取るパラメーター。

<action name="ForwardAction" class="...">
       <result name="success" type="chain">ReceiverAction</result>
</action>

ForwardAction パラメーターは、R​​eceiverAction に転送されます。あなたはそれを使用することができます。ただし、両方のアクションに同じ Bean 名を含めます。

receiveaction 手段でユーザー ID を受け取る場合は、

これは両方のアクションにある必要があります。

private int userid;

public void setUserid(int id){
     this.userid = userid;
}

public int getUserid(){
     return userid;
}
于 2011-06-17T07:07:28.243 に答える
1

struts コア タグで url タグを使用します。サンプルを以下に示します。

                <s:url var="idurl" action="EditEnterprise">
                    <s:param name="enterpriseId">
                        <s:property value="enterpriseId" />
                    </s:param>
                </s:url> 
于 2009-12-10T21:05:41.840 に答える