0

リスト値をタグで表示しています。同時に、表示値にアクションを提供するために、表示値にハイパーリンクを提供したいと考えています。そのために使用<s:param>していますが、値が渡されません。以下のように書いています

<s:iterator status="stat" value="transactionList">
        <s:url id="open" action="openTransaction">
              <s:param name="transactionCode" value="<s:property value='monthName'/>"/>
         </s:url>
 <tr class="gradeB">
  <td>
    <s:a href="%{open}"><s:property value='transactionCode'/></s:a>
  </td>
  <td><s:property value="monthName"/></td>
  <td><s:property value="transactionDesc"/></td>

  </tr>
  </s:iterator>

現在、transactionCodeプロパティはハイパーリンクで表示されており、アクションがメソッドに転送されていることをクリックすると、openTransaction渡された値が渡され<s:param>ず、null が返されます。その特定のトランザクション コードの反復では、その特定のトランザクション コードのみを渡したいと考えています。struts 1.x では、この目的のために表示タグ テーブル デコレータを使用しました。現在の行オブジェクトを取得します。ここでも、現在の行の値をアクションに渡したいと考えています。私を助けてください。

4

2 に答える 2

3

タグを使用<s:property>して URL 内にパラメーターを配置する場合は、次のようにする必要があります。

<s:url ...>
    <s:param name="foo"><s:property value="bar"/></s:param>
</s:url>

ドキュメント<s:param>は、この方法でパラメーターを配置する方法と独自の方法を使用する方法の違いについて説明しています。

注: param タグを宣言すると、値は value 属性で定義するか、開始タグと終了タグの間のテキストとして定義できます。これら 2 つの状況に応じて、Struts の動作は少し異なります。これは、例を使用して最もよく説明されています。

<param name="color">blue</param> <-- (A) --> 
<param name="color" value="blue"/> <-- (B) --> 

最初の状況 (A) では、値は java.lang.String オブジェクトとしてスタックに評価されます。状況 (B) では、値は java.lang.Object オブジェクトとしてスタックに評価されます。詳細については、WW-808 を参照してください。

編集:また、2.1.x 以降を使用している場合、 のid属性<s:url>は廃止され、 に置き換えられたことにも注意してvarください。ここで読むことができます。

于 2012-08-22T06:12:12.020 に答える
0
<c:url var="search" value="/image/search.action">
<c:forEach items="${filtersMap}" var="map">
<c:param name="filtersMap.${map.key}" value="${map.value}"/>
</c:forEach>

${filtersMap} はアクションからのマップ パラメータです

于 2013-09-12T07:39:52.947 に答える