gpt4 book ai didi

java - 在jsp页面中显示Arraylist

转载 作者:行者123 更新时间:2023-12-02 08:41:02 24 4
gpt4 key购买 nike

我试图在显示的 .jsp 页面中显示以下 ArrayList,但运行 portlet 后似乎看不到任何值,问题出在哪里?

代码.java

 public class TestPortlet extends MVCPortlet {
public void displayProcess(ActionRequest request, ActionResponse response) {
ArrayList<String> process = new ArrayList<>();
process.add("a");
process.add("b");
process.add("c");
process.add("d");
process.add("e");

request.setAttribute("processName", process);
}
}

jsp页面如图:

<%@ include file="/init.jsp"%>

<jsp:useBean id="processName" class="java.util.ArrayList" scope="request" />

<aui:select id="process" name="processitems">
<c:forEach items="${processName}" var="process">
<aui:option value="${process}">
${process}
</aui:option>
</c:forEach>
</aui:select>

任何帮助将不胜感激。

最佳答案

不确定这是否是完整的答案,但需要采取一些步骤来找出问题所在。我正在接受您的问题以及一些评论:

您正在实现一个 portlet 操作处理程序,从那里,您不会转发/分派(dispatch)到特定的 jsp:portlet 的 ACTION 阶段仅适用于更改状态,而显示结果是 VIEW 阶段的一部分。您发布的代码(尽管显然已简化)看起来更想住在 doView() 中.

事实上,这可能就是您所需要的:如果您仅显示 portlet,将触发 VIEW 阶段。仅显示 portlet不会触发操作处理程序,您可以在调试器中验证该操作处理程序。

对于 JSP:您所说的只是您“似乎看不到”任何结果。验证您的问题出在哪里:列表是否存在?枚举列表有效吗?您的 AUI 标签库有问题吗?您可以通过删除所有其他标签来轻松检查这一点,而是通过删除一点来生成纯输出。

当您查看输出的源并且任何 JSP 内容都存在时(例如 ${processName}<aui:select..><c:forEach...> ,那么您就会知道这是“看不到”任何内容的根本原因.您可能会错过标签库或其他标签库。

最后:我从来没有尝试过这个,但是<aui:select>是一个旨在在表单内使用的标签,我不确定它在表单外的作用 - 您可能需要用 <aui:form ....> 将其包围看看接下来会发生什么。

关于java - 在jsp页面中显示Arraylist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61388943/

24 4 0