在我的Struts 1应用程序的jsp中,我试图使用c:set标签从显示表中的列表中设置变量。
表中的每一行都有一个值(100或200),用于区分哪个用户添加了条目。我想只为某个用户显示编辑/删除(100)。
我正在尝试设置该值并将其与100进行比较,以确定哪些行应该编辑/删除。
我遇到的问题是没有从我的列表中为rowUser分配值。
我知道列表中有值,因为表格会显示但是它们显示的所有行都好像它们不等于100.
到目前为止我所拥有的是:
<c:set var="rUser"><c:out value="${myList.rowUser}" /></c:set>
<c:choose>
<c:when test="${rUser == 100}">
<display:column property="startDate" title="Start Date" width="18%" decorator="com.mhngs.util.DisplayTagDateWrapper" sortable="true" headerClass="sortable"/>
<display:column property="endDate" title="End Date" width="18%" decorator="com.mhngs.util.DisplayTagDateWrapper" sortable="true" headerClass="sortable" />
<display:column property="reason" title="Comments" width="17%" sortable="true" headerClass="sortable" />
<display:column media="html" width="17%"><a href="#" onClick="javascript:editEntry('<c:out value="${myList.Id}"/>')">Edit</a></display:column>
<display:column media="html" width="15%"><a href="#" onClick="javascript:deleteEntry('<c:out value="${myList.Id}"/>')">Delete</a></display:column>
</c:when>
<c:otherwise>
<display:column property="startDate" title="Start Date" width="18%" decorator="com.mhngs.util.DisplayTagDateWrapper" sortable="true" headerClass="sortable"/>
<display:column property="endDate" title="End Date" width="18%" decorator="com.mhngs.util.DisplayTagDateWrapper" sortable="true" headerClass="sortable" />
<display:column property="reason" title="Comments" sortable="true"/>
</c:otherwise>
</c:choose>
非常感谢任何帮助。
答案 0 :(得分:1)
如果您想将myList.rowUser
分配给属性rUser
,只需使用
<c:set var="rUser" value="${myList.rowUser}"/>
也就是说,为什么要使用其他属性,而不是直接使用myList.rowUser
?
<c:when test="${myList.rowUser == 100}">
最后,问题是display标签计算要在第一次迭代时显示的列。在以下迭代中,它只是更改每列中显示的值。当属性为200时,不应显示最后两列,而应显示它们,但将它们留空。简而言之,测试应该在display:column标签内,而不是在outside:
之内<display:column ...> if row = 100, display button </display:column>