0

私はこのような日付比較の結果に基づいてボタンを表示するStruts2コードを持っていました(これは私が実際に持っているものの単純化された例であることに注意してください):

<s:iterator value="myList">
    <s:if test="%{getDate().compareTo(getNow()) > 0}">
        // Show the item
    </s:if>
</s:iterator>

その後、結果セットの表示をdisplaytagを使用するように変換しました。表示タグを使用して上記を行うにはどうすればよいですか。これは私が試したことです。

<display:table name="myList" pagesize="50" id="row">
    <display:column title="Item">
        <s:if test="%{#attr.row.endDt.compareTo(#attr.row.now()) > 0}"><%--does NOT work--%>
    </display:column>
</display:table>

<s:if>ステートメントの正しい構文は何ですか?
または、displaytag + Struts2を使用してこれを行うことはできませんか?

4

3 に答える 3

0

#attr.rowリスト内の要素を参照するためにインデックスとして使用すると、機能するはずです。

<display:table name="myList" pagesize="50" id="row">
    <display:column title="Item">
        <s:if test="myList[%{#attr.row_rowNum - 1}].endDt.compareTo(myList[%{#attr.row_rowNum - 1}].now()) > 0}">
           <span>Let's rock</span>
        </s:if>
    </display:column>
</display:table>

注:getNow()関数は反復オブジェクトから取得されますか?

これは私には奇妙に思えますが、例のbaseActionから、一般的な関数ではないでしょうか?

于 2012-12-04T08:46:44.340 に答える
0

別の方法は、displaytagデコレータを使用することです。

 public String getLink()
 {
    YourObject yourObject = (YourObject) getCurrentRowObject();
    //Do your checks....
    return "<a href="#">your link</a>";

 }
于 2012-12-04T08:54:04.843 に答える
0

おそらく複数の解決策がありますが、これは私にとってはうまくいくことになりました:

<display:table name="myList" pagesize="50" id="row">
    <display:column title="Item">
        <s:set name="endDt" value="#attr.row.endDt"/>
        <s:set name="now" value="now" />
        <s:if test="%{#endDt.compareTo(#now) > 0}">
           <span>w00 h00!</span>
        </s:if>
    </display:column>
</display:table>
于 2012-12-04T15:46:58.450 に答える