Announcement

Collapse
No announcement yet.

DynaActionForm

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DynaActionForm

    Hallo,

    um Daten von jsp-Seite zu Action-Klasse zu übertragen, werden ActionForm-Klassen erzeugt. Oder
    um keine ActionForm zu erzeugen, kann man folgendes in struts-config definieren:

    <form-bean name="inputForm" type="org.apache.struts.action.DynaActionForm">
    <form-property initial="" name="eingabe" type="java.lang.String" /&gt;
    &lt;/form-bean&gt;

    Was ich nicht verstehe - wie werden die Daten in Action-Klasse zugänglich gemacht? Normalerweise hab ich da &lt;form-bean name="inputForm" type="my.package.MyActionForm" /&gt; und :

    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
    MyActionForm myform = ((MyActionForm) form);
    String name = myform.getName();
    ...
    }

    Und wie soll ich nun ActionForm form casten (vgl. struts-config Beispiel oben), um "eingabe" zu bekommen?

  • #2
    Hallo!

    In der execute-Methode gibt es folgende Möglichkeiten, auf das Attribut "eigenschaften" zuzugreifen:

    <PRE>
    public ActionForward execute(
    ActionMapping mapping,
    ActionForm form,
    HttpServletRequest request,
    HttpServletResponse response)
    throws Exception {
    DynaActionForm inputForm = (DynaActionForm) form;

    String eingabe1 = (String) PropertyUtils.getSimpleProperty( inputForm, "eingabe" );
    String eingabe2 = (String) inputForm.get("eingabe");

    return mapping.getInputForward();

    }
    </PRE>

    Beide Möglichkeiten funktionieren gleich gut - es ist m.o.w. eine Frage des persönlichen Geschmacks :

    Comment

    Working...
    X