5.7. Automatically Creating ActionForms
Problem
You want to create a DynaActionForm
(or subclass)
automatically from your business objects without having to configure
the form-bean
and form-property
elements ahead of time.
Solution
Use Hubert Rabago's Formdef plug-in. You can download formdef.jar from https://formdef.dev.java.net/ and copy it to your application's WEB-INF/lib directory. Formdef allows you to define form definitions in an XML file, as shown in Example 5-14.This file should be placed in the WEB-INF folder of your web application and given a meaningful name such as form-defs.xml.
Example 5-14. Formdef form definitions
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE form-definition PUBLIC "-//FormDef//FormDef Form Definition//EN" "form-defs_0_5.dtd"> <form-definition> <formset> <form name="EmployeeForm" beanType="com.oreilly.strutsckbk.ch05.EmployeeFd"/> </formset> </form-definition>
The form
element maps a form named with the
name
element to a business object whose class is
specified by the beanType
attribute.
Next, add a plug-in
element for
Formdef to your
struts-config.xml file:
<plug-in className="formdef.plugin.FormDefPlugIn"> <set-property property="defnames" value="/WEB-INF/form-defs.xml"/> </plug-in>
The form named in the form
element can be used in
your application as if you had explicitly declared the form using a
form-bean
element in the
struts-config.xml file. Here's
an action
that uses the
EmployeeFdForm
:
<action path="/SaveEmployeeFd" name="EmployeeFdForm" ...
Get Jakarta Struts Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.