Better, an example for spring!
Look this:
Configuration:
<bean id="modeloValidator"
class="com.opensistemas.ksjfhksjfhksjdhf.webapp.validators.ModeloValidator">
<property name="modeloManager" ref="modeloManager"/>
</bean>
<bean id="modeloFormController"
class="com.opensistemas.ksjfhksjfhksjdhf.webapp.controller.ModeloFormController">
<property name="validator" ref="modeloValidator"/>
<property name="successView"
value="redirect:gestion_de_modelos.html?action=listarModelos"/>
<property name="formView" value="modeloform"/>
<property name="marcaManager" ref="marcaManager"/>
<property name="modeloManager" ref="modeloManager"/>
<property name="tipoEquipoManager" ref="tipoEquipoManager"/>
<property name="empresaManager" ref="empresaManager"/>
<property name="atributoTipoEquipoManager" ref="atributoTipoEquipoManager"/>
</bean>
In the configuration of the form see the validator property.
In the form (jsp - see formView property):
....
<form:select path="tipoEquipo.id" id="tipoEquipo.id"
onchange="javascript:cambioTipoEquipo();" >
<%@ include file="/common/blankOption.jsp"%>
<c:forEach var='vtipoEquipo' items='${tiposEquipo}'>
<option value="<c:out value="${vtipoEquipo.id}"/>" <c:if
test="${modelo.tipoEquipo.id == vtipoEquipo.id}">selected</c:if> >
<c:out value="${vtipoEquipo.nombre}"/>
</option>
</c:forEach>
</form:select>
....
Look in the jsp - the related object has a path.
And finally in the Validator :
public class ModeloValidator implements Validator {
private ModeloManager manager;
public void setModeloManager(ModeloManager manager){
this.manager = manager;
}
public boolean supports(Class clazz) {
return Modelo.class.isAssignableFrom(clazz);
}
public void validate(Object target, Errors errors) {
Modelo modelo = (Modelo) target;
ValidationUtils.rejectIfEmpty(errors, "nombre", "required.nombre", "Name
required");
// encontrarTodos= findAll
List<Modelo> modeloPersistentes =
manager.encontrarTodos(modelo.getNombre());
try {
if (modeloPersistentes.size() > 0) throw new Exception();
} catch (Exception e){
//carga error
errors.reject("nombre.error", "Ya existe un modelo con este nombre,
seleccione otro.");
}
//El id del objeto modelo.tipoEquipo
try {
//Default value is selected?
if (modelo.getTipoEquipo().getId().equals(new Long(0))) throw new
Exception();
} catch (Exception e){
//carga error
errors.reject("tipoEquipo.error", "Debe seleccionar un tipo de equipo");
}
}
}
Anshu Dhamija schrieb:
Can you please provide a link for full explanation
Regards
Anshu
-----Original Message-----
From: Leo Barrientos C. [mailto:[EMAIL PROTECTED]
Sent: Friday, June 06, 2008 12:42 PM
To: [email protected]
Subject: Re: [appfuse-user] conditional validation
Use a custom beanValidator.
If category is a object related to your "target" entity use
path=category.id to binding in the form.
nshu Dhamija schrieb:
Hi
I have a drop down in which there are values along with “select
category”.
“select category” will be selected by default now I want to apply
validation that user need to select a value other than “select
category” otherwise it should show validation error. Can anyone help me
//Regards//
Anshu
--
Leo Barrientos C.
Director de Operaciones Madrid.
Open Sistemas de Información Internet
Fono: +34 902 10 73 96
Correo: [EMAIL PROTECTED]
Web: http://www.opensistemas.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]