从scriptlet到Javabean

时间:2013-08-21 12:06:53

标签: jsp jstl javabeans scriptlet

我的JSP中有以下scriptlet:

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

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

1 个答案:

答案 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_apnEmailSettings字段的getter(您不应该使用公共字段!)。还要考虑尊重Java命名约定:变量和方法中没有下划线(即qualifiedApn)。

我建议你开始阅读Oracle的官方JSTL documentation。此外,您可以在网上找到许多关于JSTL的教程,只需 googling “JSTL教程”,例如在tutorialspoint.com上。