2012-08-22 24 views
0

我正在顯示帶有標記的列表值。同時,我想爲顯示值提供超鏈接,以便爲顯示值提供操作。我正在使用<s:param>作爲該值。但值不passing.I正在寫像下面struts2 <s:iterator>與<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 method.but我<s:param>傳遞的值是不會,它是給零。在對特定事務代碼的迭代中,我只想傳遞該特定的事務代碼。在struts 1.x中我使用了display tag table decorator來達到這個目的,它需要當前行對象。我也想把當前行值傳遞給action。請幫幫我。

回答

3

如果你想使用<s:property>標籤放設置了一個param的網址內,你必須那樣做:

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

的的<s:param>documentation介紹使用把一個特性參數的這種方式之間的區別你辦法。

注意:聲明param標記時,可以在值屬性中定義該值,也可以在開始標記和結束標記之間定義值作爲文本。根據這兩種情況,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或更高的<s:url>id屬性已被棄用,它已被替換爲var。你可以閱讀它here

+0

其working..thanks一個lot..i有PARAM的兩個語法的想法tag..but我以爲這些都具有相同的功能..文件是明確的.. – Praveen

+0

如果它的作品,你必須標記爲答案=) – Pigueiras

+0

+1很好的詳細解釋 –

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從行動地圖PARAM