¿Cómo asigna Spring 2.5 los datos de la solicitud entrante al comando ModelAttribute?

StackOverflow https://stackoverflow.com/questions/418178

  •  03-07-2019
  •  | 
  •  

Pregunta

He usado Spring 2.0 y ahora estoy usando Spring 2.5 Naturalmente, Spring 2.5 hizo la vida muy fácil en lo que respecta a los Controladores Web. La pregunta sigue viniendo en mi mente que en 2.0 tuvimos que establecer la clase de comando y, en consecuencia, el AbstractFormController utilizado para rellenar ese objeto de comando para nosotros. En la primavera 2.5 no lo hacemos así que, ¿cómo se llega a saber qué clase usar? ¿Depende del tipo de parámetro que hemos anotado en @ModelAttribute (" comando ") a?

Si es así, hágame saber cualquier " Utils " clase que proporciona el mecanismo exacto donde puedo pasar HttpRequest y el nombre de la clase (o el objeto de la Clase) y eso me devolvería el objeto poblado.

Espero que tengas mi pregunta.

Gracias de antemano.

¿Fue útil?

Solución

El enlace de las anotaciones de Web MVC finalmente depende de un

org.springframework.beans.AbstractPropertyAccessor

que tiene dos implementaciones concretas:

org.springframework.beans.BeanWrapperImpl org.springframework.beans.DirectFieldAccessor

Ambos aceptan un objeto Java, que será el objetivo para establecer las propiedades.

El primero, BeanWrapperImpl usa los métodos setter / getter de un objeto java, mientras que el otro establece los campos directamente. Ambos verifican que los métodos / campos sean públicos / accesibles y, de lo contrario, use setAccessible (true) de reflexión para asegurarse de que se pueda configurar.

Desde el MVC web, se crea una instancia de AbstractPropertyAccessor y el mapa de parámetros de una HttpRequest se pasa a AbstractPropertyAccessor # setPropertyValues.

Después de la llamada, el objeto java se rellena con lo que esté en el mapa

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top