[JAVA] gerührt! JSF + CDI in der Tomcat- und Bean-Validierung

Einführung

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:

Implementierung

Das Implementierungsverfahren ist wie folgt. Wir werden der vorherigen Anwendung zur Funktionsprüfung Funktionen hinzufügen.

Maven-Einstellungen

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>

Anmerkung hinzufügen

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>

Komplett

Zeigen Sie nach der Implementierung des obigen Bildschirms den Bildschirm an und drücken Sie die Anmeldetaste. サンプルアプリ

tat es ~!

das ist alles.

Weitere Hinweise

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>

Referenz

MyFaces ExtVal

Recommended Posts

gerührt! JSF + CDI in der Tomcat- und Bean-Validierung
gerührt! JSF + CDI (Einstellungen) mit Tomcat
Ändern Sie die JDK- und Tomcat-Versionen unter CentOS
JSP auf Tomcat
Apache und Tomcat