要求是我需要在表格的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" />
答案 0 :(得分:0)
两种方法都很好。
如果你选择客户端,你可以用几种方式(在JSTL中,在OGNL中等条件......)。
由于您使用的是Struts2,请使用OGNL,例如:
<display:column>
<s:if test="%{myId in someList}">
<s:checkbox ... />
</s:if>
</display:column>
请注意,要获取PageContext,您需要使用#attr
,之后您需要通过其uid
,like described in this answer调用表格实例。