在<display:table>标记中使用Struts2的<s:property>标记

时间:2015-06-15 12:16:46

标签: jsp struts2 displaytag ognl

我正在尝试使用DisplayTag将列表添加到表中。

当我以通常的方式将列属性添加到列时,一切正常:

<display:column property="status" title="Claim Status"/>
<display:column property="authNo" title="Authorization Number" href="authSlipMasterAction">

现在,我想检查authNo何时不为空;如果它是空白,则不提供链接,那么如何在<s:if test=''>标记中使用<s:property value=""><display:table>

我已尝试使用<s:property value="authNo"/>显示该值,但未显示任何值(我必须显示该值,因为我想检查条件)

这是我的代码

   <display:table uid="myTable" id="display-tag" name="session.claimReportList">
   <display:column title="Authorization No"> 
    <s:property value="#attr.myTable.transNo" />
</display:column>

     我也试过

      <s:property value="#session.myTable.transNo" />

2 个答案:

答案 0 :(得分:1)

在DisplayTag列中,您需要在#attr.<s:property />中使用<s:if />表示法;您还需要use the uid specified in the <display:table> tag after the #attr.来访问您的对象。

例如:

<display:table requestURI="actionURL" uid="myTable" />

    <display:column title="authNo">    
        <s:property value="#attr.myTable.authNo" />
    </display:column>

</display:table>

来自OGNL Basics - Struts 2 Named Objects

  

#attr['foo']#attr.foo

     

如果可用,请访问PageContext,否则搜索   分别为request / session / application

P.S:我会考虑查看一些较新的网格,例如jqGridDataTables

答案 1 :(得分:0)

请在显示标记内尝试以下代码。

1。) #attr.objectName :页面,请求,会话或应用程序范围内的属性(按此顺序搜索)
2.)是您id使用的display:table 3.) authNo :您的自定义属性。

<s:if test="%{#attr.row.authNo != null}">
    <display:column title="Status">Your custom message</display:column>
    </s:if>

希望它可以帮助你...... !!