Bis zum letzten Mal habe ich eine Umgebungseinstellung zum Ausführen von JSF + CDI mit Tomcat und eine Anwendung zum Überprüfen des Vorgangs erstellt.
Dieses Mal möchte ich eine Funktion hinzufügen und BeanValidation
ausführen.
Klicken Sie hier zum letzten Mal-> "Es hat funktioniert! JSF + CDI (Einstellungen) mit Tomcat"
Die Umgebung ist wie gewohnt:
Das Implementierungsverfahren ist wie folgt. Wir werden der vorherigen Anwendung zur Funktionsprüfung Funktionen hinzufügen.
Verwenden Sie "ExtVal" von "myfaces". Da dies auf "validation-api-1.0.0GA" verweist, verwendet "hibernate-validator" das "etwas ältere 4.3.2.Final".
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>
Wir werden der vorherigen Anwendung zur Funktionsprüfung Funktionen hinzufügen.
Fügen Sie Ihrem Login und Passwort die erforderlichen Validatoren hinzu.
Fügen Sie der Index Bean zunächst eine Anmerkung (@ NotNull
) hinzu.
InexBean.java
public class IndexBean implements Serializable {
@NotNull
private String loginId;
@NotNull
private String password;
//Unten weggelassen
}
Als nächstes kommt xhtml (Auszug).
index.html
<body>
<h:messages escape="true" id="messages" showDetail="false" closable="true"/>
<h:form id="form">
<br/>
<h:inputText value="#{index.loginId}" label="Nutzername" ph:placeholder="Username" /><br/>
<h:inputSecret value="#{index.password}" label="Passwort" ph:placeholder="Password" /><br/>
<h:commandButton action="#{index.loginEvent()}" value="Einloggen" update="@form" />
</h:form>
</body>
Zeigen Sie bis zu diesem Punkt den Bildschirm an und drücken Sie die Anmeldetaste. Dies ist wie folgt.
Das ist in Ordnung, aber ich möchte die Nachricht japanisch machen. ValidationMessage_ja.properties
Erstellen Sie Eigenschaften unter src / main / resources.
ValidationMessage_ja.properties
javax.faces.validator.BeanValidator.MESSAGE={0}
javax.validation.constraints.NotNull.message={1}Ist obligatorisch
Ich werde nicht im Detail erklären, aber die erste Zeile ist das Anzeigeformat der Nachricht, die verwendet wird, wenn JSF die Bean-Validierung ausführt. Eine Meldung wird auf {0} gesetzt und auf dem Bildschirm angezeigt. Die zweite Zeile ist die Nachricht. Der Schlüssel entspricht BeanValidation'NotNull`. Für {1} wird der durch das label-Attribut von xhtml angegebene Wert festgelegt. Dieser Bereich wird von JSF kontrolliert.
Fügen Sie diese Datei zu aces-config.xml
hinzu, damit sie von JSF erkannt wird.
faces-config.xml
<application>
<message-bundle>ValidationMessages</message-bundle>
</application>
Zeigen Sie nach der Implementierung des obigen Bildschirms den Bildschirm an und drücken Sie die Anmeldetaste.
tat es ~!
das ist alles.
BeanVaidation ist auch gut mit bval-jsr.
In diesem Fall platzieren Sie javaee-api-8.0.4.jar unter tomcat / lib. Fügen Sie es zu pom hinzu, da es für die Kompilierung benötigt wird. (Es funktioniert nicht mit <scope> compile </ scope>
. Platzieren Sie es in tomcat / lib.)
TomEE ist besser, wenn Sie dies bisher tun.
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>