检查列表是否包含元素

时间:2015-12-17 07:18:58

标签: jsp struts2 displaytag ognl struts-tags

要求是我需要在表格的jsp页面中的列上显示一些复选框,如果它们被配置为显示或不显示。

在我的动作类中,我有从db获取配置值并将其存储为数组的逻辑。

现在的问题是:

  

我应该将数组存储在会话或其他内容中,以便我可以在装饰器方法中访问它并返回相应的HTML以显示复选框吗?

     

或者我应该遍历jsp页面上的列表并查看列表中是否存在条目(请参阅JSP中的ID),然后显示列?

我个人喜欢第二种方法,但不知道该怎么做。

这是我的JSP页面。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib uri="/tags/star" prefix="star" %>
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>

<div id="tableContainer" class="tableContainer95">

    <display:table id = "displayTable"
                 name = "contentToDisplay"
                class = "scrollTable"
            decorator = "decoractorClass">

        <display:column  property = "displayTextField()" 
                         titleKey = "ID"/>

        <!--Only display checkbox if ID is present in some list in action class-->
        <display:column property = "displayCheckBox()"
                        sortable = "false"
                     headerClass = "sortable" />

1 个答案:

答案 0 :(得分:0)

两种方法都很好。

如果你选择客户端,你可以用几种方式(在JSTL中,在OGNL中等条件......)。

由于您使用的是Struts2,请使用OGNL,例如:

<display:column>

    <s:if test="%{myId in someList}">
        <s:checkbox ... />
    </s:if>

</display:column>

请注意,要获取PageContext,您需要使用#attr,之后您需要通过其uidlike described in this answer调用表格实例。