От скриплетов до джавабеанцев

У меня есть следующий скриптлет в моем JSP:

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

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

1 ответ

Решение

Вы должны использовать JSTL для просмотра списка вместо использования скриптлетов, что считается очень плохой практикой... Вся логика бизнеса должна быть заключена в классы, а 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.

Другие вопросы по тегам