2013-08-21 40 views
0

我在我的JSP下面的腳本:從scriptlet的與JavaBean

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

我感動變量emailSettings成豆...所以現在,我該如何改變循環?

+0

'bean.getEmailSettings()'?您不應該在JSP中使用scriptlet。瞭解JSP EL和JSTL。 –

+0

如何在EL和JSTL中編寫上述代碼? – Benny

+0

查看@MikO的回答。請注意,你需要一個getter的'qualified_apn'字段。無論如何你都不應該使用公共領域。還要考慮尊重Java命名約定:在變量和方法中不使用下劃線。 –

回答

3

您應該使用JSTL瀏覽列表,而不是使用腳本元素,被認爲是very bad practice ...的所有經營業務邏輯應該被封裝到類和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 documentation。此外,您可以在網上找到許多關於JSTL的教程,只需使用Google搜索「JSTL教程」,例如tutorialspoint.com

+0

如何做變量g的賦值? – Benny

+0

@Benny:我的代碼中的var'item'正是你的變量'g'!標籤'forEach'創建一個瀏覽你的'emailSettings.qualified_apn'列表的循環,並且在每次迭代中,var'item'將包含列表的一個成員... – MikO