2012-03-29 5 views
2

Я делаю один проект на Struts 2, который я получаю знание немного по чуть-чуть ..доступа к значениям класса в JSP страницы из класса действия

У меня есть действие, как этот

<action name="backaction" class="HandlerAction"> 

<result name="user_profile" type="redirect">hai.jsp</result> 

В классе Handler action у меня есть объект userprofile, в котором находятся члены name и age.

В функции выполнения

log.info(userprofile.getName())//it is giving name xyz 

return "user_profile" 

Я получаю hai.jsp, но я не могу извлечь значение в этом объекте userprofile в JSP.

hai.jsp выглядит следующим образом ..

<%@taglib prefix="s" uri="/struts-tags"%> 
<html> 
<body> 
<s:textfield name="user_name" value="%{userprofile.name}"/> 

</body> 
</html> 

Я попробовал, поставив в качестве value="%{name}" также, но я не получаю значение хуг ..

+0

когда я удалить тип = «переадресовать» .. . Реакция sameclass итеративно выполняется и переходит в бесконечность. – user533

ответ

1

Проблема с

<result name="user_profile" type="redirect">hai.jsp</result> 

, так как вы используете переадресацию типа результата, который означает, что структура будет создать новый запрос и объект ответа и отбрасывая старый запрос/ответ Object.So, когда вы возвращаетесь из ваших действий ваш пользовательский объект находится в стекх значений, пока вы не сообщите S2, что вы хотите использовать тип результата redirect.

При просмотре типа результата перенаправления он будет отбрасывать любые существующие данные и создаст новый запрос для размещения его содержимого в стеке значений, и именно поэтому это не работает для вас. Я не уверен, почему вы используете тип результата redirect так как вы можете сделать то же самое с помощью любой сборки в типе результата, скажем success.

Если вы хотите использовать результат перенаправления, я предлагаю вам сохранить данные профиля пользователя в любом Session и получить его в своем следующем действии или использовать scope-interceptor

+0

, когда я использую результат success..It действие action.jsp submit action (т.е. когда пользователь нажимает кнопку отправки, он будет генерировать действие. ..). – user533

+0

Я не уверен, что вы подразумеваете под действием index.jsp, так как вы можете создать любую строку результата и показать представление в соответствии с вашими требованиями. –

+0

извините ... он может пойти в handleraction ... но так или иначе отсутствует токен или что-то в этом роде ... я не знаю, почему ... в любом случае спасибо за помощь ... я пытался с тех пор 3 часа. Ты помог своему максимуму. – user533

1

Struts2 Redirect Result

Вызывает {@link HttpServletResponse # sendRedirect (String) sendRedirect} в указанное место. В ответе предлагается перенаправить браузер в указанное место (новый запрос от клиента). Следствием этого является то, что действие (экземпляр действия, ошибки действий, ошибки полей и т. Д.), который был только что выполнен, потерян и больше не доступен. Это происходит потому, что действия построены на однопоточной модели. Единственный способ передать данные - через сеанс или с веб-параметрами (url? Name = value), которые могут быть выражениями OGNL.

Смежные вопросы