Validierung mit Java Server Faces

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hallo,

Folgendes Problem:

Die Fehlernachricht wird nicht korrekt angezeigt

Anmerkung:
Debug zeigt das "validateUserName" aufgerufen wird. Bei "Test" wird auch NICHT auf die naechste Seite gegangen.

Wenn das Tag <h:messages> drin ist sieht man das dort eine "leere Zeile" angezeigt wird!

Also was ist an dem Zusammenbau der Nachricht falsch oder an den Message Tags etc.


2. Problem:

Wenn required =false ist, wird bei JSF bei einem "Null" Value KEINE Validierung durchgefuerht. Kann man irgendwo einstellen, dass auch dann validiert wird ? Waere fuer mich sehr sehr wichtig !!!

Anmerkung:

Wenn Ihr keinen Fehler entdecken teilt mir das bitte auch mit, dann schau ich mir mal die anderen Technologien an...


Danke im vorraus fuer eure Muehe...

Verwendete Technik:

JSF 1.2 + Spring + Spring Web Flow

Der Code

JSP:

Code:
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<html>
<head>
    <title>Benutzerverwaltung</title>
</head>

<body>
<f:view>    

    <h:form id="inputForm">

    <h:messages layout="table" showDetail="true" style="color: red;" />

    <h:outputText value="UserName:"/><h:message for="userName"/><h:inputText id="userName" value="#{user.userName}" validator="#{user.validateUserName}"/>
       
        <h:commandButton action="commit" value="OK"/>
    </h:form>
</f:view>
</body>
</html>

Die Variable User:
Code:
import javax.faces.context.FacesContext;
import javax.faces.component.UIComponent;
import javax.faces.validator.ValidatorException;
import javax.faces.application.FacesMessage;

public class UserViewImpl implements UserView {

    private Long _identifier;
    private String _userName;

    public UserViewImpl() {
        this(null, "");
    }

    public UserViewImpl(Long identifier, String userName) {
        _identifier = identifier;
        _userName = userName;
    }

    public Long getIdentifier() {
        return _identifier;
    }

    public String getUserName() {
        return _userName;
    }

    public void setUserName(String userName) {
        _userName = userName;
    }

    public void validateUserName(FacesContext facesContext, UIComponent componentToValidate, Object valueObject) {
        String value = (String) valueObject;
        if (value.equals("Test")) {
            FacesMessage facesMessage = new FacesMessage("Fehler bei userName");
            throw new ValidatorException(facesMessage);
        } 
    }
}
 
M

maki

Gast
Deinem ersten Problem würde ich versuchen mit FacesTrace (googeln) auf die Spur zu kommen.

Dein zweites Problem verstehe ich nicht...
Wenn required =false ist, wird bei JSF bei einem "Null" Value KEINE Validierung durchgefuerht. Kann man irgendwo einstellen, dass auch dann validiert wird ? Waere fuer mich sehr sehr wichtig !!!
Was sollte denn dann validiert werden?
Null?
 
G

Gast (Thread Starter

Gast
Was sollte denn dann validiert werden?
Null?

Genau das :wink:

Die Jsp soll fuer verschiedene Anwendungen eingesetzt werden. Problem bei einigen ist z.B. ein Geburtsdatum ein Pflichtfeld bei anderen nicht.

Dieses moechten wir NICHT direkt in die JSP schreiben muessen z.B. mit
Code:
if (...) Then ZeigeRequiredfeld else zeigeNichtRequiredFeld
.

Der aus UNSERER Sicht bessere Weg ist die Benutzung der Spring Config, um die fuer den Kunden jeweils benoetigten Validator konfiguerien zu koennen.

Des wegen ist die "Bevormundung" bei null Ausdruecken nicht zu validieren fuer uns nicht nachvollziehbar und eine unnoetige Einschraenkung durch JSF...


Bzgl. FacesTrace:

Danke fuer den Hinweis werde das gleich mal ausprobieren...
 
M

maki

Gast
Du kannst EL Expressions einsetzen, um denn wert von required zu setzen ;)
 

klaus1

Aktives Mitglied
Frage:

