![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
svby |
|
|||
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 23.6.2005 Репутация: нет Всего: нет |
Нужно в Struts-тег вложить выражение JSTL. Вторая строчка не работает. Как правильна записать?
|
|||
|
||||
gEndelf |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 7.7.2005 Где: the world Репутация: 1 Всего: 3 |
а зачем ты в поле property подставляешь значение ?
там должно быть название геттера ну а если в input необходимо подставить значение и имя, то делается так
Это сообщение отредактировал(а) gEndelf - 9.8.2005, 19:00 |
|||
|
||||
kkorsakoff |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.10.2005 Где: Санкт-Петербург Репутация: 6 Всего: 14 |
У меня почему-то выводится строка без обработки, т.е. что-то вроде ${screenname.screenname}.
<c:out> вообще работает. Приходится выводить при помощи нелепой конструкции value="<%=((Screenname)pageContext.getAttribute("screenname")).getScreenname()%>" |
|||
|
||||
kkorsakoff |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.10.2005 Где: Санкт-Петербург Репутация: 6 Всего: 14 |
Решил не создавать новую тему.
Сегодня был первый практический опыт применения технологии JSTL. Первые впечатления: Уменьшает количество скриплетов, повышает читаемость кода. Однако, кто сказал, что тому же дизайнеру будет проще работать с <c:out..>, чем с <%=...%>. Это еще не факт. Итерация радует донельзя. Но не могу сделать простейшие вещи (или не умею?): 1. Раз уж мы все рабочие данные поместили в аттрибуты (страницы/запроса/сессии/приложения), то должен быть простой спрособ вынимать эти данные в любом месте, а не только в тэгах <c:...> Наглядный пример - мой пост выше. <html:text property="..." value="${per.value.quantity}" /> - выводит ${per.value.quantity}, вместо значения этого поля. 2. Полная невозможность получать данные для манипулирования из методов с параметрами (не знаю как их правильно назвать). Пример: пользователь хочет посмотреть кто сколько сообщений ему оставил. Он видит список "друзей", перед именем каждого кол-во новых сообщений. Страница messages.jsp - запрос к БД в самой странице не делаем, а имеем класс, который выполняет всю логику. Назовем его Main. Объект класса всегда лежит в applicationScope. Чтобы получить список друзей/сообщений необходимо вызвать метод Main.getNewMessages(String account); Получается при помощи чистого JSTL коллекцию уже не получить. Приходится в начале страницы вставлять
, а затем работать через ${newMessages} Теряется суть JSTL - где же тут упрощение. Или абсолютно все зашивать в Action'ы и передавать в jsp чистые данные в виде готовых переменных, коллекций, объектов... Получается на каждую страницу необходимо писать по одному Action'у, плюс по Action'у для "действительно" действий, таких как удаление сообщений, создание и т.д. Это неплохо затягивает сроки разработки. Тогда уж проще в начале страницы написать парочку скриплетов. Поясните, может я архитектурно что-то не так понимаю. 3. if есть, else нет. Ну ладно, переживем....(всё повышаем читаемость) ![]() 4. Что больше всего не понравилось - отсутствие возможности использовать константы в выражениях jstl. Хочу сделать простейшую проверку, что человек залогинился и его статус - не заблокирован
выдает ошибку javax.servlet.jsp.JspTagException: javax.servlet.jsp.JspException: An error occurred while evaluating custom action attribute "test" with value "${(empty sessionScope.Passport) || (sessionScope.Passport.status==Passport.STATUS_BLOCKED)}": Unable to find a value for "STATUS_BLOCKED" in object of class "....Passport" using operator "." Это сообщение отредактировал(а) kkorsakoff - 5.4.2006, 00:12 |
||||
|
|||||
zera |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 19.1.2006 Где: saint-petersburg Репутация: 1 Всего: 9 |
по пункту 3 - есть же <c:choose> <c:when>...</c:when>[<c:otherwise>..</c:otherwise>]</c:choose>
1 и 2 - в силу незнания стратса не отвечу, но ${main.newMessage} -должно работать. и <c:out зачастую не нужен Это сообщение отредактировал(а) zera - 5.4.2006, 13:00 |
|||
|
||||
kkorsakoff |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.10.2005 Где: Санкт-Петербург Репутация: 6 Всего: 14 |
Не работает ни в аттрибутах стратсах, ни просто в хтмле. Работает ${} только в тегах JSTL
|
|||
|
||||
zera |
|
||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 19.1.2006 Где: saint-petersburg Репутация: 1 Всего: 9 |
если в web.xml
а вот если
- работает. первый пример под рукой оказался.
или мы о разном говорим? ![]() |
||||||
|
|||||||
kkorsakoff |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.10.2005 Где: Санкт-Петербург Репутация: 6 Всего: 14 |
О том, о том
![]() Спасибо! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |