struts2 model-driven

Cómo funciona la interfaz Struts2 ModelDriven



model-driven (3)

Tengo una duda. Cómo funciona la interfaz Struts2 Modeldriven . En mi aplicación, utilicé una sola forma. Y puse setters y getters de la misma forma que los nombres de los formularios. ¿Es posible colocar múltiples objetos ModelDriven con setter y getter? Si lo coloco así, ¿cómo lo reconocerá?


Cualquier acción que implemente la interfaz ModelDriven debe suministrar un método getModel() que devuelva el objeto que representa el modelo de la acción. Se asume que los parámetros pasados ​​a la acción son sub-propiedades del modelo. Solo puede tener un modelo por acción en una acción ModelDriven.

Por ejemplo, supongamos que tenemos un modelo llamado Profile y una acción para editar nuestro perfil. En nuestra forma, tenemos un campo de texto para nuestro sitio web. Sin usar ModelDriven , tendría los métodos getWebsite y setWebsite en su acción. Con ModelDriven , el getter y el setter en el modelo se llamarían en su lugar. Efectivamente, getModel().setWebsite("http://.com") .

Ejemplo

public class EditProfileAction extends ActionSupport implements ModelDriven<Profile> { private Profile profile; // todo: other methods @Override public Profile getModel() { return profile; } } public class Profile { private String website; public String getWebsite() { return website; } public void setWebsite(String website) { this.website = website; } }


De acuerdo ... ModelDriven es similar a ActionForm en Struts1 y tiene la similitud que creo que proporciona este enfoque. Incluso entonces, si tiene su modelo, con muchas composiciones tendrá que seguir el enfoque ObjectBacked para establecer los valores del objeto contenido en el modelo.


En el caso de ModelDriven , puede poblar solo un pojo a la vez. No puede usar múltiples ModelDriven en clase de acción única. Porque el método getModel() llena el Objeto del Pojo que se especifica en ModelDrive<Pojo> . Intentará encontrar el getter en este pojo. El nombre del campo debe coincidir con los nombres de los formularios.