Моя проверка формы отлично работает, но в сообщениях используется имя компонента JSF, а не метка поля. Например, у меня есть полевой объект, и сообщение об ошибке, которое я получаю, когда оно пустое, есть что-то вроде строк:Проверка формы Seym Richfaces
UIComponent: contactBean.firstName не может быть пустым.
Моя форма:
<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>
Мой шаблон редактирования:
<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>
Валидация работает точно так же, как я хочу, сообщения об ошибках могут быть сконфигурированы (по крайней мере, значение справа используемой метки), и валидаторы настолько просты в настройке, что они просто представляют собой аннотации полей полей ContactBean.
Я хотел бы, чтобы полировать его и получить правильные значения, отображаемые там, например:
Имя не может быть пустым.
Последняя часть ajax, onblur, на самом деле ничего не делает. Это небольшая проблема, которую я хотел бы затронуть в какой-то момент.
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;
}
}
Спасибо,
Walter
Можем ли мы увидеть класс компонентов сущности? – Drew