Jusqu'à la dernière fois, j'ai créé un paramètre d'environnement pour exécuter JSF + CDI avec Tomcat et une application pour vérifier le fonctionnement.
Cette fois, je voudrais ajouter une fonction à ceci et lancer BeanValidation
.
Cliquez ici pour la dernière fois-> "Ca a marché! JSF + CDI (Préférences) avec Tomcat"
L'environnement est comme d'habitude:
La procédure de mise en œuvre est la suivante. Nous ajouterons des fonctions à la précédente application de vérification des opérations.
BeanValidation
.Utilisez «ExtVal» de «myfaces». Puisque cela se réfère à validation-api-1.0.0GA
, hibernate-validator
utilise le "4.3.2.Final légèrement plus ancien".
pom.xml
<dependency>
<groupId>org.apache.myfaces.extensions.validator.validation-modules</groupId>
<artifactId>myfaces-extval-bean-validation</artifactId>
<version>2.0.8</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.3.2.Final</version>
<scope>runtime</scope>
</dependency>
Nous ajouterons des fonctions à la précédente application de vérification des opérations.
Ajoutez les validateurs requis à votre login et mot de passe.
Tout d'abord, ajoutez une annotation (@ NotNull
) au Bean Index.
InexBean.java
public class IndexBean implements Serializable {
@NotNull
private String loginId;
@NotNull
private String password;
//Omis ci-dessous
}
Vient ensuite xhtml (extrait).
index.html
<body>
<h:messages escape="true" id="messages" showDetail="false" closable="true"/>
<h:form id="form">
<br/>
<h:inputText value="#{index.loginId}" label="Nom d'utilisateur" ph:placeholder="Username" /><br/>
<h:inputSecret value="#{index.password}" label="mot de passe" ph:placeholder="Password" /><br/>
<h:commandButton action="#{index.loginEvent()}" value="S'identifier" update="@form" />
</h:form>
</body>
Jusqu'à ce point, affichez l'écran et appuyez sur le bouton de connexion, ce sera comme suit.
C'est bien, mais j'aimerais rendre le message japonais. ValidationMessage_ja.properties
Créez des propriétés sous src / main / resources.
ValidationMessage_ja.properties
javax.faces.validator.BeanValidator.MESSAGE={0}
javax.validation.constraints.NotNull.message={1}Est obligatoire
Je ne vais pas expliquer en détail, mais la première ligne est le format d'affichage des messages utilisé lorsque JSF exécute la validation de bean. Un message est défini sur {0} et s'affiche à l'écran. La deuxième ligne est le message. La clé correspond à BeanValidation'NotNull`. Pour {1}, la valeur spécifiée par l'attribut label de xhtml est définie. Cette zone est contrôlée par JSF.
Ajoutez ce fichier à faces-config.xml
pour le rendre reconnu par JSF.
faces-config.xml
<application>
<message-bundle>ValidationMessages</message-bundle>
</application>
Après avoir implémenté ce qui précède, affichez l'écran et appuyez sur le bouton de connexion.
l'a fait ~!
c'est tout.
BeanVaidation est également bon avec bval-jsr.
Dans ce cas, placez javaee-api-8.0.4.jar sous tomcat / lib. Ajoutez-le à pom car il est nécessaire pour la compilation. (Cela ne fonctionne pas avec <scope> compile </ scope>
. Placez-le dans tomcat / lib.)
TomEE est meilleur si vous le faites jusqu'à présent.
pom.xml
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>8.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.bval</groupId>
<artifactId>bval-jsr</artifactId>
<version>2.0.5</version>
</dependency>