【发布时间】:2018-05-13 07:14:58
【问题描述】:
我有一个 display:table 标记,它使用了一个始终显示“没有要显示的记录”的 struts 操作的结果。操作方法中的记录代码显示操作结果中有 30 项。
希望有人能指出我的错误:
JSP 是:
<s:action var="passageAction" name="list" namespace="/secure/assessment/passage">
<s:param name="itemBankID">${param.itemBankID}</s:param>
<s:param name="standardGuid">${param.standardGuid}</s:param>
</s:action>
<display:table id="passage" name="#passageAction.availableItems">
Struts 动作定义:
<action name="list" class="com.ia.controller.assessment.PassageAction" method="listPassages">
<result name="success"/>
<result name="error"/>
</action>
listPassages 方法的最后一部分记录了 30 个项目:
this.availableItems =
this.passageDAO.list(
criteria,
pagination,
showRetired,
excludePrompt,
null);
LOGGER.info("count of items " + this.availableItems.size());
return SUCCESS;
【问题讨论】:
-
AFAIK 显示标签库对 OGNL 一无所知(现在可能,我已经有 5 年多的时间没有考虑过了)并且您正在尝试使用 OGNL 来引用这些项目。我要尝试的第一件事是对显示标签的
name属性使用标准JSP EL 表示法,但我的猜测是这还不够。也就是说,我很困惑为什么你会这样做,即通过<s:action />标签。在您实际使用的操作中进行调用,而不是在单独的操作中调用 - 视图层不是聚合所需信息的好地方。 -
我正在将此页面的结果加载到一个 div 标签中,因此它显示为一个弹出模式窗口。这就是为什么单独使用 s:action 标签
-
我看不出它在弹出窗口中有什么关系。
标签: struts2 displaytag