2014-03-12 6 views
0

난이 실행은 작업 클래스 ActionFlowActionUnit1.java가 설정하는 스트럿 작업 흐름 (스트럿-1.x의 프레임 워크)이 흘러 String 변수 varName 코드사용 요청

request.setAttribute("varNameFromRequest", varName); 
를 사용 request

이고 흐름은 결국 jspPage1.jsp의로드로 이어진다.

이제 Page1.jsp에는 버튼이 포함되어 있습니다.이 버튼을 클릭하면 동작 클래스 ActionFlowActionUnit2.java이 포함 된 새로운 스트럿 액션 플로우가 시작됩니다. 이 수업에서는 request.getAttribute()을 사용하여 요청한 varName을 사용하고 싶습니다.

어떻게해야합니까? 세션을 사용하지 않고을 사용할 수 있습니까?

기술적으로는 request을 사용하여이 작업을 수행 할 수 있는지 확실하지 않습니다. 왜냐하면 새로운 스트럿츠 작업을 트리거하면 이전에 설정된 request에있는 다른 모든 정보가 손실 될 수 있기 때문입니다.

Google에서 아무 것도 가져올 수 없습니다.

답변

1

당신은 당신이 원하는 기술적으로 가능하지, 말하는 것처럼 그것은 (브라우저에서 모든 HTTP 요청은 새로운 HttpServletRequest 객체를 생성)

당신은 두 가지 옵션이 있습니다 :의 Session를 사용

  • 을하는 당신은 내가 이해할만큼 멀리 피하기를 원한다.
  • 유지하고 싶은 값을 가진 모든 연속적인 요청에 앞뒤로 어떤 매개 변수를 가져와라.

두 번째 옵션은 당신이받을 수있는 두 번째 조치를 필요로하는 변수로 Page1.jsp <form> 내부에 몇 가지 매개 변수를 저장 한 다음 씻어 반복하는 것을 의미한다. 이것은 순수한 HTML 양식 솔루션입니다.

복잡한 흐름을 구현하는 경우 Spring Webflow를 살펴 보는 것이 좋습니다. 여기에서 요청 또는 세션과 다른 "범위"에 저장된 흐름 수준 변수를 관리 할 수 ​​있으며 원하는 것을 정확하게 볼 수 있습니다.

http://projects.spring.io/spring-webflow/