2013-05-11 4 views
0

내 페이지에는 구성 요소가 managedBean의 값을 가져 오는 양식이 있습니다. 다음, THER 페이지에서이 버튼이다액션이있는 commandButton에 AJAX 요청을 보냅니다.

이 버튼은 무엇
<p:commandButton value="Search" action="#{mbProduct.selectBrand}" ajax="false" immediate="true" /> 

, 난을 클릭하면, 그것은 브랜드 페이지로 사용자를 리디렉션은, 그래서 그는 제품의 브랜드를 선택하고 상품 페이지로 돌아갈 수 있습니다 (사용자가 버튼을 클릭했을 때와 정확히 같은 방식). 문제는 양식에서 inputTexts의 값을 변경하고 immediatly "Search"버튼을 클릭하면 inputText의 값이 managedBean으로 보내지지 않는다는 것입니다. 사용자 앞에 ajax 요청이 없기 때문입니다. 검색 버튼을 클릭합니다. 어떻게하면이 동작을 피하고 버튼이 액션을 호출하기 전에 필드 값을 설정할 수 있습니까?

--- EDIT --- Alexandre가 제안했듯이, 즉 시동 = "true"를 버튼에서 제거했지만 이제 유효성 검사 오류가 발생합니다. 그것은이 분야에서의 특정 유효성 검사 :

<p:selectOneMenu value="#{myMb.selectedItem}"> 
<f:selectItems value="#{myMb.itemsList}" /> 
</p:selectOneMenu> 

itemsList은 유유히 myMb 생성자에서 초기화 및 유효성 검사 오류는 사용자가 selectedValue을 변경하지 않은 경우에만 발생합니다. 이 값을 변경하면 유효성 검사 오류가 발생하지 않습니다.

+0

정확한 검증 오류 란 무엇입니까? 로그가 더 많은 정보를 제공합니까? –

답변

0

immediate="true"을 제거해야 작업 전에 입력이 적용됩니다.

자세한 정보 : http://balusc.blogspot.ca/2006/09/debug-jsf-lifecycle.html#WhenShouldIUseTheImmediateAttribute

+0

작동하지만 구성 요소의 유효성을 검사하는 중입니다 ... 구성 요소에서 유효성 검사를 피할 수있는 방법이 있지만 올바른 값을 가진 구성 요소의 값을 적용하는 것과 같은 방법으로 시도합니까? –

+0

유효성을 검사하지 않으려는 모든 입력에 를 시도 할 수 있습니다. –

+0

나는 이것을 이해하기 시작했다고 생각합니다 ... 하지만이 코드는 작동하지 않습니다. 이 입력란의 구체적인 유효성 검사 :

itemsList는 myMb 생성자에서 느리게 초기화되며 사용자가 selectedValue를 변경하지 않은 경우에만 유효성 검사 오류가 발생합니다. 이 값을 변경하면 유효성 검사 오류가 발생하지 않습니다. –

관련 문제