1

2 つの imputText が必要であると思います。メールが重要な場合、携帯電話は不要であり、その逆も同様です。どのようにできるのか?

ありがとう。

                <h:inputText required="true" id="usEmail" size="20"
                    value="#{rwUser.usEmail}" />

                <h:message for="usEmail" style="color:red" />


                    <h:outputText value="#{msg.mobilephone}" styleClass="textMessage" />

                <h:inputText id="usMobilephone" size="20"
                    value="#{rwUser.usMobilephone}" />

                <h:message for="usMobilephone" style="color:red" />
4

3 に答える 3

8

いくつかの方法。

  • コンポーネントをビューにバインドしUIInput、最初の必須属性で 2 番目の送信された値を確認し、2 番目の必須属性で最初の値を確認します (つまり、コンポーネントは、見る)。

    <h:inputText binding="#{usEmail}" ... required="#{empty usMobilePhone.submittedValue}" />    
    <h:inputText binding="#{usMobilePhone}" ... required="#{empty usEmail.value}" />
    
  • リクエスト パラメータ マップに送信された値が存在することを確認します。

    <h:inputText binding="#{usEmail}" ... required="#{empty param[usMobilePhone.clientId]}" />    
    <h:inputText binding="#{usMobilePhone}" ... required="#{empty param[usEmail.clientId]}" />
    

    またはハードコードされたクライアント ID を使用:

    <h:form id="form">
        <h:inputText id="usEmail" ... required="#{empty param['form:usMobilePhone']}" />    
        <h:inputText id="usMobilePhone" ... required="#{empty param['form:usEmail']}" />
    
  • OmniFaces を使用します<o:validateOneOrMore>

    <h:inputText id="usEmail" ... />    
    <h:inputText id="usMobilePhone" ... />
    <o:validateOneOrMore components="usEmail usMobilePhone" showMessageFor="@all" />
    
于 2012-05-30T13:53:23.040 に答える
1

<o:validateOneOrMore>OmniFaces の が必要だと思います。ショーケースもご覧ください<o:validateOneOrMore>

于 2012-05-30T12:30:48.987 に答える
1

bindingあるコンポーネントから別のコンポーネントへの参照を取得するために使用することもできます:

<h:inputText required="true" id="usEmail" binding="usEmail" 
    size="20" value="#{rwUser.usEmail}" required="#{empty usMobilePhone.value}" />    

<h:inputText id="usMobilephone" size="20" value="#{rwUser.usMobilephone}" 
    binding="usMobilePhone" required="#{empty usEmail.value}"/>

マネージド Bean 値ではなく、inputText に対応するオブジェクト をusEmail.value参照することに注意してください。UIComponent

それが機能しない場合は、JSF ライフサイクルのために置き換える必要がある場合があります -value検証が成功するまで設定されず 、フォーム送信で実際に投稿されたものです。submittedValueUIComponent.valuesubmittedValue

于 2012-05-30T13:24:21.993 に答える