2011-05-10 5 views
0

요청할 값을 설정하고 jsp 페이지를 보여주는 스프링 컨트롤러가 하나 있습니다. 뷰 파트의 경우 타일을 사용합니다. 결과 페이지에는 머리글, 내용 및 바닥 글 JSP의 3 부분이 있습니다. 이 헤더 jsp는 자바 파일을 사용하며이 파일에서 첫 번째 스프링 컨트롤러가 만든 속성에 액세스하려고합니다. 세션을 사용하지 않고이를 수행 할 수있는 방법이 있습니까? request.getAttribute를 시도하면 null이 반환됩니다. 요청 값 설정 후 즉시 파일이 아니기 때문이라고 생각합니다.서블릿과 자바 파일간에 값을 넘김

+0

보기에 formbean이 있습니까? – developer

+0

아니오 formbean을 사용하지 않습니다 – coder247

답변

1

모든 요청이 동일한 요청으로 실행되고보기 부분 전에 컨트롤러 코드가 실행되는 한 setAttribute()이 작동해야합니다. 이와 같은 문제를 디버그하려면 Filter을 사용하여 요청 URL과 속성을 콘솔이나 로그에 덤프합니다.

이러한 호출이 다른 요청에있는 경우 두 가지 옵션이 있습니다. 세션과 Spring bean (세션 bean 또는 사용자 고유의 구현 사용). 나는 타입 안전성을 가지고 있기 때문에 콩을 선호한다. 그리고 테스트는 복잡한 서블릿 API에서 코드를 분리 할 수있게 해준다.

+0

필터의 값을 볼 수 있습니다 – coder247

+0

그리고 필터가 완료되기 전에보기 코드가 실행됩니까? 그렇다면 다른 사람이 값을 삭제하거나 뷰가 다른 필터와 같이 생성 된 새로운 요청 인스턴스를 가져옵니다. –

1

코드 응답을 얻으려면 코드를 작성해야하지만 JSP 스크립틀릿을 사용하지 않는 한 헤더에서 사용중인 Java Bean을 추측하고 있습니다. 이것은 물론 요청 (따라서 세션)에 액세스 할 수 없으며 실제로 그렇게해야하지 않습니다. 요청/세션에 대한 액세스 권한을 원하면 태그 라이브러리로 변환하는 것이 좋습니다.