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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top