我的JSP中有以下scriptlet:
<% for (int i=0; i<emailSettings.qualified_apn.length; i++) { %>
var g ='<%= emailSettings.qualified_apn[i] %>'
//some code
<% } %>
我将变量emailSettings
移动到bean中......所以现在,我该如何更改循环?
答案 0 :(得分:3)
您应该使用JSTL来浏览列表,而不是使用被认为是very bad practice的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
字段的getter(您不应该使用公共字段!)。还要考虑尊重Java命名约定:变量和方法中没有下划线(即qualifiedApn
)。
我建议你开始阅读Oracle的官方JSTL documentation。此外,您可以在网上找到许多关于JSTL的教程,只需 googling “JSTL教程”,例如在tutorialspoint.com上。