2013-08-05 2 views
0

대개 기본적으로 사용하지 않도록 설정된 컨트롤이있는 facelets 페이지가 있습니다. 이자형. 페이지가 클라이언트에 처음 렌더링 될 때 이가 EL 식에 의해 결정된다 : 페이지가 렌더링제출시 JSF 구성 요소 값이 모델링되지 않습니다.

disabled="#{referenceValue != requestbean.dependentControlValue}" id="notWorking" 

후 사용자가 requestbean.dependentControlValuereferenceValue 및 종속 제어 일부 자바를 통해 설정할 수 성분 "notWorking는"활성화.

그러나 양식을 제출할 때 값에 대한 설정자에 디버그 로그 메시지를 추가하여 notWorking의 값이 업데이트 된 것으로 업데이트되지 않습니다. firefox로 검사 할 때 notWorking 값이 요청에 설정되어 있음을 알 수 있습니다.

질문 : 내가 뭘 잘못하고 있니?

By 덧붙여서 :
HTML 규격에 따르면, 사용 중지 된 컨트롤은 StackOverflow에 대한 연구 덕분에 성공할 수 없다는 것을 알고 있습니다.

또한, 나는 disabledrendered 표현이 모델 값을 업데이트하기 전에 간주됩니다, this post 알고,하지만 난 장애인 표현 양식을 제출시 false로 평가한다고 생각합니다.

답변

2

내가 뭘 잘못하고 있니?

JSF 대신 JavaScript를 사용하여 입력을 다시 활성화하십시오.

은/변조 해킹 된 HTTP 요청에 대한 JSF의 내장 보호의 일환으로 disabled 속성 (renderedreadonly 속성을 같은) 형태로 제출 처리 중에 재 - 평가입니다. 값이 전혀 처리되지 않아야한다고 평가하는 경우 (예 : 및 rendered=false) 제출 된 값은 적용, 변환 및 유효성 검사가 수행되지 않으며 모델이 업데이트되지 않으며 모델이 업데이트되지 않습니다.

JavaScript 대신 JSF를 사용하여 입력을 다시 활성화하거나 disabled 속성의 조건을 disabled 속성이 false으로 평가되도록 양식을 다시 작성하여 양식 제출을 처리하는 것입니다.

+0

감사합니다. @BalusC, 특히 대답을 정확하게 내 질문에 대답합니다. 그래서, jsf 2 사용하여, 나는 단순히 'notWorking' 구성 요소를 다시 렌더링 종속 컨트롤에서 트리거 된 부분 요청을 사용할 수 있습니다. 어떻게 솔루션을 구현할 수 j sf1.2? – omilke