Ich würde gerne einen Validator verwenden direkt bei den input tags innerhalb der Form.
Nun kann ich bei Value ja direkt ein Property der BackingBean angeben. ich möchte jedoch gleich die input tags, die die Setter auswerten validieren.
Meine Frage: Was muss ich bei values angeben, um dann wirklich schon alle inputs die validiert werden sollen, zu erhalten?
Hätte einen hidden input tag geschrieben um die validate methode aufzurufen.
Die Reihenfolge spielt leider keine Rolle, da ich dachte zuerst werden die input tags abearbeitet, danach mein zuletzt angegebener hidden input, um gleich die properties zu überprüfen, die gesetzt wurden...
Klappt leider nicht so wie ich mir das dachte.
Jemand eine Idee?
danke,
Klaus
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S JSF JSF2 Validierung Sicherheit Web Tier 6
S [JSF] CommandButton/Link ohne Validierung Web Tier 3
M [JSF] Input-highlighting bei fehlgeschlagener Validierung Web Tier 4
S JSF Validierung unter Einbeziehung mehrerer Eingabefelder/Eingabeelemente Web Tier 1
M a4j:support mit 2 selectOneMenus klappt nicht - Validierung Web Tier 3
A Einfaches Filter-Servlet für Benutzer-Validierung Web Tier 3
F RichFaces: JSF-Lifecycle / Validierung Web Tier 2
H JSF-DebugOption Validierung? Web Tier 3
U Problem bei Validierung mit Struts 2 Web Tier 1
G JSF Validierung eigene Meldungen Web Tier 4
S Struts: Validierung mit mask Web Tier 2
LimDul Komplexe Generierung von Java-Klassen aus WSDL Web Tier 1
E Java Servlet doPost request, Mehrere Parameter mit demselben Namen aus Tabellenzeilen Web Tier 2
platofan23 Java Login Überprüfung ohne Srciptlets in der JSP Web Tier 4
Dimax JSP Progress Bar in JSP nur mit Java Web Tier 4
S Einträge aus Datenbank einzeln darstellen (JSP, JAVA, HTML) Web Tier 9
R JavaScript für Java Enterprise Entwickler Web Tier 1
O JSF Java Unsigned Applet PrivilegedActionException Problem Web Tier 2
S JSP Hm... Vorlage für Java Basierende Webseite? Web Tier 0
S Button klick soll Java methode aufrufen Web Tier 2
R Tomcat - java.lang.OutOfMemoryError: PermGen space Web Tier 0
F JSP jSP Datei mit normalem Java Programm auslesen? Web Tier 5
T Spark Java Web Framework Web Tier 0
G Probleme mit Java + Tomcat | Cannot switch on a value of type String for source level below 1.7 Web Tier 8
S java.lang.ExceptionInInitializerError: Wieso??? Web Tier 3
N JSP Free Webhoster Java Backend? PHP? Web Tier 1
D Java EE Servlet login Problem Web Tier 1
L Servlet Java Entschlüsselungsprogramm in Webapplikation einbinden Web Tier 0
Streeber java.lang.NoClassDefFoundError: org/sqlite/NativeDB Web Tier 0
M GWT - Externe Java Libs auf Server Seite - zB. JDBC Web Tier 6
S Java Bean und Java Servlet Web Tier 2
L java.io.NotSerializableException für domain Objekte - Design Problem? Web Tier 12
H MVC in Java pur / Controller als Instanz? / Theorie! Web Tier 4
T Einsteigerfragen zu Servlets/Webprogrammierung mit Java Web Tier 11
J Übergabe von Parameter aus JSP an Java Web Tier 2
nrg Java-Code in Taglib wird nicht richtig ausgeführt. Web Tier 7
D JSF Überprüfen der Session ID in JSF und JAVA Web Tier 9
H JSP, Eclipse, Tomcat - Java Klasse wird nicht gefunden Web Tier 8
B JSF Mojarra 2.1.5: java.lang.IllegalStateException: Cannot create a session after the response has been Web Tier 7
A Parameterübergabe an Servlet und Aufruf von Servlets per Java Code Web Tier 7
J JSF Java Beans Konventionen Web Tier 2
P Blog in Java/JSP Web Tier 5
S Per JavaScript Java ansteuern - Welche Technik? Web Tier 2
T Seam-Komponenten oder Java Bean soll direkt nach Appserver-Start "leben" Web Tier 4
B Thread start bei Java Web Anwendung Web Tier 6
M Suche Java Framework Web Tier 2
B Tomcat 6 ergibt Fehler - java.net.SocketException Web Tier 2
G Probleme mit EclipseLink und Java.util.Date Web Tier 3
ruutaiokwu js kalendar, der mit java.text.SimpleDateFormat kombatibel ist... Web Tier 4
B Java EE 6 Problem (EL) Web Tier 4
F Migration eines CMS von PHP nach JAVA Web Tier 3
R GWT 2.1.1 mit Java 1.6 statt 1.5 Web Tier 8
W JSP - Attribut-Werte aus JAVA-Klasse ? Web Tier 8
T Werte aus java Klasse in jsp nutzen Web Tier 5
N java.lang.NoClassDefFoundError: org/jdom/JDOMException Web Tier 3
M JSP Ausgabe von Java-Objekten Web Tier 7
D JSP, Java Applets einbinden Web Tier 2
LadyMilka java.lang.NumberFormatException: For input string: ... Web Tier 5
H Probleme beim Aufrufen von Java- oder Servlet-Methoden aus Javascript Web Tier 2
K Bilder in Java-Webapplikationen Web Tier 12
S Java Servlet Content Type Web Tier 3
K Analye einer Seite (Java, JSP, ...) Web Tier 12
J rich:modalpanel vom java-code aus öffnen und schliessen Web Tier 2
S Expression Language in Java Web Tier 13
A Ssh connection mit java jsch? Web Tier 2
W Java code aus JSP-File durch JSTL code ersetzen Web Tier 8
M Body onUnload Java Methode aufrufen Web Tier 13
F Frage zu Java Beans Web Tier 17
M Java Framework für größere Projekte verwenden Web Tier 5
U access denied bei Datei Schreiben mit Java unter Linux trotz gesetzter Rechte Web Tier 2
P Java-Program -> Web Programm Web Tier 6
F Java Applets in html einbinden Web Tier 10
A SSL-Zertifikat in Java-Webanwendungen laden Web Tier 4
ruutaiokwu Wert hinter JSP-Tag nach Java-String in Skriptlet Web Tier 4
N java bean in eclipse Web Tier 6
S Java Code in JSF Web Tier 10
N Servlet und java.lang.NoClassDefFoundError Web Tier 4
D request.contextPath in Java-Klasse ausführen Web Tier 5
T In einem Struts Tag Werte mit Java einfügen Web Tier 2
G [JAVA / JSP] ArrayList in JSTL foreach verarbeiten Web Tier 4
G CSV-Anbindung an Java Web Tier 2
G Java Server Face Performancelastig? Web Tier 2
H Java Servlet und HTML Form Web Tier 3
U Java Application auf Tomcat Web Tier 5
I JSF JSF, Tomcat, Server Faces und maven Web Tier 3
J JSP Web Applikation auf virtuellem Tomcat Server Web Tier 1
R The Flying Saucer auf dem Server. Web Tier 3
F Comparator: unterschieliches Ergebnis auf dem Localhost und Server Web Tier 5
G PrimeFace Generator(en) Business-Server und Customer Server Web Tier 5
K JSF websphere application server 8 tomahawk problem Unable to find resource Web Tier 3
S beste Preis/Leistung für Server Web Tier 3
M Web/Application Server + SSO,SPOA,etc Web Tier 2
G mit Ajax ein Image vom Server holen Web Tier 2
K [GWT] Relative Pfade auf dem Server Web Tier 18
C Webspace bzw. Server für GWT Web Tier 5
J Tomcat-Server mit JSF auf Eclipse einrichten Web Tier 7
J Browser-Client von Server aus ansprechen Web Tier 7
E GWT Server-Client Problem Web Tier 3
T Aufruf von Visual Server Pages Web Tier 3
R Wo Daten manipulieren? Client oder Server? Web Tier 3

Ähnliche Java Themen

Neue Themen


Oben