在DisplayTags中使用Struts2属性标记

时间:2012-06-21 15:13:13

标签: struts2 displaytag

我正在尝试使用DisplayTag渲染表格。当我以通常的方式渲染列时,一切正常:

<display:column property="id_material" title="ID" />

现在,我希望一列显示连接的2个属性。所以我尝试使用&lt; s:property&gt;标记:

<display:column title="UNIDAD"><s:property value="property1"/> <s:property value="property2"/></display:column>

但是列中没有显示任何值。有没有其他方法可以做到这一点?

2 个答案:

答案 0 :(得分:2)

您可以使用装饰器,获取行对象属性并返回两者的串联。

一个简单的例子:

    public class ExampleDecorator extends TableDecorator{

    public String getConcatenatedProperties(){

    Object object = getCurrentRowObject();
    return object.getProperty1() + " " + getProperty2();

}}

然后在显示表中添加一列:

<display:column property="concatenatedProperties" title="Properties" />

要在displaytag中使用装饰器:

<display:table [..]  decorator="org.example.ExampleDecorator" [...] >

答案 1 :(得分:0)

尝试在表标记中添加uid属性,然后可以通过请求属性访问Struts2中的当前行。请参阅以下代码:

<display:table name="list" uid="row">
    <display:column title="UNIDAD"><s:property value="#attr.row.property1"/>    <s:property value="#attr.row.property2"/>
    </display:column>
</display:table>