Necesito pasar una instancia de UUID a través del parámetro de solicitud http. Spring necesita un convertidor de tipo personalizado (de String) para registrarse. ¿Cómo registro uno?¿Cómo registro un convertidor de tipo personalizado en Spring?
Respuesta
¿No estás seguro de lo que estás preguntando?
La primavera viene con CustomEditorConfigurer para suministrar Cadena personalizada < -> Convertidores de objetos.
Para usar esto, solo agregue el CustomEditorConfigurer como bean a su configuración, y agregue los convertidores personalizados. Sin embargo, estos convertidores se utilizan normalmente al convertir atributos de cadena en el archivo de configuración en objetos reales.
Si está utilizando Spring MVC, a continuación, echar un vistazo a la sección sobre annotated MVC
Específicamente, echar un vistazo a la @RequestParam y los @ModelAttribute anotaciones?
Espero que ayude?
Por favor, véase el capítulo 5 del manual de referencia de primavera aquí: 5.4.2.1. Registering additional custom PropertyEditors
Tengo un controlador MVC con anotaciones RequestMapping. Un método tiene un parámetro de tipo UUID. Gracias kit de herramientas, después de leer sobre WebDataBinder, pensé que necesito un método como este en mi controlador:
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(UUID.class, new UUIDEditor());
}
UUIDEditor simplemente extiende PropertyEditorSupport y anula getAsText() y setAsText().
Me han funcionado muy bien.
En extensión al ejemplo anterior.
controlador de clase
@Controller
@RequestMapping("/showuuid.html")
public class ShowUUIDController
{
@InitBinder
public void initBinder(WebDataBinder binder)
{
binder.registerCustomEditor(UUID.class, new UUIDEditor());
}
public String showuuidHandler (@RequestParam("id") UUID id, Model model)
{
model.addAttribute ("id", id) ;
return "showuuid" ;
}
}
Propiedad de-munger
class UUIDEditor extends java.beans.PropertyEditorSupport
{
@Override
public String getAsText()
{
UUID u = (UUID) getValue() ;
return u.toString() ;
}
@Override
public void setAsText (String s)
{
setValue (UUID.fromString (s)) ;
}
}
- 1. AutoMapper convertidor de tipo personalizado no funciona
- 2. Cómo registro un tipo de archivo personalizado en iOS
- 3. Conversión de tipo Spring MVC: ¿PropertyEditor o convertidor?
- 4. ¿Cómo registro un IObjectRenderer personalizado en log4net?
- 5. Cómo escribir un convertidor personalizado para <p:pickList>
- 6. Cómo inyectar Spring Bean en el convertidor JSF
- 7. C#: cómo usar un convertidor de tipo para localizar enums
- 8. Cómo usar Spring Autowired en un interceptor cxf personalizado?
- 9. Inyectar propiedad de frijol administrado en el convertidor personalizado
- 10. ¿Cómo agregar un tipo de mime personalizado?
- 11. Spring 3.0 haciendo respuesta JSON usando Jackson mensaje convertidor de
- 12. ¿Cómo registro la respuesta en Spring RestTemplate?
- 13. Personalizado 404 usando Spring DispatcherServlet
- 14. ¿Cómo registro un protocolo de URL personalizado en Windows?
- 15. Cómo inyectar un Bean Spring 3 en un convertidor JSF 2
- 16. ¿Cómo puedo registrar un editor personalizado global en Spring-MVC?
- 17. Spring HTML personalizado
- 18. Spring: aspecto de registro estándar (interceptor)
- 19. Spring Security filtro personalizado
- 20. ¿Cómo utilizar Spring desde un appender de logback personalizado?
- 21. Habilitación del registro en Spring
- 22. Registro de un gancho de cierre en Spring 2.5
- 23. Obtener el convertidor para el tipo
- 24. Registro de Java: ¿cómo redirigir la salida a un archivo de registro personalizado para un registrador?
- 25. Cómo inyectar un convertidor en XAML
- 26. ¿Cómo puedo hacer un tipo de campo personalizado en symfony2?
- 27. ¿Cómo personalizo la salida de un tipo personalizado usando printf?
- 28. Cómo agregar un método personalizado a Spring Data JPA
- 29. Un genérico de Boole convertidor
- 30. EventLog.CreateEventSource no está creando un registro personalizado