svn commit: r417956 - in /struts/site/src/site/xdoc: announce.xml volunteers.xml
Author: niallp Date: Thu Jun 29 00:56:32 2006 New Revision: 417956 URL: http://svn.apache.org/viewvc?rev=417956&view=rev Log: Add Shale announcement, Move Greg to PMC section Modified: struts/site/src/site/xdoc/announce.xml struts/site/src/site/xdoc/volunteers.xml Modified: struts/site/src/site/xdoc/announce.xml URL: http://svn.apache.org/viewvc/struts/site/src/site/xdoc/announce.xml?rev=417956&r1=417955&r2=417956&view=diff == --- struts/site/src/site/xdoc/announce.xml (original) +++ struts/site/src/site/xdoc/announce.xml Thu Jun 29 00:56:32 2006 @@ -25,6 +25,74 @@ + +28 Jun 2006 - Shale to Become Top-Level +ASF Project + + On behalf of the ASF Board and Struts PMC, we are pleased to + announce that Shale has been accepted as a top-level project of + the Apache Software Foundation. + + + As a top-level project, Shale will have its own website, mailing + lists, repository space, and Project Management Committee. Shale + will be an automomous ASF project, rather than a subproject of + Apache Struts. + + + The Shale framework for JavaServer Faces is nearing its first + stable release. As a top-level project, it will be easier for + Shale to attract new developers and expand its growing community. + + + The initial set of PMC members and committers for Shale is: + + + +Craig McClanahan + + +James Mitchell + + +Greg Reddin + + +Sean Schofield + + +Wendy Smoak + + +Gary VanMatre + + +Matthias Wessendorf + + + + + Apache Shale has strong ties to both the Struts and MyFaces + projects. Most of the Shale PMC members are already involved + in both projects, and plan on continuing to remain involved in + them, along with Shale. + + + Apache Shale is a modern web application framework, intended for + developers adopting JavaServer Faces as a core technology. + + + Shale began as a proposal for Struts 2.0, but instead became a + subproject, so as to provide a JSF alternative for Struts + developers. Recent developments for Struts Action 2 now make it + easier for Struts developers to access JSF components from within + an "action-based" application. + + + The initial Shale codebase was donated by Craig McClanahan, who + also donated the original Struts codebase. + + 03 Jun 2006 - New Struts Committer: Bob Lee Modified: struts/site/src/site/xdoc/volunteers.xml URL: http://svn.apache.org/viewvc/struts/site/src/site/xdoc/volunteers.xml?rev=417956&r1=417955&r2=417956&view=diff == --- struts/site/src/site/xdoc/volunteers.xml (original) +++ struts/site/src/site/xdoc/volunteers.xml Thu Jun 29 00:56:32 2006 @@ -119,6 +119,10 @@ Sean Schofield (schof at apache.org) + +Greg Reddin +(greddin at apache.org) + @@ -133,10 +137,6 @@ David Geary (dgeary at apache.org) - - -Greg Reddin -(greddin at apache.org) Laurie Harper
[Struts Wiki] Update of "StrutsManualActionClasses" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsManualActionClasses -- == Action And Web Forms == - The most common use case in an interactive web application is submitting of HTML form. A user expects that if input data is not valid, the form would be redisplayed, keeping information entered by the user, and displaying relevant error messages. + The most common use case in an interactive web application is submitting of HTML form. A user expects that if input data is not valid then the form is redisplayed keeping information entered by the user, and displaying relevant error messages. + To explain how this use case is handled in Struts let us turn to HTTP specification. HTTP defines eight request methods, two of which are directly related to web forms. Below are relevant quotes from RFC 2616, abridged and slightly edited for readability: - This use case is so common and so important that it gave name to a certain web framework developed by a company from Redmond. This company spent significant amount of time making sure that developing for Web is as easy as designing a desktop application. How does Struts fare? - - First, a brief recap of HTTP specification. HTTP defines eight request methods, two of these directly relate to handling of web forms. Below are relevant quotes from RFC 2616, abridged and slightly edited for readability: '''GET:''' The GET method means retrieve whatever information is identified by the Request-URI. GET method SHOULD NOT have the significance of taking an action other than retrieval [and] ought to be considered "safe". '''POST:''' The POST method is used to request the server to accept the entity enclosed in the request. POST is designed to allow a uniform method to ... post a message to a bulletin board, newsgroup, mailing list ... [or] to provide a block of data, such as the result of submitting a form, to a data-handling process. - The HTTP specification defines a fundamental concept of web interaction in two distinct phases: + The above definitions explain fundamental concepts of web interaction. They define input/output as a process consisting of two phases. It is important that both phases are initiated by browser. + * On ''render phase'' (''output phase'', ''render response phase'') the browser retrieves information identified by request URI. This can be a static page, an output of some process or a visual representation of a resource that corresponds to URI. * On ''input phase'' (''submit phase'', ''event phase'', ''apply request values phase'') the browser sends input data to an URI, usually by submitting an HTML form. == Action And Setup/Submit Pattern == - Two-phase request/response concept is traditionally implemented in Struts with setup/submit pattern: + Two-phase input/output process is traditionally implemented in Struts with setup/submit pattern: * ''setup action'' (''pre-action'', ''output action'', ''render action'') prepares output data for display. It loads data from database, queues it into one or more arbitrary objects located in the request or session scope, then forwards to a view, usually a JSP page. * ''submit action'' (''post-action'', ''input action'', ''accept action'', ''event action'') processes input data from web form and redisplays the web form if errors has been found. If input does not contain errors, submit action updates application state and forwards to a success page. - One of the reasons of splitting this functionality into two actions is that Action class uses just one {{{execute()}}} method to handle all kinds of requests. (Servlet has separate {{{doGet()}}} and {{{doPost()}}} methods.) - inline:setup_submit_improved.gif - - inline:icon_alert.gif The above diagram shows the improved Setup/Submit Pattern. To see the original Setup/Submit Pattern click here (TODO). A typical Setup Action will often implement the following logic in its {{{execute}}} method: @@ -88, +83 @@ * Update the server-side objects that will be used to create the next page of the user interface. These objects would typically be request scope or session scope beans, depending on how long you need to keep these items. * Return an appropriate !ActionForward object that identifies the next web resource. + See tips on using setup/submit pattern and code sample (TODO link) + The flip side of Struts flexibility is greater complexity of a most common use case of a web application. == Action As Event Dispatcher == - Event Dispatcher handles a group of related messages (events, commands). These messages often correspond to one business object, like classic Create, Retrieve, Update and Delete messages that identify
[Struts Wiki] Update of "StrutsManualActionClasses" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsManualActionClasses -- * ''setup action'' (''pre-action'', ''output action'', ''render action'') prepares output data for display. It loads data from database, queues it into one or more arbitrary objects located in the request or session scope, then forwards to a view, usually a JSP page. * ''submit action'' (''post-action'', ''input action'', ''accept action'', ''event action'') processes input data from web form and redisplays the web form if errors has been found. If input does not contain errors, submit action updates application state and forwards to a success page. - inline:setup_submit_improved.gif + inline:setup_submit_simple.gif A typical Setup Action will often implement the following logic in its {{{execute}}} method: @@ -109, +109 @@ Using one Action class to handle both input/render phases of a web resource brings the complexity of Struts web form management down to the level of ASP.NET while retaining the flexibility. - inline:web_resource_asp.gif + inline:web_resource_asp_simple.gif See tips on using web resource manager and code sample (TODO link)
[Struts Wiki] Update of "StrutsManualActionClasses" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsManualActionClasses -- - '''Attention: this page describes functionality that is not yet available in GA Struts release! Work in progress!''' - - == Action Classes == - The goal of an Action class is to process a request and return an ActionForward object. Action class can either implement a ''stateless service'' like "search", or can manage a logical ''web resource'' like "Customer". !ActionForward object identifies where control should be transferred to provide the appropriate response, and usually designates either another Action (see [:ActionChaining:action chaining]) or a presentation page. Struts is agnostic to presentation technology, so response can be generated using JSP file, Tile definition, Velocity template, XSLT stylesheet or other rendering engine. !ActionForward object represents a logical outcome of processing a request. By not defining a specific menu choice or a page URL it is possible to separate state of a resource from its visual representation. + + Action class handles all incoming requests with one callback method, {{{execute()}}}. Two overloaded versions of this method are available. Choosing one or another depends on your servlet environment: + + {{{public ActionForward execute(ActionMapping mapping, + ActionForm form, + ServletRequest request, + ServletResponse response) + throws Exception; + + public ActionForward execute(ActionMapping mapping, + ActionForm form, + HttpServletRequest request, + HttpServletResponse response) + throws Exception;}}} + + Since the majority of teams using the framework are focused on building web applications, most projects will only use the "!HttpServletRequest" version. A non-HTTP execute() method has been provided for applications that are not specifically geared towards the HTTP protocol. The following picture illustrates a simple "render page" use case implemented with Struts and ASP.NET. In Struts the requests means something like "Process request data and transfer control to a JSP page that corresponds to result of the processing". In ASP.NET the request simply means "Display the page". @@ -30, +42 @@ * If there's more than one response, go to the list page (as per the previous behavior). Note that the code of the search action is not affected by this decision. In Struts the outcomes returned by an action are much more stable than the presentation locations. On contrary, in ASP.NET the outcome is simply the page that was requested. - - Action class handles all incoming requests with one callback method, {{{execute()}}}. Two overloaded versions of this method are available. Choosing one or another depends on your servlet environment: - - {{{public ActionForward execute(ActionMapping mapping, - ActionForm form, - ServletRequest request, - ServletResponse response) - throws Exception; - - public ActionForward execute(ActionMapping mapping, - ActionForm form, - HttpServletRequest request, - HttpServletResponse response) - throws Exception;}}} - - Since the majority of teams using the framework are focused on building web applications, most projects will only use the "!HttpServletRequest" version. A non-HTTP execute() method has been provided for applications that are not specifically geared towards the HTTP protocol. == Action And Web Forms == @@ -119, +115 @@ inline:action_component_generic.gif - Struts 1.4 allows to create web components using Struts Action class for event processing, JSP for presentation and an optional Javascript helper for in-place update in Ajax mode. + Struts 1.4 will allow creating web components using Struts Action class for event processing, JSP for presentation and an optional Javascript helper for in-place update in Ajax mode. See [:StrutsManualActionWebComponent:Developing Web Components With Struts] on using web component manager and code samples.
[Struts Wiki] Update of "StrutsManualActionClasses" by MichaelJouravlev
Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsManualActionClasses -- Since the majority of teams using the framework are focused on building web applications, most projects will only use the "!HttpServletRequest" version. A non-HTTP execute() method has been provided for applications that are not specifically geared towards the HTTP protocol. - The following picture illustrates a simple "render page" use case implemented with Struts and ASP.NET. In Struts the requests means something like "Process request data and transfer control to a JSP page that corresponds to result of the processing". In ASP.NET the request simply means "Display the page". - - inline:basic_action_asp.gif - '''Example''' - Consider the Action that performs a search. The author of this code should not bother about specifics of presentation of the search results. His only job is to say "what happened" after the search took place. + Consider the Action that performs a search. The author of this code should not bother neither about how exactly the search criteria is obtained, nor about how the search results are presented. His only job is to say "what happened" after the search took place. Logically, there are three interesting outcomes: * No results were found => outcome "none". @@ -42, +38 @@ * If there's more than one response, go to the list page (as per the previous behavior). Note that the code of the search action is not affected by this decision. In Struts the outcomes returned by an action are much more stable than the presentation locations. On contrary, in ASP.NET the outcome is simply the page that was requested. + + == Using Action To Display A Web Page == + + You might be wondering now, how does an Action class obtain input and render output in a real-life application. Let us start with output, like creating a read-only page that prints out current time. + + JSP is a default view technology used when developing with Struts. JSP creates dynamic web content by reading information from various Java beans floating around in page, request, session or application scope. In a Model 1 application these beans are put into scope by the code that resides in JSP page itself. + + A standard practice to display a dynamic page in a Struts application is to use Action class "in front" of a JSP page. Action class creates needed beans, puts them in an appropriate context, and forwards control to a JSP page that reads information from these beans and displays it. Action class has access to all contexts available from JSP page except PageContext. In a simple case such ''setup action'' does not have to accept parameters, its only purpose is to prepare output data for rendering. + + The following picture illustrates a "render page" use case implemented with Struts and ASP.NET. + + inline:basic_action_asp.gif == Action And Web Forms ==
svn commit: r418181 - /struts/maven/trunk/pom/pom.xml
Author: wsmoak Date: Thu Jun 29 22:24:53 2006 New Revision: 418181 URL: http://svn.apache.org/viewvc?rev=418181&view=rev Log: Added Paul and Bob as committers. Modified: struts/maven/trunk/pom/pom.xml Modified: struts/maven/trunk/pom/pom.xml URL: http://svn.apache.org/viewvc/struts/maven/trunk/pom/pom.xml?rev=418181&r1=418180&r2=418181&view=diff == --- struts/maven/trunk/pom/pom.xml (original) +++ struts/maven/trunk/pom/pom.xml Thu Jun 29 22:24:53 2006 @@ -303,9 +303,25 @@ + Paul Benedict + + + +Committer + + + Michael Jouravlev mikus mikus at apache.org + +Committer + + + + Bob Lee + crazybob + crazybob at apache.org Committer