1

次の簡単な例を考えてみましょう。

2つのタブがあり<rich:tabPanel switchType="ajax">、各タブには<h:inputText value="" required="true" />あり、現時点では1つのタブから別のタブに切り替えたいので、inputTextは空です(とにかく値を送信したくないので、別のタブに移動します)。得る"Validation Error: Value is required."

サンプルコード:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich"
 >
        <a4j:form id="mainForm"
            reRender="mainForm"
            ajaxSubmit="true">

            <rich:tabPanel switchType="ajax">
                <rich:tab label="TabA" >
                    <a4j:region>
                        <h:outputText value="Tab A content" />
                        <h:inputText value="" required="true" />
                    </a4j:region>
                </rich:tab>
                <rich:tab label="TabB">
                    <a4j:region>
                        <h:outputText value="Tab B content" />
                        <h:inputText value="" required="true" />
                    </a4j:region>
                </rich:tab>
            </rich:tabPanel>
            <rich:messages />
        </a4j:form>
 </html>
4

1 に答える 1

1

tabPanel に "immediate" 属性を追加する必要があります。ドキュメントを引用すると、これは tabPanel が次のことを意味します。

「...コンポーネント値は、プロセス検証フェーズまで待つのではなく、すぐに (つまり、要求値の適用フェーズ中に) 変換して検証する必要があります」

例えば:

<rich:tabPanel switchType="ajax" immediate="true">
于 2010-03-25T22:18:05.950 に答える