![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
MaxPayneC |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 18.2.2006 Репутация: 3 Всего: 9 |
Имеется код в JSP:
в соответствующем Action-классе есть метод getGraduate(), у возвращаемого им объекта - метод getEducations(), который возвращает Set<Education>. Проблема в том, что JSP считает множество пустым во всех случаях кроме одного: в методе execute action-класса был установлен брейкпоинт, и на graduate.getEducations().size() был сделан evaluate value. Тогда работает как должен. Кто-то сталкивался? |
|||
|
||||
MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
должно быть так:
пробуй -------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
MaxPayneC |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 18.2.2006 Репутация: 3 Всего: 9 |
Не работает.
<s:if test="!graduate.educations.isEmpty"> всегда false <s:if test="!graduate.getEducations().isEmpty()"> true, только если был сделан эвалуейт в экшн-классе Это сообщение отредактировал(а) MaxPayneC - 19.6.2009, 11:56 |
|||
|
||||
MisterCleric |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
а я же написал
ладно. покажи свой Action и его меппинг в struts.xml -------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
||||
|
|||||
MaxPayneC |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 18.2.2006 Репутация: 3 Всего: 9 |
[xml] <action name="ShowGraduate" class="com.vc.graduates.actions.ShowGraduate"> <result name="input">/GraduateInfo/NotFound.jsp</result> <result name="error">/GraduateInfo/NotFound.jsp</result> <result>/GraduateInfo/ShowGraduate.jsp</result> </action> [/xml] У сета нет метода empty(), только isEmpty() |
|||
|
||||
MisterCleric |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
вот мой работающий пример:
по-моему тут лишняя операция set. Там же ситуация какая. Все проперти достаются через рефлексию исключением префиксов "get", "set" а также "is" и приведением первой буквы в lowerCase ну и обратно с помощью такой движка как OJNL. Почитай доки как правильно надо с этим работать в кастом-тегах. default-interceptor-ref в студию! -------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
||||||
|
|||||||
MaxPayneC |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 18.2.2006 Репутация: 3 Всего: 9 |
А покажи джава-класс, плиз. Добавлено через 7 минут и 15 секунд
Если я правильно понял о чем ты, то вот фрагмент struts-default.xml
|
||||||
|
|||||||
MisterCleric |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
со стэком вроде все-ок. Ну не понятно, что у тебя не так... -------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
||||
|
|||||
MaxPayneC |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 18.2.2006 Репутация: 3 Всего: 9 |
Возможно, какая-то проблема с set? :/
На ум приходят тока шаманские действия, чтото засунуть туда и вынуть в экшн-классе, раз код работает только после эвалуейта. Добавлено через 4 минуты и 14 секунд Добавил в код строки:
Заработало ) |
|||
|
||||
MisterCleric |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
так подожди, может у тебя эта коллекция LazyLoad? Понятно, что ее не будет после того, как ты сделал так
-------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
||||
|
|||||
MaxPayneC |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 18.2.2006 Репутация: 3 Всего: 9 |
В хибернейт-маппинге у education стоит lazy="false".
Я это написал зря? Сорри за этот вопрос, но я чтото не очень понял из доков, за что отвечает этот параметр :( |
|||
|
||||
MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
давай дебажься и читай стэктрейс, что там пишеться кругом и как выглядит твой объект, после того, как ты вызвал commit();
-------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
MaxPayneC |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 18.2.2006 Репутация: 3 Всего: 9 |
В дебаггере переменная осталась, эвалуейт ее сделать можно, сет с education-ами тоже можно посмотреть из дебаггера. Добавлено через 2 минуты и 40 секунд В маппинге класса Graduate было указано
вставил lazy="false", заработало. Ты не мог бы подсказать, где можно почитать про lazy initialization, так чтобы было доступно написано? В официальных доках к хибернейту чтото не могу понять смысл этой штуки :( |
||||
|
|||||
MisterCleric |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1043 Регистрация: 16.2.2006 Где: Харьков, Украина Репутация: 33 Всего: 38 |
ищи где-то по форуму я кому-то расписывал, как работать с этими LAZY
-------------------- ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ... |
|||
|
||||
MaxPayneC |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 324 Регистрация: 18.2.2006 Репутация: 3 Всего: 9 |
Окей. Спасибо за помощь )
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |