craigmcc 2003/02/04 20:03:14
Modified: doc/faqs newbie.xml
Log:
Another good newbie FAQ answer.
PR: Bugzilla #16065
Submitted by: Edgar Dollin <edgar at blue-moose.net>
Revision Changes Path
1.11 +54 -2 jakarta-struts/doc/faqs/newbie.xml
Index: newbie.xml
===================================================================
RCS file: /home/cvs/jakarta-struts/doc/faqs/newbie.xml,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- newbie.xml 5 Feb 2003 03:31:24 -0000 1.10
+++ newbie.xml 5 Feb 2003 04:03:14 -0000 1.11
@@ -101,6 +101,11 @@
<a href="#formbeans">Do ActionForms have to be true JavaBeans?</a>
</li>
+ <li>
+ <a href="#separate">Do I have to have a separate ActionForm bean
+ for every HTML form?</a>
+ </li>
+
</ul>
<p>
@@ -565,6 +570,55 @@
</section>
+<section href="separate"
+ name="Do I have to have a separate ActionForm bean for every HTML form?">
+
+ <p>This is an interesting question. As a newbie, it is a good
+ practice to create a new <code>ActionForm</code> for each action
+ sequence. You can use <code>DynaActionForm</code>s to help reduce
+ the effort required, or use the code generation facilities of your
+ IDE.</p>
+
+ <p>Some issues to keep in mind regarding reuse of form beans
+ are as follows:</p>
+ <ul>
+ <li><em>Validation</em> - You might need to use different
+ validation rules depending upon the action that is currently
+ being executed.</li>
+ <li><em>Persistence</em> - Be careful that a form populated in
+ one action is not <strong>unexpectedly</strong> reused in a
+ different action. Multiple <code><form-bean></code>
+ entries in <code>struts-config.xml</code> for the same
+ <code>ActionForm</code> subclass can help (especially if you
+ store your form beans in session scope). Alternatively,
+ storing form beans in request scope can avoid unexpected
+ interactions (as well as reduce the memory footprint of your
+ application, because no server-side objects will need to be
+ saved in between requests.</li>
+ <li><em>Checkboxes</em> - If you do as recommended and reset
+ your boolean properties (for fields presented as checkboxes),
+ and the page you are currently displaying does not have a
+ checkbox for every boolean property on the form bean, the
+ undisplayed boolean properties will always appear to have a
+ <code>false</code> value.</li>
+ <li><em>Workflow</em> - The most common need for form bean
+ reuse is workflow. Out of the box, Struts has limited support
+ for workflow, but a common pattern is to use a single form bean
+ with all of the properties for all of the pages of a workflow.
+ You will need a good understanding of the
+ environment (<code>ActionForm</code>s, <code>Action</code>s,
+ etc.) prior to being able to put together a smooth workflow
+ environment using a single form bean.</li>
+ </ul>
+
+ <p>As you get more comfortable, there are a few shortcuts you can
+ take in order to reuse your <code>ActionForm</code> beans. Most of
+ these shortcuts depend on how you have chosen to implement your
+ <code>Action</code> / <code>ActionForm</code> combinations.</p>
+
+</section>
+
+
<section
href="undocumented"
@@ -574,8 +628,6 @@
<ul>
<li>Why is ActionForm a base class rather than an interface?</li>
-
- <li>Do I have to have a separate ActionForm bean for every HTML form?</li>
<li>Can I use other beans or hashmaps with ActionForms?</li>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]