2013-08-21 4 views
0

Я следующий скриптлет в моем JSP:От скриптлета до бина

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

Я переехал переменную emailSettings в боб ... так что теперь, как я могу изменить цикл?

+0

'bean.getEmailSettings()'? Вы не должны использовать скрипты в JSP. Изучите JSP EL и JSTL. –

+0

Как написать выше код в EL и JSTL? – Benny

+0

См. Ответ @MikO. Обратите внимание, что для поля 'qual_apn' вам понадобится getter. В любом случае вы никогда не должны использовать общедоступные поля. Также обратите внимание на соблюдение соглашений об именах Java: никаких подчеркиваний в переменных и методах. –

ответ

3

Вы должны использовать JSTL для просмотра списка вместо использования скриптлетах, которые считаются very bad practice ... Все Bussiness логика должна быть заключена в классы, и 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 в Интернете только googling «Учебник JSTL», например, на tutorialspoint.com.

+0

Как выполнить назначение переменной g? – Benny

+0

@Benny: var 'item' в моем коде точно соответствует вашей переменной' g'! Тег 'forEach' создает цикл, который просматривает ваш список' emailSettings.qualified_apn', и на каждой итерации переменная 'item' будет содержать член списка ... – MikO