Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/08/2008, 10:38
Bunburyscom
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 16 años, 6 meses
Puntos: 10
Respuesta: Preguntas sobre struts 1.3.8

Mira lo que dice la documentacion:

DynaActionForms are meant as an easy solution to a common problem: Your ActionForms use simple properties and standard validations, and you just pass these properties over to another JavaBean (say using BeanUtils.copyProperties(myBusinessBean,form)).

DynaActionForms are not a drop-in replacement for ActionForms. If you need to access DynaActionForm properties in your Action, you will need to use the map-style accessor, like myForm.get("name"). If you actively use the ActionForm object in your Action, then you may want to use conventional ActionForms instead.

DynaActionForms cannot be instantiated using a no-argument constructor. In order to simulate the extra properties, there is a lot of machinery involved in their construction. You must rely on the framework to instantiate a DynaActionForm for you, via the ActionMapping.

If need be, you can extend the DynaActionForm to add custom validate and reset methods you might need. Simply specify your subclass in the struts-config instead. However, you cannot mix conventional properties and DynaProperties. A conventional getter or setter on a DynaActionForm won't be found by the reflection utilities.

To use DynaActionForms with the Struts Validator, specify org.apache.struts.validator.ValidatorActionForm (or your subclass) as the form-bean class.

And, of course, while the DynaActionForm may support various binary types, properties used with the html:text tag should still be String properties.


Por otro lado, los DynaActionForm no los programas, solo los declaras en el xml, por esto, en caso de que tuvieras algun error, éste saldria a la hora de ejecucion de tu sistema.

Ademas, por cada variable que quieras recuperar tienes que hacer esto:
String nombre=String.valueOf(misDatos.get("nombrePersona" ));

Ahi tendrias un "get()" por cada variable, entonces se estaria pareciendo a un ActionForm, no???

Y cada variable declararla en el struts-config.xml, que es lo mismo si hicieras un "private String nombre;" en tu ActionForm, donde esta el DynaValidatorForm????

Tambien (sino mal recuerdo), con un DynaValidatorForm no puedes poner automaticamente valores por default en tus campos de texto, para esto necesitas usar ActionForm.

Mi humilde opinion es que utilizes un DynaValidatorForm solo para aprender un poco mas de Struts, pero en una aplicacion real y robusta, no lo uses, mejor utiliza el ActionForm o el ValidatorForm, solo es mi humilde opinion.

saludos!