h: i messaggi non fornisce alcuna uscita
-
03-10-2019 - |
Domanda
sto imparando sulla convalida di fagioli. Ho creato semplice form con campi nome utente e la password di ingresso che sono vincolati tramite il backup di fagioli al modello (Utente) proprietà username e password. Li ho segnato con l'annotazione:
@Id
@NotNull(message="Username cannot be empty")
private String username;
@NotNull(message="Password cannot be empty")
private String password;
Ora sulla pagina con quella forma ho messo dentro <h:messages/>
<h:form>...</h:form>
. Io presentare il modulo vuoto, sto reindirizzato alla stessa pagina (ho return null metodo d'azione nel backing bean), ma vengono visualizzati messaggi. Che cosa sto facendo di sbagliato?
Soluzione
Solution è invece di utilizzare @NotNull
, uso @Size
perché il campo di inserimento vuoto è in realtà stringa vuota e non null
.
Altri suggerimenti
Se si desidera ottenere @NotNull
al lavoro, è infatti necessario lasciare JSF impostare le stringhe vuote come null
. In JSF 2.0 è possibile farlo aggiungendo la seguente param contesto al web.xml
:
<context-param>
<param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
<param-value>true</param-value>
</context-param>
Non posso dire per esperienza che se farebbe scattare l'@NotNull
, ma in teoria dovrebbe. Fare un tentativo.