Hi All,

just to share a working example of using a runtime dynabean as, by instance, 
a value object. It allows to get data and make up a bean with this data, all 
in runtime. Maybe is helpful for someone.

1. Create a customized dynabean:

public class ExtiendeBasicDynaBean extends 
org.apache.commons.beanutils.BasicDynaBean
{
        public ExtiendeBasicDynaBean(org.apache.commons.beanutils.DynaClass
dynaClass)
        {
             super(dynaClass);
        }
}

2. Fill it with data, and create its properties from a perform() method in 
an Action class:

public org.apache.struts.action.ActionForward
perform(org.apache.struts.action.ActionMapping mapping,
org.apache.struts.action.ActionForm form,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
{
      java.util.ArrayList propertyList = new java.util.ArrayList();

      org.apache.commons.beanutils.DynaProperty property1 = new
org.apache.commons.beanutils.DynaProperty("property1", String.class);
             propertyList.add(property1);
      org.apache.commons.beanutils.DynaProperty property2 = new
org.apache.commons.beanutils.DynaProperty("property2", String.class);
             propertyList.add(property2);
      org.apache.commons.beanutils.DynaProperty property3 = new
org.apache.commons.beanutils.DynaProperty("property3", String.class);
             propertyList.add(property3);
      org.apache.commons.beanutils.DynaProperty property4 = new
org.apache.commons.beanutils.DynaProperty("property4", String.class);
            propertyList.add(property4);

      org.apache.commons.beanutils.DynaProperty[] propertyArray =
(org.apache.commons.beanutils.DynaProperty[])propertyList.toArray(new
     org.apache.commons.beanutils.DynaProperty[0]);

     org.apache.commons.beanutils.DynaClass dynaClass = new
org.apache.commons.beanutils.BasicDynaClass("nombrebean",
ExtiendeBasicDynaBean.class, propertyArray);

ExtiendeBasicDynaBean bean = new ExtiendeBasicDynaBean(dynaClass);
          bean.set("property1", "valor1");
          bean.set("property2", "valor2");
          bean.set("property3", "valor3");
          bean.set("property4", "valor4");

          request.getSession(true).setAttribute("dynabean", bean);

          return mapping.findForward("success");
}

3. Get the data in the JSP from the session and render to the page, by using 
Struts custom tags

   La propiedad 1 es: <bean:write name="dynabean"
property="property1"/><br>

    La propiedad 2 es: <bean:write name="dynabean"
property="property2"/><br>

    La propiedad 3 es: <bean:write name="dynabean"
property="property3"/><br>

    La propiedad 4 es: <bean:write name="dynabean"
property="property4"/><br>

It is a basic example but I hope enough to get started with dynabeans.

Any comments, improvements, shortcuts ot whatever is welcome.

Regards,

Adolfo



_________________________________________________________________
MSN Photos is the easiest way to share and print your photos: 
http://photos.msn.com/support/worldwide.aspx


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to