Come rendere un pulsante che può saltare la convalida richiesta Web (ma comunque voglio elaborare tutti i dati, così immediato e così via non può essere vero).Universalmente ignorare i parametri di convalida sugli ingressi richiesti
È importante che sia universale. Al momento sto usando in ogni condizione di campo richiesta con qualche parametro di richiesta. Esempio di codice sotto
<p:inputText value="#{cc.attrs.data.exampleData1}"
required="#{param['onlySave'] == null}"/>
<p:inputText value="#{cc.attrs.data.exampleData2}"
required="#{param['onlySave'] == null}"/>
<p:inputText value="#{cc.attrs.data.exampleData3}"
required="#{param['onlySave'] == null}"/>
<p:commandButton value="Zapisz zmiany"
action="#{cc.attrs.controller.save()}"
update="@form">
<f:param name="onlySave" value="true"/>
</p:commandButton>
Questa soluzione va bene perchè posso in ogni pagina solo aggiungere questo parametro al pulsante e si salta la convalida, ma quando il mio pulsante di salvataggio non fare alcun redirect, in caso di mancato qualche convalida java a SAVE metodo, sto semplicemente aggiungendo un messaggio senza reindirizzamento e poi ho perso tutti gli stili richiesti dagli input.
Esiste la possibilità di impostare il parametro onlySave
su null
nel metodo di salvataggio quando la convalida non è riuscita o forse alcune soluzioni migliori?
Edit: Balus rispondere grande, ma con la convalida di fagioli come:
@Pattern(regexp = "^([^0-9]*)$", message = "only non numbers")
String field;
Elabora a fagiolo tutti i dati al di là di quel campo. La migliore proprietà del campo sarebbe ignore solo necessaria, non convalida ecc
Edit2:
<tr>
<td class="label">
<p:outputLabel id="label" for="#{cc.attrs.componentId}" value="#{cc.attrs.label}"/>
</td>
<td class="value">
<cc:insertChildren/> --here component with componentId
</td>
</tr>
<tr class="errorMessage">
<td class="label"/>
<td class="value">
<p:message id="error" for="#{cc.attrs.componentId}" />
</td>
</tr>
vostro requisito funzionale concreto è po 'difficile da digerire, ma credo che siete in cerca di http: //showcase.omnifaces. org/taghandlers/ignoreValidationFailed È vero? – BalusC
wow, è quasi perfetto, solo un problema. Quando sto usando questo tag e scrivo in un campo per esempio numeri in bean non numerico: @Pattern (regexp = "^ ([^ 0-9] *) $", message = "numbers !!") non processa dati come si è supposto essere. Ma ogni altro campo viene elaborato. Non mi ha nemmeno dato alcuna informazione. – user2771738
Quindi, il tuo concreto requisito funzionale è quello di impostare un attributo comune su tutti i componenti del tipo dato da un singolo luogo? Forse hai bisogno di http://showcase.omnifaces.org/taghandlers/massAttribute? – BalusC