2012-06-12 2 views
2

Привет У меня есть что-то подобное в struts.xmlСохранение объекта в сессии - struts2

<action name="LoginAction" class="controller.LoginAction"> 
       <result name="error">/Error.jsp</result> 
       <result name="success">/Wizard.jsp</result> 
    </action> 

Отредактировано:

После успешного выполнения execute в действии на следующей странице есть данные, которые он получает доступ с помощью область запроса. Как я могу хранить одни и те же данные в области сеанса?

Я прочитал, что HttpServletRequest объекта передается в качестве параметра методы execute() в действии Struts, и я всегда могу получить HttpSession объект с помощью request.getSession() и присоединения к нему данным.

Так что, если я использую что-то вроде этого в controller.LoginAction

public String execute(HttpServletRequest req) { 
    ... 
} 

ли я изменить struts.xml? execute не вызывается, когда в качестве параметра добавляется HttpServletRequest.

<action name="LoginAction" class="controller.LoginAction"> 
       <result name="error">/Error.jsp</result> 
       <result name="success">/Wizard.jsp</result> 
    </action> 

Также использует сеанс таким образом, лучший способ? Я пытаюсь познакомить себя с методом struts.

+0

другой способ сохранения данных, чем сессии или другой способ хранения данных в сессии. Это идеальный способ хранения данных в сеансе. –

+0

Просто отредактировал мое оригинальное сообщение с вопросом – MistyD

+1

Вы читали неправильно или что вы читали неправильно; Методы действий S2 не принимают никаких параметров. –

ответ

2

Вы можете реализовать SessionAware интерфейс:

public class LoginAction extends ActionSupport implements SessionAware { 
    private Map session; 

    public String execute() { 
     session.put("key", "value"); 
     // Plus any additional action code 
    } 

    // Plus setter (and optionally getter) for session map. 
} 

Альтернативный способ с использованием ActionContext объясняется here.

SessionAware является предпочтительным по сравнению с ActionContext. Вот некоторые дискуссии о том, что:

+0

Спасибо, что решил. – MistyD

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