Primefaces - validações

2 respostas
felipef

Pessoal

O componente do primefaces DataTable - InCell Editing, é muito ruim na minha opnião, então resolvemos pegar uma DataTable - RadioCheckbox segue o ex abaixo que estamos utilizando

<p:dataTable id="multiCars" var="car" value="#{tableBean.mediumCarsModel}" paginator="true" rows="10"  
                 selection="#{tableBean.selectedCars}">  
  
        <f:facet name="header">  
            Checkbox Based Selection  
        </f:facet>  
  
        <p:column selectionMode="multiple" style="width:18px" />  
  
        <p:column headerText="Model">  
            #{car.model}  
        </p:column>  
  
        <p:column headerText="Year">  
            #{car.year}  
        </p:column>  
  
        <p:column headerText="Manufacturer" >  
            #{car.manufacturer}  
        </p:column>  
  
        <p:column headerText="Color">  
            #{car.color}  
        </p:column>  
  
        <f:facet name="footer">  
            <p:commandButton id="multiViewButton" value="View" icon="ui-icon-search"  
                             update=":form:displayMulti" oncomplete="multiCarDialog.show()"/>  
        </f:facet>  
    </p:dataTable>
Ao inves da column colocar apenas a descrição estamos colocando um
<p:inputText />

no caso a propriedade vinculada ao inputText possui a anotação @NotEmpty(é uma String)

Quando clicamos no botão salvar por ex, a validação é feita, ate ai ta perfeito

Agora criamos um novo botão para pegar quais os checkBoxes selecionados, agora se o input não está preenchido e clicamos nesse botão é clicado a validão é chamada, mas não queremos que a validação seja chamada

Como fazemos isso?

2 Respostas

angeliski

Você esta fazendo essa validação como? Requerid? direto no metodo do bean? um validator?

O que você pode fazer é colocar o atributo immediate=true no botão, mas ele pula TODAS validações (ele pula a “fase” de validação) então cuidado ao usar ele.
OU pode direcionar o update do botão usando forms diferentes.

felipef

angeliski:
Você esta fazendo essa validação como? Requerid? direto no metodo do bean? um validator?

O que você pode fazer é colocar o atributo immediate=true no botão, mas ele pula TODAS validações (ele pula a “fase” de validação) então cuidado ao usar ele.
OU pode direcionar o update do botão usando forms diferentes.

Opa, blza?

Seguinte, a validação é uma anotação no bean mesmo, e o validador é o validador do primefaces

Se eu utilizar o immediate=true, a propriedade selection da dataTable não populada, ai então nao consigo sabem quem foi clicado
E não iria funcionar com outro form, pois o problema é no input da dataTable mesmo, eu queria nesse caso, seria customizar o validador do primefaces, para nao validar, quando fosse clicado em determinado botão.

Criado 12 de novembro de 2012
Ultima resposta 13 de nov. de 2012
Respostas 2
Participantes 2