0

在我的 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>

任何帮助将不胜感激。

4

1 回答 1

1

如果要分配myList.rowUser给属性rUser,只需使用

<c:set var="rUser" value="${myList.rowUser}"/>

也就是说,为什么要为此使用附加属性,而不是直接使用myList.rowUser

<c:when test="${myList.rowUser == 100}">

最后,问题是显示标签在第一次迭代时计算要显示的列。在接下来的迭代中,它只是更改每列中显示的值。当属性为 200 时,不应显示最后两列,而应显示它们但将它们留空。简而言之,测试应该在 display:column 标签内,而不是在外面:

<display:column ...> if row = 100, display button </display:column>
于 2013-04-19T21:00:51.597 回答