Benutzerdefinierte Validierung Nachricht für bean validation
Ich bin erstellen einer JSF-2-Anwendung und ich bin versucht zu verwenden, Formular-Validierung in der Bohne statt der Gesichter-Seite. Ich würde auch gerne eine .properties-Datei, die zum speichern der Nachrichten.
Schaute ich diese Frage aber ich glaube nicht, ich habe die properties Datei richtig eingestellt.
Sagen wir, ich habe ein bean namens " User in einem Paket namens 'dev':
@ManagedBean
@SessionScoped
public class User implements Serializable {
@Pattern(pattern=".+@.+\\.[a-z]+", message="{dev.User.emailAddress}")
private String emailAddress;
//getter/setter
}
Habe ich auch eine Datei erstellt 'ValidationMessages.Eigenschaften in WEB-INF/classes (ich verwende Netbeans 7.0.1)
In der ValidationMessages.properties-Datei habe ich dieses Schlüssel/Wert-Zeile:
dev.User.emailAddress=Custom invalid email message
Und meine Ansicht ("user.xhtml) sieht wie folgt aus:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>User registration</title>
</h:head>
<h:body>
<h:form>
<h:inputText id="emailAddress" value="#{user.emailAddress}" required="true" />
<h:message for="emailAddress" />
<h:commandButton value="Ok" action="null" />
</h:form>
</h:body>
Wenn ich geben Sie eine ungültige E-Mail und drücken Sie die Taste, die Validierungs-Nachricht in der web-Seite lautet:
{dev.User.emailAddress}
statt
Custom invalid email message
Könnte das problem sein, dass ich mich nicht registriert habe meine properties-Datei in web.xml?
Sollte ich wechseln required="true" " @NotNull in der bean zu. Gibt es irgendetwas, was ich mehr tun müssen, als einfügen:
<context-param>
<param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
<param-value>true</param-value>
</context-param>
erläutert in BalusC s blog?
Vielen Dank im Voraus!
/Dennis
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich verstehe, dass Sie haben es gerade in den Projekt
/WEB-INF/classes
Ordner selbst? Dies wird wahrscheinlich ignoriert/überschrieben, wenn Sie lassen Sie Ihren IDE, build - /deploy den KRIEG (zumindest gilt das für Eclipse). Du solltest dich lieber setzen, dass die Datei direkt in das Stammverzeichnis der Java-Quell-Ordner des Projekts. Sie können selbst überprüfen, ob es wirklich endete in/WEB-INF/classes
, nachdem Sie das Projekt exportieren, um eine war-Datei und extrahieren Sie es mit einigen ZIP-tool.Legte ich den .Eigenschaften Datei in den resources-Ordner und es funktionierte, es gab keine Notwendigkeit zu registrieren, die Datei irgendwo. Für das Protokoll: ich bin mit Netbeans 7.0.1 und Maven.
Danke für die Hilfe, BalusC!