rich: tabPanel и проблемы, когда поле обязательное для заполнения = "true" - PullRequest
1 голос
/ 25 марта 2010

Рассмотрим следующий упрощенный пример:

У нас есть 2 вкладки с <rich:tabPanel switchType="ajax">, каждая вкладка имеет <h:inputText value="" required="true" />, и в данный момент мы хотим переключиться с одной вкладки на другую, а 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>

1 Ответ

1 голос
/ 26 марта 2010

Вы должны добавить атрибут «немедленный» в tabPanel. Цитировать документы это означает, что tabPanel:

"... значение компонента должно быть преобразовано и подтверждено немедленно (то есть во время Фаза «Применить значения запроса», скорее чем ждать, пока процесс Этап валидации "

Например:

<rich:tabPanel switchType="ajax" immediate="true">
...