Meine Formularvalidierung funktioniert gut, aber die Nachrichten verwenden den JSF-Komponentennamen und nicht die Feldbezeichnung. Zum Beispiel habe ich ein Feld Betreff und die Fehlermeldung, die ich bekomme, wenn es leer ist, ist etwas in den folgenden Zeilen:Seam Richfaces Formularvalidierung
UIComponent: contactBean.firstName darf nicht leer sein.
Meine Form:
<div class="field">
<s:decorate id="firstNameDecorate" template="edit.xhtml">
<ui:define name="label">#{messages['user.firstName']}</ui:define>
<h:inputText id="firstName" required="true" value="#{contactBean.firstName}">
<a:support event="onblur" reRender="firstNameDecorate"/>
</h:inputText>
</s:decorate>
Meine bearbeiten Vorlage:
<div class="entry">
<s:label styleClass="label #{invalid?'errors':''}">
<ui:insert name="label"/>
<s:span styleClass="required" rendered="#{required}">*</s:span>
</s:label>
<span class="input #{invalid?'errors':''}">
<s:validateAll>
<ui:insert/>
</s:validateAll>
</span>
<s:message styleClass="error errors"/>
</div>
Die Validierung funktioniert genauso wie ich will, die Fehlermeldungen konfigurierbar sind (zumindest den Wert auf der rechten Seite des verwendeten Labels), und die Validatoren sind so einfach zu konfigurieren, wie sie einfach sind Anmerkungen zu den Feldern der ContactBean-Klasse.
Ich möchte nur um es vertilgen und die richtigen Werte erhalten dort angezeigt zum Beispiel:
Vorname darf nicht leer sein.
Der letzte Teil ist der Ajax, onblur, tut eigentlich nichts. Das ist ein kleines Problem, auf das ich mich auch irgendwann beziehen möchte.
ContactBean.java
package com.walterjwhite.seamCore.model;
import java.io.Serializable;
import org.hibernate.validator.Email;
import org.hibernate.validator.NotEmpty;
import org.jboss.seam.annotations.AutoCreate;
import org.jboss.seam.annotations.Name;
@AutoCreate
@Name("com.walterjwhite.seamCore.model.contactBean")
public class ContactBean
implements Serializable
{
protected String firstName;
protected String lastName;
protected String emailAddress;
protected String subject;
protected String message;
public String getFirstName()
{
return firstName;
}
public void setFirstName(String firstName)
{
this.firstName = firstName;
}
@NotEmpty
public String getLastName()
{
return lastName;
}
public void setLastName(String lastName)
{
this.lastName = lastName;
}
@NotEmpty
@Email
public String getEmailAddress()
{
return emailAddress;
}
public void setEmailAddress(String emailAddress)
{
this.emailAddress = emailAddress;
}
@NotEmpty
public String getSubject()
{
return subject;
}
public void setSubject(String subject)
{
this.subject = subject;
}
@NotEmpty
public String getMessage()
{
return message;
}
public void setMessage(String message)
{
this.message = message;
}
}
Danke,
Walter
Können wir die Entity-Bean-Klasse sehen? – Drew