java - 在 JSP 中循环访问响应变量

标签 java jsp jakarta-ee servlets

我正在编写一个 JSP 页面,它从 servlet 中检索变量并将它们输出给用户,我当前的代码工作如下:

String uploadStatus = (String) request.getAttribute("uploadStatus");
String readStatus = (String) request.getAttribute("readStatus");
String saveStatus = (String) request.getAttribute("saveStatus");
String completeStatus = (String) request.getAttribute("completeStatus");
String applicationName = (String) request.getAttribute("applicationName"); 
String buildAndroid = (String) request.getAttribute("buildAndroid"); 
String buildWindows = (String) request.getAttribute("buildWindows"); 
String buildiOS = (String) request.getAttribute("buildiOS");
String uploadCompleteStatus = (String) request.getAttribute("uploadCompleteStatus"); 
String startBuild = (String) request.getAttribute("startBuild"); 
String finishBuild = (String) request.getAttribute("finishBuild"); 

out.println(uploadStatus + "<br>");
out.println(readStatus + "<br>");
out.println(saveStatus + "<br>");
out.println(applicationName + "<br>");
out.println(buildAndroid + "<br>");
out.println(buildWindows + "<br>");
out.println(buildiOS + "<br>");
out.println(uploadCompleteStatus + "<br>");
out.println(startBuild + "<br>");
out.println(finishBuild + "<br>");

它工作得很好,但是代码很长而且不是很容易扩展。我想知道他们是否是一种使用 for 循环和可能的通配符在 JSP 中更简单地执行此操作的方法。有人有什么想法吗?

谢谢

最佳答案

为什么不将所有状态变量添加到 List<String>并添加 Listrequest属性?这样您就可以使用单个循环来输出所有变量。

List<String> statusItems = new ArrayList<>();
statusItems.add(uploadStatus);
statusItems.add(readStatus);
...
request.setAttribute("statusItems", statusItems);

顺便说一句,不鼓励在 JSP 中使用 scriptlet。使用 JSTL :

<c:forEach var="status" items="${requestScope.statusItems}">
  ${status} <br/>
</c:forEach>

或使用 <c:out value="${status}"/>forEach 内如果您希望对状态值进行 HTML 转义。

关于java - 在 JSP 中循环访问响应变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18123448/

相关文章:

java - NavigationDrawer 不起作用,它在执行某些操作之前关闭

java - 更新由 symmetricds 同步的表

java - 使用 scriptlet 的缺点?

maven - 如何使用maven archetype创建JSF2.2 + EJB3 + JPA2项目

jakarta-ee - 一致性: BackingMap is not resettable

java - 如何摆脱 PermGen 空间?

java - rmi 性能网络流量

JAVA 贪吃蛇游戏错误。蛇走了3步就停了下来

java jsp if语句

jsp - 使用 JSTL 为 JSP 下拉列表选择的值