[JAVA] Wenn eine Nachricht mit dem benutzerdefinierten Validator von JSF angezeigt wird, wird die errorClass von h: message nur angewendet, wenn SEVERITY_ERROR in der Nachricht festgelegt ist.

Umgebung OS : macOS Hight Sierra Version10.13.2 Eclipse : Version: Neon.3 Release (4.6.3) GlassFish : 4.1.2 JSF : 2.2 JDK : 1.8

Bitte geben Sie das Passwort auf diesem Bildschirm ein. ] Ich habe einen benutzerdefinierten Validator im Textfeld festgelegt.

Screen Shot 2017-12-26 at 23.03.17.png

inputPassword.xhtml


<Kürzung>
<h:head>
  <title>Eingabebildschirm</title>
  <h:outputStylesheet library="css" name="base.css"/>
</h:head>
<body>
<h:form>
  <h:outputLabel>Bitte geben Sie das Passwort ein.</h:outputLabel>
  <br />
  <h:inputSecret id="password" value="#{passwordBean.password}">
    <f:validateRequired />
    <f:validateLength minimum="3" maximum="10" />
    <f:validator validatorId="passwordValidator" />
  </h:inputSecret>
  <h:message for="password" errorClass="error" />
  <br />
  <h:outputLabel>Schon zur Bestätigung&nbsp;&nbsp;Bitte geben Sie es einmal ein.</h:outputLabel>
  <br />
  <h:inputSecret id="rePassword" value="#{passwordBean.kakuninPassword}">
    <f:validateRequired />
  </h:inputSecret>
  <h:message for="rePassword" errorClass="error" />
  <br />
  <h:commandButton value="Senden" action="#{passwordBean.onClickSend}" />
</h:form>
</body>
</html>

base.css


@CHARSET "UTF-8";
.error {
    color: red;
}

Wenn Sie SEVERITY_ERROR nicht festlegen, wird der errorClass-Stil nicht auf die Nachricht angewendet.

Screen Shot 2017-12-26 at 23.11.58.png

PasswordValidator.java


<Kürzung>
/**Benutzerdefinierter Validator für den Passworteingabebildschirm. */
@FacesValidator(value = "passwordValidator")
public class PasswordValidator implements Validator {
    private static final String KINSHI = "password";

    @Override
    public void validate(FacesContext context, UIComponent component, Object value)
            throws ValidatorException {
        String inputedValue = (String) value;
        if (inputedValue.equals(KINSHI)) {
            FacesMessage errorMessage = new FacesMessage(KINSHI + "Kann nicht verwendet werden.");
            throw new ValidatorException(errorMessage);
        }
    }
}

Wie mit dem Entwicklungstool des Browsers zu sehen


<label>Bitte geben Sie das Passwort ein.</label>
<br>
<input id="j_idt6:password" type="password" name="j_idt6:password" value="">
"Passwort kann nicht verwendet werden.
  "
<br>
<label>Schon zur Bestätigung&nbsp;&nbsp;Bitte geben Sie es einmal ein.</label>
<br>
<input id="j_idt6:rePassword" type="password" name="j_idt6:rePassword" value="">
<span class="error">Validierungsfehler:Benötigt einen Wert.</span>

Durch Festlegen von SEVERITY_ERROR wurde der errorClass-Stil angewendet.

Screen Shot 2017-12-26 at 23.19.55.png

PasswordValidator.java


<Kürzung:Andere sind die gleichen wie der obige Code>
            FacesMessage errorMessage = new FacesMessage(KINSHI + "Kann nicht verwendet werden.");
            errorMessage.setSeverity(FacesMessage.SEVERITY_ERROR);
            throw new ValidatorException(errorMessage);
<Kürzung:Andere sind die gleichen wie der obige Code>

Wie mit dem Entwicklungstool des Browsers zu sehen


<label>Bitte geben Sie das Passwort ein.</label>
<br>
<input id="j_idt6:password" type="password" name="j_idt6:password" value="">
<span class="error">Passwort kann nicht verwendet werden.</span>
<br>
<label>Schon zur Bestätigung&nbsp;&nbsp;Bitte geben Sie es einmal ein.</label>
<br>
<input id="j_idt6:rePassword" type="password" name="j_idt6:rePassword" value="">
<span class="error">Validierungsfehler:Benötigt einen Wert.</span>

Was hat mir geholfen ...

errorClass-Attribut: Gibt die CSS-Klasse für Fehlermeldungen an image.png

Recommended Posts

Wenn eine Nachricht mit dem benutzerdefinierten Validator von JSF angezeigt wird, wird die errorClass von h: message nur angewendet, wenn SEVERITY_ERROR in der Nachricht festgelegt ist.
Festlegen, wann in junit "Der Konstruktor Empty () ist nicht sichtbar" auftritt
Ursache ist nicht sichtbar, wenn Methoden anderer Klassen in Java aufgerufen werden
Wenn das Projekt nicht in Eclipse angezeigt wird
Zusammenfassung der Verwendung des im IE festgelegten Proxy-Sets bei der Verbindung mit Java
[Schienen] Was tun, wenn die Ansicht zusammenbricht, wenn eine Nachricht mit der Fehlermethode angezeigt wird?
Die Idee, abzuschalten, wenn der Fehler nicht behoben ist
[Schienen] Wenn die Layoutänderung des Geräts nicht berücksichtigt wird
Finden Sie mit Kotlin die Anzahl der Tage in einem Monat
[Spring Data JPA] Die benutzerdefinierte ID wird zum Zeitpunkt der Registrierung in einer eindeutigen Reihenfolge zugewiesen.
Trennen Sie eine Zeile von csv mit einem Komma halber Breite, das nicht in doppelte Anführungszeichen eingeschlossen ist
Was tun, wenn javax.el.ELException: Kein gültiger Methodenausdruck: wird angezeigt, wenn der JSF-Bildschirm angezeigt wird