0

我的 JSP 中有以下 scriptlet:

<% for (int i=0; i<emailSettings.qualified_apn.length; i++) { %>
    var g ='<%= emailSettings.qualified_apn[i] %>'
    //some code
<% } %>

我将变量移动emailSettings到一个bean中......所以现在,我该如何更改循环?

4

1 回答 1

3

您应该使用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上。

于 2013-08-21T12:20:21.010 回答