2010-06-16 5 views
2

В одном из моих действий Struts У меня есть следующий код в методе:Передача объекта Java от действия одного Struts другому

... 
    List<Object> retrievedListOfObjects = c.getListOfObjects(); 
    return mapping.findForward("view"); 
} 

fw_view приводит к новому Struts действия с другой формой Struts. Скажем, эта форма имеет среди прочего следующее поле

List<Object> listOfObjects; 

теперь я хочу передать retrievedListOfObjects изнутри действия первых Struts в виде следующего действия Struts.

Возможно ли это, не сохранив его в сеансе?

ответ

6

Вы можете сохранить его в качестве атрибута запроса.

request.setAttribute("listOfObjects", listOfObjects); 

, а затем в действии, который перенаправляется на

List<Object> listOfObjects = (List<Object>)request.getAttribute("listOfObjects"); 

Учитывая, что при настройке запроса атрибутов вы можете дать им осмысленные имена, вы должны рассмотреть вопрос о создании многих атрибутов, а не устанавливать один большой список объектов ,

1

Исправление кода krock.

Установка объекта запроса:

request.setAttribute("listOfObjects", listOfObjects); 

Получение объекта в другом действии.

List<Object> listOfObjects = (List<Object>)request.getAttribute("listOfObjects"); 
+0

спасибо @Fred, я установил геттер, который я, очевидно, вырезал и вставил из кода сеттера. – krock

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