2012-05-24 4 views
1

mojarra를 숨기고 javax.faces.ViewState를 내 <form>에 숨기려면 어떻게해야합니까? 내 view-scoped bean이 올바르게 다시 초기화 되었기 때문에 처음으로 내 페이지가로드되는 검색 <form method='GET'>이 있습니다. 그러나 페이지의 AJAX 페이지 매김 (PrimeFaces 그리드 위에) 후에, Mojarra (또는 PrimeFaces?)는 숨겨진 javax.faces.ViewState를 제 폼에 삽입합니다. 이제 폼을 제출할 때 javax.faces.ViewState 입력으로 인해 뷰 범위 Bean이 다시 시작되지 않습니다.숨겨진 javax.faces.ViewState JSF2 주입 방지 방법

문제점은 다음과 같습니다. 검색 빈을 초기화하여 결과를 사용자에게 보여주고 싶지만 ViewScope 매개 변수가 전달되면이 빈이 초기화되지 않고 관련 페이지가 표시되지 않습니다. 그것은 단지 이전 페이지에 남아 있습니다.

답변

2

그 일을하는 사람은 모하라가 아니며, 그렇게하고있는 것은 PrimeFaces입니다. <f:ajax><h:commandButton>를 호출 시도하고 당신은 버튼 만 원래에있는 형태의 뷰 상태를 갱신 것을 볼 수 있습니다.

당신은 PrimeFaces들에 issue를보고 할 수 있습니다 그들은 아약스 업데이트되지 중에하는 것이 method="get" 및/또는 <input type="hidden" name="formId" value="formId">이없는 모든 <form> 요소를 터치합니다.

고정 될 때까지 가장 좋은 방법은 일반 HTML 양식을 제출할 때 요소를 제거하는 것입니다.

<form onsubmit="form.removeChild(document.getElementById('javax.faces.ViewState'))"> 
+0

귀하의 답변을 주셔서 감사합니다,하지만 난 JSF 내 일반

요소 내에 hiddent ViewState에 입력을 삽입하는 것을 말해야한다. 저는 Mojarra 2.1.7을 사용하고 있습니다. – Mohsen

+0

새 콩을 만들길 원합니다. 새 bean이 검색을 처리하지만 ViewState가 bean 생성을 방해하는 것 같습니다. – Mohsen

+0

설명해 주셔서 감사합니다. 이것은 또한 나를 놀라게한다. 답변을 업데이트했습니다. – BalusC