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

另一种方法是使用 displaytag 装饰器。

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

 }
于 2012-12-04T08:54:04.843 回答
0

使用#attr.rowas 索引来引用列表中的元素应该可以工作:

<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()来自迭代对象的函数吗?

这对我来说似乎很奇怪,它不应该是来自 example 的 baseAction 的常用功能吗?

于 2012-12-04T08:46:44.340 回答
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 回答