我有一个必须输入邮政编码(PC)的表格。根据选择的城市,如果PC错误,它将显示一条消息指出该错误。 想法是控制de PC前缀,如果所选城市是毕尔巴鄂,则前缀应为48。
这是Alumno类的字段:
public class Alumno {
@NotNull
@Size(min=2, message="Longitud incorrecta")
private String nombre,apellido;
private String optativa;
private String ciudadEstudios; //selected city
private String idiomasEstudios;
@Email
private String email;
@Min(value=18, message="Debe ser mayor de 17 años.")
@Max(value=99, message="No se lo cree nadie, amigo.")
private int edad;
@Pattern(regexp="[0-9]{5}",message="Codigo postal erroneo")
@CPostalBilbao //my custom validation
private String codigoPostal; //the Postal Code field
我做了一个名为CPostalBilbao的自定义注释:
@Constraint(validatedBy = CPostalBilbaoValidacion.class)
@Target({ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface CPostalBilbao {
// definir el codigo postal por defecto
public String value() default "48";
// definir el mensaje de error
public String message() default "El codigo postal debe comenzar por 48";
//definir los grupos
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
还有一个名为CPostalBilbaoValidacion的自定义验证:
public class CPostalBilbaoValidacion implements
ConstraintValidator<CPostalBilbao, String> {
private String prefijoCP;
@Override
public void initialize(CPostalBilbao codigoCP) {
prefijoCP = codigoCP.value(); //Se le pasa el numero 48
}
@Override
public boolean isValid(String codigoIN, ConstraintValidatorContext cxt) {
boolean isCodigoRight;
if(codigoIN != null)
isCodigoRight = codigoIN.startsWith(prefijoCP);
else
return isCodigoRight = false;
return isCodigoRight;
}
}
我看不到应该在何处以及如何链接单选按钮选择和邮政编码字段。 Spring框架中是否有某种方法可以正确执行此操作,还是我应该在Alumno.java或其控制器中自己执行此操作?也许在表单的xml中?