ValidationUtils.rejectIfEmpty(errors, "precioMax","precioVacio");
BusquedaOfertas bo = (BusquedaOfertas) obj;
//comprobar que el precio no esté vacío
// (para que no haya null pointer más abajo)
if (bo.getPrecioMax()==null)
//comprobar que el número sea positivo
if (bo.getPrecioMax().floatValue()<0)
Usuario u = new Usuario();u.setEmail(“Esto no es un email”)ValidatorFactory factory = Validation.buildDefaultValidatorFactory();Validator validator = factory.getValidator();Set<ConstraintViolation<Usuario>> errores = validator.validate(usuario);for (ConstraintViolation<Usuario> cv : errores) { System.out.println(cv.getMessage());}
Experto Universitario Java Enterprise
Validación en Spring 3
• 1. Se introducen datos en un formulario de Spring
Min.noches = hay un mínimo de {1} noches de estanciapublic class OfertaAlojamiento { ... @Min(2) private int estancia; ...}hay un mínimo de 2 noches de estancia<bean id="messageSource" class="org.springframework.context. support.ResourceBundleMessageSource"> <property name="basename" value="mensajesWeb"/></bean>
Experto Universitario Java Enterprise
Mostrar los mensajes en un JSP
• Se usan las taglibs de Spring
Internacionalización
• Según el idioma hay que cambiar
• Los textos del interfaz
• El formato de ciertos datos: ¿qué fecha es el 01/10/10? ¡depende del
país!
• Soporte de internacionalización de Java
•
•
java.util.Locale: representa idioma [+ país]
java.text.DateFormat, java.text.NumberFormat, permiten formatear
fechas y números. El aspecto final depende del Locale actual
• por convenio mensajes_es.properties contiene los mensajes para el
public class Reserva { @Future @DateTimeFormat(style="S-") private Date entrada; @Range(min=1,max=15) private int noches; @Min(10) @NumberFormat(style=NumberFormat.Style.CURRENCY) private BigDecimal pagoAnticipado; @NotNull ...}Fecha de entrada: <spring:eval expression="reserva.entrada" />
Experto Universitario Java Enterprise
Formateo de fechas y números (II)
• @DateTimeFormat(style=“S-”)
• @NumberFormat(style=NumberFormat.Style.CURRENCY)
• Otros (consultar javadoc de DateTimeFormat y
tareas/crear.do?fecha=10-mar-2013public class TareasController { @RequestMapping("tareas/crear?") public int nuevaTarea(@RequestParam("fecha") @DateTimeFormat(style="S-") Date fecha, ...) { ... }}
Comentarios de: Sesión 5: Spring MVC (II) - Validación e internacionalización (0)
No hay comentarios