2011-08-01 4 views
2

jsp 페이지가 있습니다. jsp 페이지를 iframe에서 호출하고 url에 새 매개 변수를 추가합니다.struts 액션 클래스에서 요청 속성을 가져올 수 없습니다.

usrl 보이는

HTTP와 같은 : \ 로컬 호스트 : 8080 \ Search.pp 어쩌구 = TRUE;

그래서 때이

String Parameter = 
      request.getParameter(blah); 
    if (StringUtils.isNotEmpty(Parameter)) { 
     Search = Boolean.parseBoolean(campaignSearchParameter); 
    } 

과 같은 코드를 가지고 다음 JSP 페이지에서 내가

final Boolean Search = (Boolean) request.getAttribute("blah") == null ? false : (Boolean) request 
     .getAttribute("blah"); 
request.setAttribute("blah",Search); 

내가 뭔가를 할 액션 클래스의 소위 검색 페이지는 몇 가지 필터를 가지고로 이 "검색"부울 변수를 사용하면 다른 페이지에서 호출 될 때 항목을 숨길 수 있습니다. 따라서 사용자가이 페이지의 링크를 클릭하면 다시 동일한 작업 클래스 인 struts로 돌아갑니다. 제 문제는 처음에는 모든 것이 잘 작동한다는 것입니다. 다음 번에는 struts 액션에서이 변수가 설정 될 것으로 예상되지만 null이 반환되는 것처럼 보입니다.

답변

0

요청 속성은 해당 HTTP 요청이 살아있을 때만 유효합니다. 클라이언트가 실제로 보낸 때마다 시작되고 클라이언트가 HTTP 요청과 관련된 전체 HTTP 응답을 검색 할 때마다 끝납니다. 후속 요청은 이전 요청의 속성 사본을 전혀 포함하지 않는 완전히 새로운 요청입니다.

대신 요청 매개 변수로 전달해야합니다. 예를 들어 다른 페이지의 양식에 숨겨진 입력 필드로 사용할 수 있습니다.

<form ...> 
    ... 
    <input type="hidden" name="blah" value="${fn:escapeXml(param.blah)}" /> 
</form> 

합니다 (JSTL fn:escapeXml()은 사용자 제어 입력을 다시 표시하면서 XSS 공격으로부터 사이트를 방지하는 것입니다)
관련 문제