我的 JSP 中有以下 scriptlet:
<% for (int i=0; i<emailSettings.qualified_apn.length; i++) { %>
var g ='<%= emailSettings.qualified_apn[i] %>'
//some code
<% } %>
我将变量移动emailSettings
到一个bean中......所以现在,我该如何更改循环?
您应该使用JSTL来浏览列表,而不是使用 scriptlet,这被认为是一种非常糟糕的做法......所有业务逻辑都应该封装到类中,JSP 应该只包含表示逻辑......
您应该将所有的类都//some code
移到 Java 类中,并且一旦将要在页面中显示的所有值收集到类中,就可以像这样使用 JSTL:
<c:forEach var="item" items="${emailSettings.qualified_apn}">
<p>Item foo: ${item.foo}</p>
<p>Item bar: ${item.bar}</p>
...
</c:forEach>
请记住,您必须使用以下命令将 JSTL 核心库导入您的 JSP:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
另请注意,正如@JBNizet所评论的那样,您需要为班级中的qualified_apn
字段使用吸气剂EmailSettings
(您永远不应该使用公共字段!)。还要考虑尊重 Java 命名约定:变量和方法中没有下划线(即qualifiedApn
)。
我建议您开始阅读 Oracle 的官方JSTL 文档。此外,您可以在网络上找到许多关于 JSTL 的教程,只需搜索“JSTL 教程”,例如在tutorialspoint.com上。