2011-02-16 4 views
0

응용 프로그램에서 iceface를 사용하고 있습니다. 페이지에 두 개의 입력 필드가있는 양식이 있습니다. 필드는 (다른 구성 요소에 대한 오류)다른 모든 구성 요소에 오류가없는 경우에만 JSF 명령 단추를 사용하십시오.

그것을 할 수 있는가 유효하지 않은 경우에만

내가있는 명령을 사용 하시겠습니까?

, 나는이 일 날짜가 오류가 큐에 넣어하지 마십시오 (유효한 경우에만있는 명령을 제출 활성화하려면 위의 코드에서 예제 코드

<ice:form> 
<ice:panelGrid columns="2"> 
    <ice:outputLabel>Enter Date</ice:outputLabel> 
     <ice:panelGroup> 
      <ice:selectInputDate renderAsPopup="true" id="InputDate" value="#{Bean.FormDate}" partialSubmit="true" ></ice:selectInputDate> 
       <ice:message for="InputDate" /> 
     </ice:panelGroup> 

    <ice:outputLabel>Days</ice:outputLabel> 
     <ice:panelGroup> 
      <ice:inputText value="#{Bean.days}"partialSubmit="true" id="inputDays"> 
       <f:validateLongRange minimum="1" maximum="10"/> 
      </ice:inputText> 
       <ice:message for="inputDays"/> 
      </ice:panelGroup> 

    <ice:commandButton value="Submit" action="#{Bean.SomeAction}"></ice:commandButton> 
</ice:panelGrid> 

.

답변

1

jsf 2.0을 사용하는 경우 다음과 같이 할 수 있습니다.

<ice:form> 
     <ice:panelGrid columns="2"> 
      <ice:outputLabel>Enter Date</ice:outputLabel> 
      <ice:panelGroup> 
       <ice:selectInputDate renderAsPopup="true" id="InputDate" 
        value="#{Bean.FormDate}" partialSubmit="true" 
        binding="#{inputDateComponent}"> 
        <f:ajax execute="@this" render="submit inputDateMessage" /> 
       </ice:selectInputDate> 
       <ice:message id="inputDateMessage" for="InputDate" /> 
      </ice:panelGroup> 

      <ice:outputLabel>Days</ice:outputLabel> 
      <ice:panelGroup> 
       <ice:inputText value="#{Bean.days}" partialSubmit="true" 
        id="inputDays" binding="#{inputDaysComponent}"> 
        <f:validateLongRange minimum="1" maximum="10" /> 
        <f:ajax execute="@this" render="submit inputDaysMessage" /> 
       </ice:inputText> 
       <ice:message id="inputDaysMessage" for="inputDays" /> 
      </ice:panelGroup> 

      <ice:commandButton id="submit" value="Submit" 
       action="#{Bean.SomeAction}" 
       disabled="#{!inputDateComponent.valid}" /> 
     </ice:panelGrid> 
    </ice:form> 

I 피난처 이 구체적인 예를 테스트하지 않았지만 내가 어디로 갈지 알 수 있습니다. 입력 필드는 변경시 평가되고 유효성 검증 오류를 표시하거나 commandButton이 사용 불가능하지 않은 조건을 작성합니다.

입력 필드가 유효 할 때만 버튼을 표시하려면 rendered = 및 make positive assertions를 사용할 수도 있습니다. 여기에 설명 된대로 위상 수신기를 사용할 수

+0

어디로 갈지 알고 있지만 IceFaces가 이미 아약스 지원을 내장하고 있다는 것을 알고 있습니까? – BalusC

+0

전 빙상을 사용한 적이 없습니다. f : 아약스는 얼음 표면 아약스가 대체되어 교체 될 수 있습니다. 단지 개념을 설명하고 싶었습니다. –

+0

예. 이 대답은 이미 내 표를 얻었다 :) – BalusC

0

:이 예에서 위상 수신기가 연결된 메시지가 클라이언트 ID를 가진 문자열을 구축

http://balusc.blogspot.com/2007/12/set-focus-in-jsf.html

. 빈에서이 문자열을 검사하고 메시지가있는 ID가 있는지 여부에 따라 빈 특성을 작성하십시오.

그런 다음 bean 등록 정보에 따라 명령 단추를 사용할 수 있습니다.

+0

나는 phaselistener보다 쉬운 방법이 있어야한다고 생각한다. 적어도 평범한 JSF2에서는 이론상 phaselistener가 필요하지 않을 것입니다. – BalusC

0

각 입력 필드를 'immediate = "true"'로 전환하고 입력란에 유효성 검사기를 추가하십시오.

부울 값을 설정/해제하여 필드에 유효한 데이터가 포함되어 있는지 확인하고 sparrowhawk이 제안한대로 수행 할지를 결정하고 제출 버튼의 표현식에서이 부울 값을 테스트합니다.

관련 문제