+      <p>
  +        For every &lt;form-bean&gt; tag in your
<code>struts-config.xml</code>
  +        file, you must have a corresponding Java class. The same
holds true for
  +        each &lt;action-mapping&gt; tag.
  +      </p>
  +

Is this accurate? What something like:

    <action 
        path="/Menu"
        forward="/pages/article/Menu.jsp">
    </action>


>          <p>
>   +        Please note that the i18n support in Struts is currently limited to the
>   +        <b>presentation</b> of internationalized information to the user.
>   +        Support for various Locale specific <b>input methods</b> is left up
>   +        to the client device, which is usually a web browser.
>   +      </p>
>   +

What sort of input methods are we talking about here?

Does "currently" imply that these might be supported by Struts in the
near future.

The other changes look great ;-)

-Ted.


[EMAIL PROTECTED] wrote:
> 
> martinc     01/10/18 22:51:09
> 
>   Modified:    doc/userGuide building_controller.xml building_model.xml
>                         building_view.xml introduction.xml
>   Log:
>   Applied some documentation changes suggested by Ed Burns, along with some
>   general corrections, and some corrections to the proposed changes.
> 
>   PR: 4140
>   Submitted by: Ed Burns
> 
>   Revision  Changes    Path
>   1.6       +17 -5     jakarta-struts/doc/userGuide/building_controller.xml
> 
>   Index: building_controller.xml
>   ===================================================================
>   RCS file: /home/cvs/jakarta-struts/doc/userGuide/building_controller.xml,v
>   retrieving revision 1.5
>   retrieving revision 1.6
>   diff -u -r1.5 -r1.6
>   --- building_controller.xml   2001/10/07 04:48:08     1.5
>   +++ building_controller.xml   2001/10/19 05:51:09     1.6
>   @@ -5,6 +5,8 @@
>        <author>Craig R. McClanahan</author>
>        <author>Mike Schachter</author>
>        <author>Ted Husted</author>
>   +    <author>Martin Cooper</author>
>   +    <author>Ed Burns</author>
>        <title>The Struts User's Guide - Building Controller Components</title>
>      </properties>
> 
>   @@ -29,7 +31,8 @@
>               extension of the <code>ActionMapping</code> class) that defines the 
>class
>               names and other information associated with each possible mapping.</li>
>            <li>Write the action mapping configuration file (in XML) that is used
>   -            to configure the controller servlet.</li>
>   +            to configure the controller servlet. This file is usually named
>   +            <code>struts-config.xml</code>.</li>
>            <li>Update the web application deployment descriptor file (in XML)
>                for your application to include the necessary Struts components.</li>
>            <li>Add the appropriate Struts components to your application.</li>
>   @@ -206,11 +209,13 @@
>                for each form bean, which has the following important attributes:
>                <ul>
>                  <li>
>   -                <b>name</b>: The name of the request or session level attribute 
>that this form
>   -                bean will be stored as
>   +                <b>name</b>: A unique identifier for this bean, which will be used
>   +                to reference it in corresponding action mappings. Usually, this
>   +                is also the name of the request or session attribute under which
>   +                this form bean will be stored.
>                  </li>
>                  <li>
>   -                <b>type</b>: The fully-qualified Java classname of your form bean
>   +                <b>type</b>: The fully-qualified Java classname of your form bean.
>                  </li>
>                </ul>
>            </blockquote>
>   @@ -235,6 +240,13 @@
> 
>          </p>
> 
>   +
>   +      <p>
>   +        For every &lt;form-bean&gt; tag in your <code>struts-config.xml</code>
>   +        file, you must have a corresponding Java class. The same holds true for
>   +        each &lt;action-mapping&gt; tag.
>   +      </p>
>   +
>          <p>
>            The <code>struts-config.xml</code> file from the example application 
>includes
>            the following mapping entry for the "log on" function, which we will use
>   @@ -623,7 +635,7 @@
>             <code>WEB-INF/lib</code> directory.
>            </p>
>                                    <p>
>   -                                        Next: <a 
>href="resources.html">Resources</a>
>   +                                        Next: <a href="resources.html">Struts 
>Resources</a>
>                                    </p>
>          </section>
>        </section>
> 
> 
> 
>   1.3       +16 -11    jakarta-struts/doc/userGuide/building_model.xml
> 
>   Index: building_model.xml
>   ===================================================================
>   RCS file: /home/cvs/jakarta-struts/doc/userGuide/building_model.xml,v
>   retrieving revision 1.2
>   retrieving revision 1.3
>   diff -u -r1.2 -r1.3
>   --- building_model.xml        2001/10/07 04:48:08     1.2
>   +++ building_model.xml        2001/10/19 05:51:09     1.3
>   @@ -5,6 +5,8 @@
>        <author>Craig R. McClanahan</author>
>        <author>Mike Schachter</author>
>        <author>Ted Husted</author>
>   +    <author>Martin Cooper</author>
>   +    <author>Ed Burns</author>
>        <title>The Struts User's Guide - Building Model Components</title>
>      </properties>
> 
>   @@ -14,16 +16,18 @@
>          <section name="2.1 Overview" href="overview">
> 
>            <p>
>   -          The application requirements document that you are using will likely
>   -        have focused on the user interface to be created.  However, you should 
>ensure
>   -        that the processing required for each submitted request is also clearly
>   -        defined.  In general, the developer of the <i>Model</i> components will be
>   -        focusing on the creation of JavaBeans classes that support all of the
>   -        functional requirements.  The precise nature of the beans required by a
>   -        particular application will vary widely depending on those requirements,
>   -        but they can generally be classified into several categories discussed
>   -        below.  However, a brief review of the concept of "scope" as it relates
>   -        to beans is useful first.
>   +        Many requirements documents used for building web applications
>   +        focus on the <i>View</i>.  However, you should ensure that the
>   +        processing required for each submitted request is also clearly
>   +        defined from the <i>Model's</i> perspective.  In general, the
>   +        developer of the <i>Model</i> components will be focusing on
>   +        the creation of JavaBeans classes that support all of the
>   +        functional requirements.  The precise nature of the beans
>   +        required by a particular application will vary widely
>   +        depending on those requirements, but they can generally be
>   +        classified into several categories discussed below.  However,
>   +        a brief review of the concept of "scope" as it relates to
>   +        beans and JSP is useful first.
>          </p>
>        </section>
> 
>   @@ -84,7 +88,8 @@
>            The Struts framework generally assumes that you have created an
>            <code>ActionForm</code> bean (that is, a Java class extending the
>            <code>ActionForm</code> class) for each input form required in your
>   -        application.  If you define such beans in your <code>ActionMapping</code>
>   +        application. <code>ActionForm</code> beans are sometimes just called
>   +        "form beans". If you declare such beans in your <code>ActionMapping</code>
>            configuration file (see "<a href="building_controller.html#config">
>            Building the Controller Components</a>"), the Struts  controller servlet
>            will automatically perform the following services for you, before
> 
> 
> 
>   1.5       +11 -0     jakarta-struts/doc/userGuide/building_view.xml
> 
>   Index: building_view.xml
>   ===================================================================
>   RCS file: /home/cvs/jakarta-struts/doc/userGuide/building_view.xml,v
>   retrieving revision 1.4
>   retrieving revision 1.5
>   diff -u -r1.4 -r1.5
>   --- building_view.xml 2001/10/07 04:48:08     1.4
>   +++ building_view.xml 2001/10/19 05:51:09     1.5
>   @@ -5,6 +5,8 @@
>        <author>Craig R. McClanahan</author>
>        <author>Mike Schachter</author>
>        <author>Ted Husted</author>
>   +    <author>Martin Cooper</author>
>   +    <author>Ed Burns</author>
>        <title>The Struts User's Guide - Building View Components</title>
>      </properties>
> 
>   @@ -78,6 +80,13 @@
>          </ul>
> 
>          <p>
>   +        Please note that the i18n support in Struts is currently limited to the
>   +        <b>presentation</b> of internationalized information to the user.
>   +        Support for various Locale specific <b>input methods</b> is left up
>   +        to the client device, which is usually a web browser.
>   +      </p>
>   +
>   +      <p>
>            For an internationalized application, follow the steps described in
>            the Internationalization document in the JDK documentation bundle for your
>            platform to create a properties file containing the messages for each
>   @@ -279,6 +288,8 @@
>                  <code>&lt;form&gt;</code> element, based on the specified 
>attributes.
>                  It also associates all of the fields within this form with a session
>                  scoped FormBean that is stored under the key <code>logonForm</code>.
>   +              The Struts developer provides the Java implementation of this form
>   +              bean, subclassing the Struts class <code>ActionForm</code>.
>                  This bean is used to provide initial values for all of the input
>                  fields that have names matching the property names of the bean.
>                  If an appropriate bean is not found, a new one will be created
> 
> 
> 
>   1.6       +73 -43    jakarta-struts/doc/userGuide/introduction.xml
> 
>   Index: introduction.xml
>   ===================================================================
>   RCS file: /home/cvs/jakarta-struts/doc/userGuide/introduction.xml,v
>   retrieving revision 1.5
>   retrieving revision 1.6
>   diff -u -r1.5 -r1.6
>   --- introduction.xml  2001/10/19 05:15:16     1.5
>   +++ introduction.xml  2001/10/19 05:51:09     1.6
>   @@ -6,6 +6,8 @@
>        <author>Mike Schachter</author>
>        <author>Larry McCay</author>
>        <author>Ted Husted</author>
>   +    <author>Martin Cooper</author>
>   +    <author>Ed Burns</author>
>        <title>The Struts User's Guide - Introduction</title>
>      </properties>
> 
>   @@ -16,6 +18,23 @@
>          <section name="1.1 Preface: Forward into the Past! (or a brief history of 
>Struts)" href="preface">
> 
>            <p>
>   +          Before getting started, you should know the basics of the following
>   +          technologies:
>   +        </p>
>   +
>   +     <ul>
>   +       <li>The HTTP Request/Response sequence. The canonical source for this
>   +         is <a href="http://www.ietf.org/rfc/rfc2616.txt?number=2616";>RFC 2616
>   +         - Hypertext Transfer Protocol (HTTP/1.1)</a>.</li>
>   +       <li>Java Servlets. A good place to start is the
>   +         <a href="http://java.sun.com/products/servlet/technical.html#tutorials";>
>   +         servlet tutorials</a>.</li>
>   +       <li>JavaServer Pages (JSP). Again, a good place to start is the
>   +         <a href="http://java.sun.com/products/jsp/technical.html#tutorials";>
>   +         JSP tutorials</a>.</li>
>   +     </ul>
>   +
>   +        <p>
>              When Java servlets were first invented, many programmers quickly 
>realized that they were a
>              Good Thing. They were faster and more powerful that standard CGI, 
>portable, and infinitely
>              extensible.
>   @@ -60,51 +79,59 @@
>          <section name="1.2 The Model-View-Controller ('MVC') Design Pattern" 
>href="mvc">
> 
>            <p>
>   -          In the MVC design pattern, application flow is mediated by a central 
>Controller. The
>   -          Controller delegates requests to an appropriate handler. The handlers 
>are tied to a Model,
>   -          which act as an adapter between the request and the Model. The Model 
>represents, or
>   -          encapsulates, an application's business logic or state. Control is 
>usually then forwarded
>   -          back through the Controller to the appropriate View. The forwarding can 
>be determined by
>   -          consulting a set of mappings, usually loaded from a database or 
>configuration file. This
>   -          provides a loose coupling between the View and Model, which can make an 
>application
>   -          significantly easier to create and maintain.
>   -        </p>
>   -
>   +          In the MVC design pattern, application flow is mediated by a
>   +          central Controller. The Controller delegates requests - in our
>   +          case, HTTP requests - to an appropriate handler. The handlers
>   +          are tied to a Model, and each handler acts as an adapter
>   +          between the request and the Model. The Model represents, or
>   +          encapsulates, an application's business logic or
>   +          state. Control is usually then forwarded back through the
>   +          Controller to the appropriate View. The forwarding can be
>   +          determined by consulting a set of mappings, usually loaded
>   +          from a database or configuration file. This provides a loose
>   +          coupling between the View and Model, which can make an
>   +          application significantly easier to create and maintain.
>   +        </p>
>   +
>          </section>
> 
> 
>          <section name="1.3 Struts Framework Overview" href="overview">
> 
>   -         <p>
>   -           True to the Model-View-Controller design pattern, Struts applications 
>have three
>   -          major components: a servlet controller, JavaServer pages (the "view"), 
>and the
>   -          application's business logic (or the "model"). Let's step through how 
>this all
>   -          fits together.</p>
>   -         <p>
>   -           The controller bundles and routes HTTP requests to other objects in 
>the framework,
>   -          including JavaServer Pages. When initialized, the controller parses a 
>configuration
>   -          resource file. The configuration resource defines (among other things) 
>the action
>   -          mappings for the application. The controller uses these mappings to 
>turn HTTP
>   -          requests into application actions.
>   +        <p>
>   +          True to the Model-View-Controller design pattern, Struts applications 
>have three
>   +          major components: a servlet controller, which is provided by Struts 
>itself,
>   +          JSP pages (the "view"), and the application's business logic (or the
>   +          "model"). Let's step through how this all fits together.
>   +        </p>
>   +
>   +        <p>
>   +          The Struts controller servlet bundles and routes HTTP requests to other
>   +          objects in the framework, including JavaServer Pages and
>   +          <code>org.apache.struts.action.Action</code> subclasses provided by the
>   +          Struts developer. When initialized, the controller parses a 
>configuration
>   +          resource file. The configuration resource defines (among other things)
>   +          the action mappings for the application. The controller uses these
>   +          mappings to turn HTTP requests into application actions.
>            </p>
> 
>            <p>
>              At a minimum, a mapping must specify (1) a request path and (2) the 
>object
>   -          type to act upon the request. The action object can handle the request 
>and respond
>   +          type to act upon the request. The Action object can handle the request 
>and respond
>              to the client (usually a Web browser), or indicate that control should 
>be forwarded
>              to another action. For example, if a login succeeds, a loginAction 
>object may wish
>              to forward control to a mainMenu action.
>            </p>
> 
>            <p>
>   -          Action objects are linked to the application's controller, and so have 
>access
>   -          to that servlet's methods. When forwarding control, an object can 
>indirectly
>   +          Action objects have access to the application's controller servlet, and 
>so have access
>   +          to that servlet's methods. When forwarding control, an Action object 
>can indirectly
>              forward one or more shared objects, including JavaBeans, by placing 
>them in one
>              of the standard collections shared by Java servlets.
>            </p>
> 
>            <p>
>   -          An action object can create a shopping cart bean, add an item to the
>   +          An Action object can create a shopping cart bean, add an item to the
>              cart, place the bean in the session collection, and then forward 
>control to
>              another action -- that may use a JSP to display the contents of the 
>user's cart.
>              Since each client has their own session, they will each also have their 
>own
>   @@ -115,34 +142,37 @@
>            <p>
>              JavaBeans can also be used to manage input forms. A key problem in 
>designing
>              Web applications is retaining and validating what a user has entered 
>between
>   -          requests. With Struts, you can easily store the data for a input form 
>in a form
>   -          bean. The bean is saved in one of the standard, shared context 
>collections,
>   -          so that it can be used by other objects, especially the action object.
>   +          requests. With Struts, you can define your own set of form bean 
>classes, by
>   +          subclassing <code>org.apache.struts.action.ActionForm</code>, and 
>easily store
>   +          the data for an input form in these form beans. The bean is saved in 
>one of the
>   +          standard, shared context collections, so that it can be used by other 
>objects,
>   +          especially the Action object.
>            </p>
> 
>            <p>
>              The form bean can be used by a JSP to collect data from the user ... by 
>an
>   -          action object to validate the user-entered data ... and then by the JSP 
>again to
>   +          Action object to validate the user-entered data ... and then by the JSP 
>again to
>              re-populate the form fields. In the case of validation errors, Struts 
>has a
>              shared mechanism for raising and displaying error messages.
>            </p>
> 
>            <p>
>   -          A Struts form bean is defined in the configuration resource and linked 
>to an action
>   -          mapping using a common property name. When a request calls for an 
>action that uses
>   -          a form bean, the controller servlet either retrieves or creates the 
>form bean, and
>   -          passes it to the action object. The action object can then check the 
>contents of
>   -          the form bean before its input form is displayed, and also queue 
>messages to be
>   -          handled by the form. When ready, the action object can return control 
>with a
>   -          forwarding to its input form, usually a JSP. The controller can then 
>respond to
>   -          the HTTP request and direct the client to the Java Server Page.
>   +          A Struts form bean is declared in the configuration resource, defined 
>in a Java
>   +          source file, and linked to an action mapping using a common property 
>name. When
>   +          a request calls for an action that uses a form bean, the controller 
>servlet
>   +          either retrieves or creates the form bean, and passes it to the Action 
>object.
>   +          The action object can then check the contents of the form bean before 
>its input
>   +          form is displayed, and also queue messages to be handled by the form. 
>When
>   +          ready, the Action object can return control with a forwarding to its 
>input
>   +          form, usually a JSP. The controller can then respond to the HTTP 
>request and
>   +          direct the client to the Java Server Page.
>            </p>
> 
>            <p>
>              The Struts framework includes custom tags that can automatically 
>populate
>              fields from a form bean. The only thing most JavaServer Pages need to 
>know
>              about the rest of the framework is the proper field names and where to 
>submit
>   -          the form. Components like the messages set by the action object can be 
>output
>   +          the form. Components like the messages set by the Action object can be 
>output
>              using a single custom tag. Other application-specific tags can also be 
>defined
>              to hide implementation details from the JSPs.
>            </p>
>   @@ -162,11 +192,11 @@
>            </p>
> 
>            <p>
>   -          For the simplest applications, an action object can handle the business 
>logic
>   -          associated with a request. However, in most cases, an action object 
>should pass
>   +          For the simplest applications, an Action object can handle the business 
>logic
>   +          associated with a request. However, in most cases, an Action object 
>should pass
>              the request to another object, usually a JavaBean. To allow reuse on 
>other
>              platforms, business-logic JavaBeans should not refer to any Web 
>application
>   -          objects. The action object should translate needed details from the 
>HTTP request
>   +          objects. The Action object should translate needed details from the 
>HTTP request
>              and pass those along to the business-logic beans as regular Java 
>variables.
>            </p>
> 
>   @@ -214,8 +244,8 @@
>          </p>
> 
>          <p>
>   -        Large-scale applications will often represent the business logic actions
>   -        that are possible in a system as methods that can be called on the beans
>   +        Large-scale applications will often represent the set of possible
>   +        business logic actions as methods that can be called on the beans
>            maintaining the state information.  For example, you might have a shopping
>            cart bean, stored in session scope for each current user, with properties
>            that represent the current set of items that the user has decided to
> 
> 
> 

-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel +1 716 737-3463
-- http://www.husted.com/struts/

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

Reply via email to