현재 검색 조건 속성을 검색 페이지와 편집 페이지의 두 페이지 사이의 세션에 저장하려고합니다. 목표는 세 변수를 저장하는 것입니다. sYear, submission, collectionPeriod. 내가 검색 스크린 컨트롤러 여기에 아래의 세션에 다음을 추가 해요 : 편집 화면 컨트롤러에서 request.getSession().setAttribute("sYearSave", sYear); request.getSession().setAttribute("submissionSave", submission); request.getSession().setAttribute("collectionPeriodSave", collectionPeriod);
보기에서 돌아올 때 세션 속성이 null을 반환합니다.
, 나는 true.
에 부울 isFromEditScreen
설정이 그렇다 나는 내가로부터오고 있음을 알고 화면 편집. 변수를 출력하고 컨트롤러 화면 편집에서 올바르게 값을 얻습니다.
request.getSession().setAttribute("isFromEditScreen", new Boolean(true));
sYearSave = (String)request.getSession().getAttribute("sYearSave");
collectionPeriodSave = (String)request.getSession().getAttribute("collectionPeriodSave");
submissionSave = (String)request.getSession().getAttribute("submissionSave");
하지만 검색 화면으로 돌아 가기 위해 뒤로 버튼을 사용할 때 문제가, 검색 기준이 sYearSave, collectionPeriodSave, and submissionSave
값은 어떤 이유로 NULL.
을 돌아가 isFromEditScreen
부울이 잘 작동하고 true.
를 반환 실제로 문장을 입력 그러나 검색 기준은 검색 컨트롤러 코드는 다음과 같습니다 null.
를 반환 :
if (isFromEditScreen != null && isFromEditScreen == true) {
System.out.println("Inside isFromEditScreen ==== true");
sYear = (String)request.getSession().getAttribute("sYearSave");
collectionPeriod = (String)request.getSession().getAttribute("collectionPeriodSave");
submission = (String)request.getSession().getAttribute("submissionSave");
sYearSave = (String)request.getSession().getAttribute("sYearSave");
collectionPeriodSave = (String)request.getSession().getAttribute("collectionPeriodSave");
submissionSave = (String)request.getSession().getAttribute("submissionSave");
System.out.println("sYearSave ==== " + sYearSave);
System.out.println("submissionSave ==== " + submissionSave);
System.out.println("collectionPeriodSave ==== " + collectionPeriodSave);
System.out.println("isFromEditScreen set in else ==== " + isFromEditScreen);
}
이 어떤 도움을 크게 감상 할 수있다!
브라우저의 뒤로 단추를 사용하면 서버에 대한 요청이 생성되지 않습니다. 브라우저는 일반적으로 캐시에서 페이지를로드합니다. LinkButton이나 이와 비슷한 것을 시도 했습니까? – rusty
그리고 세션에 입력 한 값이 'null'이 아닌지 확실합니까? 검색 화면으로 돌아가 "공백"URL로 페이지를 다시로드하면 (즉, 매개 변수가 제공되지 않은 경우) 검색 컨트롤러 구현에 따라 세션 값을 무시할 수 있습니다. 그 외에 - 탭 브라우징에 대해 생각 했습니까? 하나의 세션, 두 개의 탭, 많은 문제 ... – skirsch
'session'에서 검색 매개 변수를 전달하지 않아야합니다. 검색 매개 변수는 [query strings] (http://stackoverflow.com/questions/4128436/query-string-manipulation-in-java)를 사용해야합니다. – Apurv