Author: rich
Date: Wed Jan 12 16:12:14 2005
New Revision: 125004

URL: http://svn.apache.org/viewcvs?view=rev&rev=125004
Log:
Added a first cut at submitting a form bean to an action from a JSF page, 
without going through an annotated command handler in a JSF backing class.  To 
use this, simply add a "submitFormBean" attribute tag inside a commandButton or 
a commandHandler, like this:

    <h:commandButton action="submit" value="send bean through attribute">
        <f:attribute name="submitFormBean" value="backing.theForm"/>
    </h:commandButton>

Note that the value is a *binding expression*, but since it needs to be 
evaluated when the action is raised (and not just when the page is loaded), we 
can't let JSF evaluate it -- thus, it's not surrounded by "#{}".  In this 
particular example, we're binding to a property in the backing class, but you 
can bind to anything that's visible to the JSF components.

An example of this is under netui/test/webapps/jsf/jsfWeb/submitFormBean.

Also:
    - Fixed the JSF DRTs to run again.  The app had gotten itself very out of 
date.
    - Fixed NPEs related to loss of Struts ModuleConfig objects in 
FlowController after session serialization/deserialization.
    - Fixed an NPE in AutoRegisterActionServlet that occurred when a 
nonexistant ModuleConfigLocator was registered in netui-config.xml.


DRT: netui (WinXP)
BB: self (linux)


Added:
   
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/src/backingControls/
   
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/src/backingControls/TestControl.java
      - copied unchanged from r124933, 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/backingControls/TestControl.java
   
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/src/backingControls/TestControlImpl.jcs
      - copied unchanged from r124933, 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/backingControls/TestControlImpl.jcs
   incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/submitFormBean/
   
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/submitFormBean/Controller.jpf
   (contents, props changed)
   
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/submitFormBean/input.jsfb 
  (contents, props changed)
   
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/submitFormBean/input.jsp  
 (contents, props changed)
   
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/submitFormBean/output.jsp 
  (contents, props changed)
   
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/SubmitFormBean.xml
   (contents, props changed)
Removed:
   
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/backingControls/TestControl.java
   
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/backingControls/TestControlImpl.jcs
Modified:
   incubator/beehive/trunk/netui/ant/webappTemplate.xml
   
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java
   
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java
   
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowActionListener.java
   incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/web.xml
   
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/bindingInFaces/BindingInFacesController.jpf
   
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/bindingInFaces/page1.jsp
   
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/bindingInFaces/results.jsp
   incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/index/Controller.jpf
   
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/initMemberFields/InitMemberFieldsController.jpf
   
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/initMemberFields/page1.jsfb
   
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/config/testRecorder-tests.xml
   
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/BindingInFaces.xml

Modified: incubator/beehive/trunk/netui/ant/webappTemplate.xml
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/ant/webappTemplate.xml?view=diff&rev=125004&p1=incubator/beehive/trunk/netui/ant/webappTemplate.xml&r1=125003&p2=incubator/beehive/trunk/netui/ant/webappTemplate.xml&r2=125004
==============================================================================
--- incubator/beehive/trunk/netui/ant/webappTemplate.xml        (original)
+++ incubator/beehive/trunk/netui/ant/webappTemplate.xml        Wed Jan 12 
16:12:14 2005
@@ -206,7 +206,6 @@
         <include name="jsf_core.tldx"/>
         <include name="html_basic.tld"/>
         <include name="html_basic.tldx"/>
-        <include name="faces-config.xml"/>
     </patternset>
 
     <patternset id="netui.jars">

Modified: 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java?view=diff&rev=125004&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java&r1=125003&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java&r2=125004
==============================================================================
--- 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java
 (original)
+++ 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/AutoRegisterActionServlet.java
 Wed Jan 12 16:12:14 2005
@@ -159,8 +159,12 @@
         try
         {
             Class locatorClass = DiscoveryUtils.loadServiceClass( 
locatorClassName, ModuleConfigLocator.class );
-            ModuleConfigLocator locator = ( ModuleConfigLocator ) 
locatorClass.newInstance();
-            locators.add( locator );
+            
+            if ( locatorClass != null )  // previous call will log an error if 
it can't find the class
+            {
+                ModuleConfigLocator locator = ( ModuleConfigLocator ) 
locatorClass.newInstance();
+                locators.add( locator );
+            }
         }
         catch ( IllegalAccessException e )
         {

Modified: 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java?view=diff&rev=125004&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java&r1=125003&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java&r2=125004
==============================================================================
--- 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java
     (original)
+++ 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/FlowControllerFactory.java
     Wed Jan 12 16:12:14 2005
@@ -456,7 +456,7 @@
                     // in the session so the previous page flow's onDestroy() 
gets called before the new one's
                     // onCreate()).
                     //
-                    if ( createdNew ) retVal.reinitialize( request, response, 
servletContext );
+                    retVal.reinitialize( request, response, servletContext );
                     retVal.persistInSession( request, response );
                     if ( createdNew ) retVal.create( request, response, 
servletContext );
                 }

Modified: 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowActionListener.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowActionListener.java?view=diff&rev=125004&p1=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowActionListener.java&r1=125003&p2=incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowActionListener.java&r2=125004
==============================================================================
--- 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowActionListener.java
     (original)
+++ 
incubator/beehive/trunk/netui/src/pageflow/org/apache/beehive/netui/pageflow/faces/internal/PageFlowActionListener.java
     Wed Jan 12 16:12:14 2005
@@ -17,9 +17,17 @@
  */
 package org.apache.beehive.netui.pageflow.faces.internal;
 
+import org.apache.beehive.netui.pageflow.internal.RequestValues;
+import org.apache.beehive.netui.pageflow.internal.InternalUtils;
+import org.apache.struts.action.ActionForm;
+
 import javax.faces.event.ActionListener;
 import javax.faces.event.ActionEvent;
 import javax.faces.event.AbortProcessingException;
+import javax.faces.context.FacesContext;
+import javax.faces.el.ValueBinding;
+import javax.faces.component.UIComponent;
+import javax.servlet.ServletRequest;
 
 public class PageFlowActionListener
         implements ActionListener
@@ -33,5 +41,22 @@
     
     public void processAction( ActionEvent event ) throws 
AbortProcessingException
     {
+        Object submitFormBean = event.getComponent().getAttributes().get( 
"submitFormBean" );
+        
+        if ( submitFormBean != null )
+        {
+            FacesContext context = FacesContext.getCurrentInstance();
+            
+            ValueBinding binding = 
context.getApplication().createValueBinding( "#{" + submitFormBean + '}' );
+            Object beanInstance = binding.getValue( context );
+            Object request = context.getExternalContext().getRequest();
+            if ( request instanceof ServletRequest )
+            {
+                ActionForm wrappedFormBean = InternalUtils.wrapFormBean( 
beanInstance );
+                RequestValues.setForwardedForm( ( ServletRequest ) request, 
wrappedFormBean );
+            }
+        }
+        
+        _delegate.processAction( event );
     }
 }

Copied: 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/src/backingControls/TestControl.java
 (from r124933, 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/backingControls/TestControl.java)
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/src/backingControls/TestControl.java?view=diff&rev=125004&p1=incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/backingControls/TestControl.java&r1=124933&p2=incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/src/backingControls/TestControl.java&r2=125004
==============================================================================

Copied: 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/src/backingControls/TestControlImpl.jcs
 (from r124933, 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/backingControls/TestControlImpl.jcs)
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/src/backingControls/TestControlImpl.jcs?view=diff&rev=125004&p1=incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/backingControls/TestControlImpl.jcs&r1=124933&p2=incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/src/backingControls/TestControlImpl.jcs&r2=125004
==============================================================================

Modified: incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/web.xml
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/web.xml?view=diff&rev=125004&p1=incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/web.xml&r1=125003&p2=incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/web.xml&r2=125004
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/web.xml       
(original)
+++ incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/WEB-INF/web.xml       
Wed Jan 12 16:12:14 2005
@@ -5,12 +5,6 @@
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd";
     version="2.4">
 
-    <!-- Make sure the secure forwards are turned on -->
-    <context-param>
-       <param-name>jpf-secure-forwards</param-name>
-       <param-value>true</param-value>
-    </context-param>
-
 <!--
     <context-param>
         <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
@@ -111,50 +105,14 @@
   <!-- Struts Action Servlet / PageFlowController Configuration (with 
debugging) -->
   <servlet>
     <servlet-name>action</servlet-name>
-    
<servlet-class>org.apache.beehive.netui.pageflow.DynamicSubappActionServlet</servlet-class>
+    
<servlet-class>org.apache.beehive.netui.pageflow.PageFlowActionServlet</servlet-class>
 
     <init-param>
       <param-name>config</param-name>
-      <param-value>/WEB-INF/struts-config.xml</param-value>
-    </init-param>
-
-    <init-param>
-      <param-name>config/-global</param-name>
-      
<param-value>/WEB-INF/.pageflow-struts-generated/jpf-struts-config--global.xml</param-value>
+      
<param-value>/WEB-INF/.pageflow-struts-generated/jpf-struts-config.xml</param-value>
     </init-param>
 
     <init-param>
-      <param-name>moduleConfigLocators</param-name>
-      
<param-value>moduleConfigLocator.Locator1,moduleConfigLocator.Locator2</param-value>
-    </init-param>
-
-         <!--
-            The <init-param> entry below is for Test13 which is a pure 100%
-            struts test.  The "application" param points to a properties file
-            that contains the tests error messages.  This is valid in struts.
-         -->
-        <init-param>
-            <param-name>application</param-name>
-            <param-value>miscJpf.test13.test13</param-value>
-        </init-param>
-        <init-param>
-            <param-name>config/formBeanTest1</param-name>
-            
<param-value>/WEB-INF/src/formBean/test1/struts-config-formBean.xml</param-value>
-        </init-param>
-        <init-param>
-            <param-name>config/interOp/tests</param-name>
-            <param-value>/WEB-INF/interOp/struts-config-tests.xml</param-value>
-        </init-param>
-        <init-param>
-            <param-name>config/formBeanTest2</param-name>
-            
<param-value>/WEB-INF/src/formBean/test2/struts-config-formBean.xml</param-value>
-        </init-param>
-        <init-param>
-            <param-name>config/miscJpf/test13</param-name>
-            
<param-value>/WEB-INF/src/miscJpf/test13/struts-config-test13.xml</param-value>
-        </init-param>
-
-    <init-param>
       <param-name>debug</param-name>
       <param-value>2</param-value>
     </init-param>
@@ -282,112 +240,5 @@
     </taglib>
 
   </jsp-config>
-
-   <security-constraint>
-      <web-resource-collection>
-        <web-resource-name>Secure PageFlow - all</web-resource-name>
-        <url-pattern>/security/secure.do</url-pattern>
-        <url-pattern>/security/back_secure.do</url-pattern>
-      </web-resource-collection>
-      <user-data-constraint>
-         <transport-guarantee>CONFIDENTIAL</transport-guarantee>
-      </user-data-constraint>
-  </security-constraint>
-  <security-constraint>
-      <web-resource-collection>
-        <web-resource-name>Unsecure PageFlow - begin</web-resource-name>
-        <url-pattern>/security/unsecure.do</url-pattern>
-        <url-pattern>/security/back_unsecure.do</url-pattern>
-      </web-resource-collection>
-      <user-data-constraint>
-         <transport-guarantee>NONE</transport-guarantee>
-      </user-data-constraint>
-  </security-constraint>
-
-  <security-constraint>
-      <web-resource-collection>
-        <web-resource-name>miniTests-pageFlowUtils-secure</web-resource-name>
-        <url-pattern>/miniTests/pageFlowUtils/secure/*</url-pattern>
-        <url-pattern>/miniTests/pageFlowUtils/secureFoo.do</url-pattern>
-        <url-pattern>*.pageFlowUtilsSecure</url-pattern>
-      </web-resource-collection>
-      <user-data-constraint>
-         <transport-guarantee>CONFIDENTIAL</transport-guarantee>
-      </user-data-constraint>
-  </security-constraint>
-  <security-constraint>
-      <web-resource-collection>
-        <web-resource-name>miniTests-pageFlowUtils-unsecure</web-resource-name>
-        <url-pattern>/miniTests/pageFlowUtils/unsecure/*</url-pattern>
-        <url-pattern>/miniTests/pageFlowUtils/unsecureFoo.do</url-pattern>
-        <url-pattern>*.pageFlowUtilsUnsecure</url-pattern>
-      </web-resource-collection>
-      <user-data-constraint>
-         <transport-guarantee>NONE</transport-guarantee>
-      </user-data-constraint>
-  </security-constraint>
-
-  <security-constraint>
-      <web-resource-collection>
-        <web-resource-name>for SecureLinks test</web-resource-name>
-        <url-pattern>/tags/secureLinks/secure/*</url-pattern>
-        
<url-pattern>/tags/secureLinks/linkToSecure/secureAction.do</url-pattern>
-      </web-resource-collection>
-      <user-data-constraint>
-         <transport-guarantee>CONFIDENTIAL</transport-guarantee>
-      </user-data-constraint>
-  </security-constraint>
-
-  <security-role>
-      <description>Test role for /miniTests/roles</description>
-      <role-name>GoodRole1</role-name>
-  </security-role>
-  <security-role>
-      <description>Test role for /miniTests/roles</description>
-      <role-name>GoodRole2</role-name>
-  </security-role>
-  <security-role>
-      <description>Test role for /miniTests/roles</description>
-      <role-name>BadRole</role-name>
-  </security-role>
-
-    <!-- Security constraints for the jpfSecurity tests -->
-    <security-constraint>
-       <web-resource-collection>
-          <web-resource-name>Jpf Security on - filters</web-resource-name>
-          <url-pattern>/jpfSecurity/test1/secure1.do</url-pattern>
-          <url-pattern>/jpfSecurity/test2/secure1.do</url-pattern>
-          <url-pattern>/jpfSecurity/test3/secure1.do</url-pattern>
-          <url-pattern>/pageInput/test11/secure1.do</url-pattern>
-          <url-pattern>/miscJpf/bug38484/action1.do</url-pattern>
-          <url-pattern>/jpfScopedForms/test50/secure1.do</url-pattern>
-          <url-pattern>/resources/images/secureButton.jpg</url-pattern>
-          <url-pattern>/scopedJpf/jpfTest3/jpf1/begin.do</url-pattern>
-          <url-pattern>/scopedJpf/jpfTest3/jpf2/Jpf2.jpf</url-pattern>
-          <url-pattern>/singletonJpf/jpfTest9/jpf2/Jpf2.jpf</url-pattern>
-
-          </web-resource-collection>
-       <user-data-constraint>
-          <transport-guarantee>CONFIDENTIAL</transport-guarantee>
-       </user-data-constraint>
-    </security-constraint>
-    <security-constraint>
-       <display-name>Security Constraints</display-name>
-       <web-resource-collection>
-          <web-resource-name>Jpf Security off - filters</web-resource-name>
-          <url-pattern>/jpfSecurity/test1/action2.do</url-pattern>
-          <url-pattern>/resources/jsp/done.jsp</url-pattern>
-          <url-pattern>/resources/jsp/error.jsp</url-pattern>
-          <url-pattern>/pageInput/test11/action2.do</url-pattern>
-          <url-pattern>/miscJpf/bug38484/action2.do</url-pattern>
-          <url-pattern>/jpfScopedForms/test50/action2.do</url-pattern>
-          <url-pattern>/scopedJpf/jpfTest3/jpf1/unsecure.do</url-pattern>
-          <url-pattern>/scopedJpf/jpfTest3/jpf2/unsecure.do</url-pattern>
-          <url-pattern>/singletonJpf/jpfTest9/jpf1/Jpf1.jpf</url-pattern>
-          </web-resource-collection>
-       <user-data-constraint>
-          <transport-guarantee>NONE</transport-guarantee>
-       </user-data-constraint>
-    </security-constraint>
 
 </web-app>

Deleted: 
/incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/backingControls/TestControl.java
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/backingControls/TestControl.java?view=auto&rev=125003
==============================================================================

Deleted: 
/incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/backingControls/TestControlImpl.jcs
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/backingControls/TestControlImpl.jcs?view=auto&rev=125003
==============================================================================

Modified: 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/bindingInFaces/BindingInFacesController.jpf
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/bindingInFaces/BindingInFacesController.jpf?view=diff&rev=125004&p1=incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/bindingInFaces/BindingInFacesController.jpf&r1=125003&p2=incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/bindingInFaces/BindingInFacesController.jpf&r2=125004
==============================================================================
--- 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/bindingInFaces/BindingInFacesController.jpf
   (original)
+++ 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/bindingInFaces/BindingInFacesController.jpf
   Wed Jan 12 16:12:14 2005
@@ -5,10 +5,12 @@
 import org.apache.beehive.netui.pageflow.Forward;
 import org.apache.beehive.netui.pageflow.annotations.Jpf;
 
-/**
- * This is the default controller for a blank web application.
- */
[EMAIL PROTECTED]
+
[EMAIL PROTECTED](
+    sharedFlowRefs={
+        @Jpf.SharedFlowRef(name="sf", type=SharedFlow.class)
+    }
+)
 public class BindingInFacesController extends PageFlowController
 {
     private String _someProperty = "page flow property";
@@ -44,18 +46,3 @@
     }
 
 }
-
[EMAIL PROTECTED](value = {
-    "<!-- This data is auto-generated. Hand-editing this section is not 
recommended. -->",
-    "<view-properties>",
-    "<pageflow-object 
id='pageflow:/bindingInFaces/BindingInFacesController.jpf'/>",
-    "<pageflow-object id='action:begin.do'><property value='80' 
name='x'/><property value='100' name='y'/></pageflow-object>",
-    "<pageflow-object id='page:page1.jsp'><property value='260' 
name='x'/><property value='240' name='y'/></pageflow-object>",
-    "<pageflow-object id='forward:[EMAIL PROTECTED]:begin.do@'><property 
value='116,170,170,224' name='elbowsX'/><property value='92,92,232,232' 
name='elbowsY'/><property value='East_1' name='fromPort'/><property 
value='West_1' name='toPort'/><property value='success' 
name='label'/></pageflow-object>",
-    "<pageflow-object id='action:submit.do'><property value='400' 
name='x'/><property value='240' name='y'/></pageflow-object>",
-    "<pageflow-object id='page:results.jsp'><property value='600' 
name='x'/><property value='240' name='y'/></pageflow-object>",
-    "<pageflow-object id='forward:[EMAIL PROTECTED]:submit.do@'><property 
value='436,500,500,564' name='elbowsX'/><property value='232,232,232,232' 
name='elbowsY'/><property value='East_1' name='fromPort'/><property 
value='West_1' name='toPort'/><property value='success' 
name='label'/></pageflow-object>",
-    "<pageflow-object id='action-call:@page:[EMAIL 
PROTECTED]@action:begin.do@'><property value='564,340,340,116' 
name='elbowsX'/><property value='221,221,103,103' name='elbowsY'/><property 
value='West_0' name='fromPort'/><property value='East_2' 
name='toPort'/></pageflow-object>",
-    "</view-properties>"
-})
-interface VIEW_PROPERTIES { }
\ No newline at end of file

Modified: 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/bindingInFaces/page1.jsp
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/bindingInFaces/page1.jsp?view=diff&rev=125004&p1=incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/bindingInFaces/page1.jsp&r1=125003&p2=incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/bindingInFaces/page1.jsp&r2=125004
==============================================================================
--- 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/bindingInFaces/page1.jsp  
    (original)
+++ 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/bindingInFaces/page1.jsp  
    Wed Jan 12 16:12:14 2005
@@ -15,7 +15,7 @@
                 <br/>
                 #{pageFlow.someProperty}: <h:inputText 
value="#{pageFlow.someProperty}"/>
                 <br/>
-                #{sharedFlow.someProperty}: <h:inputText 
value="#{sharedFlow.someProperty}"/>
+                #{sharedFlow.sf.someProperty}: <h:inputText 
value="#{sharedFlow.sf.someProperty}"/>
                 <br/>
                 #{backing.someProperty}: <h:inputText 
value="#{backing.someProperty}"/>
                 <br/>

Modified: 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/bindingInFaces/results.jsp
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/bindingInFaces/results.jsp?view=diff&rev=125004&p1=incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/bindingInFaces/results.jsp&r1=125003&p2=incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/bindingInFaces/results.jsp&r2=125004
==============================================================================
--- 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/bindingInFaces/results.jsp
    (original)
+++ 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/bindingInFaces/results.jsp
    Wed Jan 12 16:12:14 2005
@@ -11,10 +11,10 @@
     <netui:body>
         &#36;{pageFlow.someProperty}: <netui:span 
value="${pageFlow.someProperty}"/>
         <br/>
-        &#36;{sharedFlow.someProperty}: <netui:span 
value="${sharedFlow.someProperty}"/>
+        &#36;{sharedFlow.sf.someProperty}: <netui:span 
value="${sharedFlow.sf.someProperty}"/>
         <br/>
         <netui:anchor action="begin">start over</netui:anchor>
     </netui:body>
 </netui:html>
 
-  
\ No newline at end of file
+  

Modified: 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/index/Controller.jpf
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/index/Controller.jpf?view=diff&rev=125004&p1=incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/index/Controller.jpf&r1=125003&p2=incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/index/Controller.jpf&r2=125004
==============================================================================
--- incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/index/Controller.jpf  
(original)
+++ incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/index/Controller.jpf  
Wed Jan 12 16:12:14 2005
@@ -34,7 +34,7 @@
     simpleActions={
         @Jpf.SimpleAction(name="begin", path="index.jsp")
     },
-    singleton = true
+    longLived = true
 )
 public class Controller extends PageFlowController
 {

Modified: 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/initMemberFields/InitMemberFieldsController.jpf
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/initMemberFields/InitMemberFieldsController.jpf?view=diff&rev=125004&p1=incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/initMemberFields/InitMemberFieldsController.jpf&r1=125003&p2=incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/initMemberFields/InitMemberFieldsController.jpf&r2=125004
==============================================================================
--- 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/initMemberFields/InitMemberFieldsController.jpf
       (original)
+++ 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/initMemberFields/InitMemberFieldsController.jpf
       Wed Jan 12 16:12:14 2005
@@ -5,30 +5,20 @@
 import org.apache.beehive.netui.pageflow.Forward;
 import org.apache.beehive.netui.pageflow.annotations.Jpf;
 
[EMAIL PROTECTED]
[EMAIL PROTECTED](
+    sharedFlowRefs={
+        @Jpf.SharedFlowRef(name="sf", type=InitMemberFieldsSharedFlow.class)
+    }
+)
 public class InitMemberFieldsController extends PageFlowController
 {
-    @Jpf.Action(forwards = {
-        @Jpf.Forward(name = "success",
-                     path = "page1.faces")
-    })
+    @Jpf.Action(
+        forwards={
+            @Jpf.Forward(name = "success", path = "page1.faces")
+        }
+    )
     protected Forward begin()
     {
         return new Forward("success");
-    }
-
-
-    /**
-     * Callback that is invoked when this controller instance is created.
-     */
-    protected void onCreate()
-    {
-    }
-
-    /**
-     * Callback that is invoked when this controller instance is destroyed.
-     */
-    protected void onDestroy(HttpSession session)
-    {
     }
 }

Modified: 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/initMemberFields/page1.jsfb
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/initMemberFields/page1.jsfb?view=diff&rev=125004&p1=incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/initMemberFields/page1.jsfb&r1=125003&p2=incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/initMemberFields/page1.jsfb&r2=125004
==============================================================================
--- 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/initMemberFields/page1.jsfb
   (original)
+++ 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/initMemberFields/page1.jsfb
   Wed Jan 12 16:12:14 2005
@@ -11,7 +11,7 @@
 @Jpf.FacesBacking
 public class page1 extends FacesBackingBean
 {
-    @Jpf.SharedFlowField
+    @Jpf.SharedFlowField(name="sf")
     InitMemberFieldsSharedFlow _sharedFlow;
 
     @Jpf.PageFlowField
@@ -46,4 +46,4 @@
         _pageFlowField.setValue( _pageFlow.getClass().getName() );
         return null;
     }
-}
\ No newline at end of file
+}

Added: 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/submitFormBean/Controller.jpf
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/submitFormBean/Controller.jpf?view=auto&rev=125004
==============================================================================
--- (empty file)
+++ 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/submitFormBean/Controller.jpf
 Wed Jan 12 16:12:14 2005
@@ -0,0 +1,31 @@
+package submitFormBean;
+
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+
[EMAIL PROTECTED](
+    simpleActions={
+        @Jpf.SimpleAction(name="begin", path="input.faces")
+    }
+)
+public class Controller extends PageFlowController
+{
+    @Jpf.Action(
+        forwards = {
+            @Jpf.Forward(name = "success", path = "output.jsp")
+        }
+    )
+    protected Forward submit( SomeFormBean bean )
+    {
+        return new Forward( "success", "foo", bean.getFoo() );
+    }
+
+    public static class SomeFormBean implements java.io.Serializable
+    {
+        private String _foo;
+        public void setFoo( String foo ) { _foo = foo; }
+        public String getFoo() { return _foo; }
+    }
+}

Added: 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/submitFormBean/input.jsfb
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/submitFormBean/input.jsfb?view=auto&rev=125004
==============================================================================
--- (empty file)
+++ 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/submitFormBean/input.jsfb 
    Wed Jan 12 16:12:14 2005
@@ -0,0 +1,23 @@
+package submitFormBean;
+
+import javax.faces.component.UIOutput;
+import org.apache.beehive.netui.pageflow.FacesBackingBean;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
[EMAIL PROTECTED]
+public class input extends FacesBackingBean
+{
+    private Controller.SomeFormBean _theForm = new Controller.SomeFormBean();
+    public void setTheForm( Controller.SomeFormBean bean ) { _theForm = bean; }
+    public Controller.SomeFormBean getTheForm() { return _theForm; }
+
+    @Jpf.CommandHandler(
+        raiseActions={
+            @Jpf.RaiseAction(action="submit", outputFormBean="_theForm")
+        }
+    )
+    public String raisePageFlowAction()
+    {
+        return "submit";
+    }
+}

Added: 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/submitFormBean/input.jsp
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/submitFormBean/input.jsp?view=auto&rev=125004
==============================================================================
--- (empty file)
+++ 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/submitFormBean/input.jsp  
    Wed Jan 12 16:12:14 2005
@@ -0,0 +1,33 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"; %>
+<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"; %>
+
+<html>
+    <head>
+    </head>
+    <body>
+        This is  a test of sending a form bean to a Page Flow action in two 
ways:
+        <ul>
+            <li>through the "submitFormBean" attribute (f:attribute tag) 
inside of h:commandLink or h:commandButton</li>
+            <li>through an <code>outputFormBean</code> attribute on 
@Jpf.RaiseAction in a backing file command handler</li>
+        </ul>
+        <f:view>
+            <h:form>
+                #{backing.theForm.foo}: <h:inputText 
value="#{backing.theForm.foo}"/>
+                <br/>
+                <br/>
+                <h:commandButton action="submit" value="send bean through 
attribute">
+                    <f:attribute name="submitFormBean" 
value="backing.theForm"/>
+                </h:commandButton>
+                <br/>
+                <h:commandButton action="#{backing.raisePageFlowAction}" 
value="send bean through command handler"/>
+                <br/>
+                <h:commandLink action="submit" value="send bean through 
attribute">
+                    <f:attribute name="submitFormBean" 
value="backing.theForm"/>
+                </h:commandLink>
+                <br/>
+                <h:commandLink action="#{backing.raisePageFlowAction}" 
value="send bean through command handler"/>
+            </h:form>
+        </f:view>
+    </body>
+</html>

Added: 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/submitFormBean/output.jsp
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/submitFormBean/output.jsp?view=auto&rev=125004
==============================================================================
--- (empty file)
+++ 
incubator/beehive/trunk/netui/test/webapps/jsf/jsfWeb/submitFormBean/output.jsp 
    Wed Jan 12 16:12:14 2005
@@ -0,0 +1,18 @@
+<%@ page language="java" contentType="text/html;charset=UTF-8"%>
+<%@ taglib prefix="netui" uri="http://beehive.apache.org/netui/tags-html-1.0"%>
+<%@ taglib prefix="netui-data" 
uri="http://beehive.apache.org/netui/tags-databinding-1.0"%>
+<%@ taglib prefix="netui-template" 
uri="http://beehive.apache.org/netui/tags-template-1.0"%>
+
+
+<netui:html>
+    <head>
+        <netui:base/>
+    </head>
+    <netui:body>
+        submitted value: <netui:span value="${pageInput.foo}"/>
+        <br/>
+        <netui:anchor action="begin">start over</netui:anchor>
+    </netui:body>
+</netui:html>
+
+  

Modified: 
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/config/testRecorder-tests.xml
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/config/testRecorder-tests.xml?view=diff&rev=125004&p1=incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/config/testRecorder-tests.xml&r1=125003&p2=incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/config/testRecorder-tests.xml&r2=125004
==============================================================================
--- 
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/config/testRecorder-tests.xml
   (original)
+++ 
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/config/testRecorder-tests.xml
   Wed Jan 12 16:12:14 2005
@@ -99,5 +99,13 @@
                 <category>drt</category>
             </categories>
         </test>
+        <test>
+            <name>SubmitFormBean</name>
+            <description>Test of sending a form bean to a Page Flow action in 
two ways: (1) through the "submitFormBean" attribute (f:attribute tag) inside 
of h:commandLink or h:commandButton, or (2) through an 'outputFormBean' 
attribute on @Jpf.RaiseAction in a backing file command handler.</description>
+            <webapp>jsfWeb</webapp>
+            <categories>
+                <category>drt</category>
+            </categories>
+        </test>
     </tests>
 </testDefinitions>

Modified: 
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/BindingInFaces.xml
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/BindingInFaces.xml?view=diff&rev=125004&p1=incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/BindingInFaces.xml&r1=125003&p2=incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/BindingInFaces.xml&r2=125004
==============================================================================
--- 
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/BindingInFaces.xml
        (original)
+++ 
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/BindingInFaces.xml
        Wed Jan 12 16:12:14 2005
@@ -77,7 +77,7 @@
                 &lt;br/>
                 #{pageFlow.someProperty}: &lt;input type="text" 
name="_id0:_id2" value="page flow property" />
                 &lt;br/>
-                #{sharedFlow.someProperty}: &lt;input type="text" 
name="_id0:_id3" value="shared flow property" />
+                #{sharedFlow.sf.someProperty}: &lt;input type="text" 
name="_id0:_id3" value="shared flow property" />
                 &lt;br/>
                 #{backing.someProperty}: &lt;input type="text" 
name="_id0:_id4" value="backing file property" />
                 &lt;br/>
@@ -200,7 +200,7 @@
                 &lt;br/>
                 #{pageFlow.someProperty}: &lt;input type="text" 
name="_id0:_id2" value="page flow property" />
                 &lt;br/>
-                #{sharedFlow.someProperty}: &lt;input type="text" 
name="_id0:_id3" value="shared flow property" />
+                #{sharedFlow.sf.someProperty}: &lt;input type="text" 
name="_id0:_id3" value="shared flow property" />
                 &lt;br/>
                 #{backing.someProperty}: &lt;input type="text" 
name="_id0:_id4" value="backing file property" />
                 &lt;br/>
@@ -323,7 +323,7 @@
                 &lt;br/>
                 #{pageFlow.someProperty}: &lt;input type="text" 
name="_id0:_id2" value="page flow property" />
                 &lt;br/>
-                #{sharedFlow.someProperty}: &lt;input type="text" 
name="_id0:_id3" value="shared flow property" />
+                #{sharedFlow.sf.someProperty}: &lt;input type="text" 
name="_id0:_id3" value="shared flow property" />
                 &lt;br/>
                 #{backing.someProperty}: &lt;input type="text" 
name="_id0:_id4" value="backing file property" />
                 &lt;br/>
@@ -433,18 +433,20 @@
             <ses:statusCode>200</ses:statusCode>
             <ses:reason/>
             <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 
4.01 Transitional//EN"
-       "http://www.w3.org/TR/html4/loose.dtd";>
+>
 <html lang="en">
+
 <head>
         <base href="http://localhost:8080/jsfWeb/bindingInFaces/results.jsp";>
     </head>
     <body>
         &#36;{pageFlow.someProperty}: <span>changed page flow property</span>
         <br/>
-        &#36;{sharedFlow.someProperty}: <span>changed shared flow 
property</span>
+        &#36;{sharedFlow.sf.someProperty}: <span>changed shared flow 
property</span>
         <br/>
         <a href="/jsfWeb/bindingInFaces/begin.do">start over</a>
     </body>
+
 </html>]]></ses:responseBody>
          </ses:response>
       </ses:test>

Added: 
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/SubmitFormBean.xml
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/SubmitFormBean.xml?view=auto&rev=125004
==============================================================================
--- (empty file)
+++ 
incubator/beehive/trunk/netui/test/webapps/jsf/testRecorder/tests/SubmitFormBean.xml
        Wed Jan 12 16:12:14 2005
@@ -0,0 +1,819 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ses:recorderSession 
xmlns:ses="http://beehive.apache.org/netui/tools/testrecorder/2004/session";>
+   <ses:sessionName>SubmitFormBean</ses:sessionName>
+   <ses:tester>rich</ses:tester>
+   <ses:startDate>12 Jan 2005, 04:37:45.330 PM MST</ses:startDate>
+   <ses:description>Test of sending a form bean to a Page Flow action in two 
ways: (1) through the "submitFormBean" attribute (f:attribute tag) inside of 
h:commandLink or h:commandButton, or (2) through an 'outputFormBean' attribute 
on @Jpf.RaiseAction in a backing file command handler.</ses:description>
+   <ses:tests>
+      <ses:test>
+         <ses:testNumber>1</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/jsfWeb/submitFormBean/Controller.jpf</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters/>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>72C5474AE70B4077776BDBC6A90171ED</ses:value>
+               </ses:cookie>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  
<ses:value>BkZJECYxQ0gonT6INiUZLr2qUwZ98y52JLnKaKC1TpnQrK4qbJeI!1758486163</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-charset</ses:name>
+                  <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-encoding</ses:name>
+                  <ses:value>gzip,deflate</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-us,en;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>keep-alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=72C5474AE70B4077776BDBC6A90171ED; 
JSESSIONID=BkZJECYxQ0gonT6INiUZLr2qUwZ98y52JLnKaKC1TpnQrK4qbJeI!1758486163</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>keep-alive</ses:name>
+                  <ses:value>300</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; 
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody>&lt;html>
+    &lt;head>
+    &lt;/head>
+    &lt;body>
+        This is  a test of sending a form bean to a Page Flow action in two 
ways:
+        &lt;ul>
+            &lt;li>through the "submitFormBean" attribute (f:attribute tag) 
inside of h:commandLink or h:commandButton&lt;/li>
+            &lt;li>through an &lt;code>outputFormBean&lt;/code> attribute on 
@Jpf.RaiseAction in a backing file command handler&lt;/li>
+        &lt;/ul>
+        
+            &lt;form id="_id0" method="post" 
action="/jsfWeb/submitFormBean/input.faces" 
enctype="application/x-www-form-urlencoded">
+
+                #{backing.theForm.foo}: &lt;input type="text" name="_id0:_id1" 
/>
+                &lt;br/>
+                &lt;br/>
+                &lt;input type="submit" name="_id0:_id2" value="send bean 
through attribute" />
+                    
+                
+                &lt;br/>
+                &lt;input type="submit" name="_id0:_id3" value="send bean 
through command handler" />
+                &lt;br/>
+                
+                    
+                &lt;a href="#" 
onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id4'; 
document.forms['_id0'].submit(); return false;">send bean through 
attribute&lt;/a>
+                &lt;br/>
+                &lt;a href="#" 
onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id5'; 
document.forms['_id0'].submit(); return false;">send bean through command 
handler&lt;/a>
+            &lt;input type="hidden" name="_id0" value="_id0" />&lt;input 
type="hidden" name="_id0:_idcl" />&lt;/form>
+        
+    &lt;/body>
+&lt;/html></ses:responseBody>
+         </ses:response>
+      </ses:test>
+      <ses:test>
+         <ses:testNumber>2</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/jsfWeb/submitFormBean/input.faces</ses:uri>
+            <ses:method>POST</ses:method>
+            <ses:parameters>
+               <ses:parameter>
+                  <ses:name>_id0</ses:name>
+                  <ses:value>_id0</ses:value>
+               </ses:parameter>
+               <ses:parameter>
+                  <ses:name>_id0:_id1</ses:name>
+                  <ses:value>aaa</ses:value>
+               </ses:parameter>
+               <ses:parameter>
+                  <ses:name>_id0:_id2</ses:name>
+                  <ses:value>send bean through attribute</ses:value>
+               </ses:parameter>
+               <ses:parameter>
+                  <ses:name>_id0:_idcl</ses:name>
+                  <ses:value/>
+               </ses:parameter>
+            </ses:parameters>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>72C5474AE70B4077776BDBC6A90171ED</ses:value>
+               </ses:cookie>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  
<ses:value>BkZJECYxQ0gonT6INiUZLr2qUwZ98y52JLnKaKC1TpnQrK4qbJeI!1758486163</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-charset</ses:name>
+                  <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-encoding</ses:name>
+                  <ses:value>gzip,deflate</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-us,en;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>keep-alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>content-length</ses:name>
+                  <ses:value>79</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>content-type</ses:name>
+                  <ses:value>application/x-www-form-urlencoded</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=72C5474AE70B4077776BDBC6A90171ED; 
JSESSIONID=BkZJECYxQ0gonT6INiUZLr2qUwZ98y52JLnKaKC1TpnQrK4qbJeI!1758486163</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>keep-alive</ses:name>
+                  <ses:value>300</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>referer</ses:name>
+                  
<ses:value>http://localhost:8080/jsfWeb/submitFormBean/Controller.jpf</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; 
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 
4.01 Transitional//EN"
+>
+<html lang="en">
+
+    <head>
+        <base href="http://localhost:8080/jsfWeb/submitFormBean/output.jsp";>
+    </head>
+    <body>
+        submitted value: <span>aaa</span>
+        <br/>
+        <a href="/jsfWeb/submitFormBean/begin.do">start over</a>
+    </body>
+
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+      <ses:test>
+         <ses:testNumber>3</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/jsfWeb/submitFormBean/begin.do</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters/>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>72C5474AE70B4077776BDBC6A90171ED</ses:value>
+               </ses:cookie>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  
<ses:value>BkZJECYxQ0gonT6INiUZLr2qUwZ98y52JLnKaKC1TpnQrK4qbJeI!1758486163</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-charset</ses:name>
+                  <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-encoding</ses:name>
+                  <ses:value>gzip,deflate</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-us,en;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>keep-alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=72C5474AE70B4077776BDBC6A90171ED; 
JSESSIONID=BkZJECYxQ0gonT6INiUZLr2qUwZ98y52JLnKaKC1TpnQrK4qbJeI!1758486163</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>keep-alive</ses:name>
+                  <ses:value>300</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>referer</ses:name>
+                  
<ses:value>http://localhost:8080/jsfWeb/submitFormBean/input.faces</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; 
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody>&lt;html>
+    &lt;head>
+    &lt;/head>
+    &lt;body>
+        This is  a test of sending a form bean to a Page Flow action in two 
ways:
+        &lt;ul>
+            &lt;li>through the "submitFormBean" attribute (f:attribute tag) 
inside of h:commandLink or h:commandButton&lt;/li>
+            &lt;li>through an &lt;code>outputFormBean&lt;/code> attribute on 
@Jpf.RaiseAction in a backing file command handler&lt;/li>
+        &lt;/ul>
+        
+            &lt;form id="_id0" method="post" 
action="/jsfWeb/submitFormBean/input.faces" 
enctype="application/x-www-form-urlencoded">
+
+                #{backing.theForm.foo}: &lt;input type="text" name="_id0:_id1" 
/>
+                &lt;br/>
+                &lt;br/>
+                &lt;input type="submit" name="_id0:_id2" value="send bean 
through attribute" />
+                    
+                
+                &lt;br/>
+                &lt;input type="submit" name="_id0:_id3" value="send bean 
through command handler" />
+                &lt;br/>
+                
+                    
+                &lt;a href="#" 
onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id4'; 
document.forms['_id0'].submit(); return false;">send bean through 
attribute&lt;/a>
+                &lt;br/>
+                &lt;a href="#" 
onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id5'; 
document.forms['_id0'].submit(); return false;">send bean through command 
handler&lt;/a>
+            &lt;input type="hidden" name="_id0" value="_id0" />&lt;input 
type="hidden" name="_id0:_idcl" />&lt;/form>
+        
+    &lt;/body>
+&lt;/html></ses:responseBody>
+         </ses:response>
+      </ses:test>
+      <ses:test>
+         <ses:testNumber>4</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/jsfWeb/submitFormBean/input.faces</ses:uri>
+            <ses:method>POST</ses:method>
+            <ses:parameters>
+               <ses:parameter>
+                  <ses:name>_id0</ses:name>
+                  <ses:value>_id0</ses:value>
+               </ses:parameter>
+               <ses:parameter>
+                  <ses:name>_id0:_id1</ses:name>
+                  <ses:value>bbb</ses:value>
+               </ses:parameter>
+               <ses:parameter>
+                  <ses:name>_id0:_id3</ses:name>
+                  <ses:value>send bean through command handler</ses:value>
+               </ses:parameter>
+               <ses:parameter>
+                  <ses:name>_id0:_idcl</ses:name>
+                  <ses:value/>
+               </ses:parameter>
+            </ses:parameters>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>72C5474AE70B4077776BDBC6A90171ED</ses:value>
+               </ses:cookie>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  
<ses:value>BkZJECYxQ0gonT6INiUZLr2qUwZ98y52JLnKaKC1TpnQrK4qbJeI!1758486163</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-charset</ses:name>
+                  <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-encoding</ses:name>
+                  <ses:value>gzip,deflate</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-us,en;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>keep-alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>content-length</ses:name>
+                  <ses:value>85</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>content-type</ses:name>
+                  <ses:value>application/x-www-form-urlencoded</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=72C5474AE70B4077776BDBC6A90171ED; 
JSESSIONID=BkZJECYxQ0gonT6INiUZLr2qUwZ98y52JLnKaKC1TpnQrK4qbJeI!1758486163</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>keep-alive</ses:name>
+                  <ses:value>300</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>referer</ses:name>
+                  
<ses:value>http://localhost:8080/jsfWeb/submitFormBean/begin.do</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; 
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 
4.01 Transitional//EN"
+>
+<html lang="en">
+
+    <head>
+        <base href="http://localhost:8080/jsfWeb/submitFormBean/output.jsp";>
+    </head>
+    <body>
+        submitted value: <span>bbb</span>
+        <br/>
+        <a href="/jsfWeb/submitFormBean/begin.do">start over</a>
+    </body>
+
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+      <ses:test>
+         <ses:testNumber>5</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/jsfWeb/submitFormBean/begin.do</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters/>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>72C5474AE70B4077776BDBC6A90171ED</ses:value>
+               </ses:cookie>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  
<ses:value>BkZJECYxQ0gonT6INiUZLr2qUwZ98y52JLnKaKC1TpnQrK4qbJeI!1758486163</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-charset</ses:name>
+                  <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-encoding</ses:name>
+                  <ses:value>gzip,deflate</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-us,en;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>keep-alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=72C5474AE70B4077776BDBC6A90171ED; 
JSESSIONID=BkZJECYxQ0gonT6INiUZLr2qUwZ98y52JLnKaKC1TpnQrK4qbJeI!1758486163</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>keep-alive</ses:name>
+                  <ses:value>300</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>referer</ses:name>
+                  
<ses:value>http://localhost:8080/jsfWeb/submitFormBean/input.faces</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; 
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody>&lt;html>
+    &lt;head>
+    &lt;/head>
+    &lt;body>
+        This is  a test of sending a form bean to a Page Flow action in two 
ways:
+        &lt;ul>
+            &lt;li>through the "submitFormBean" attribute (f:attribute tag) 
inside of h:commandLink or h:commandButton&lt;/li>
+            &lt;li>through an &lt;code>outputFormBean&lt;/code> attribute on 
@Jpf.RaiseAction in a backing file command handler&lt;/li>
+        &lt;/ul>
+        
+            &lt;form id="_id0" method="post" 
action="/jsfWeb/submitFormBean/input.faces" 
enctype="application/x-www-form-urlencoded">
+
+                #{backing.theForm.foo}: &lt;input type="text" name="_id0:_id1" 
/>
+                &lt;br/>
+                &lt;br/>
+                &lt;input type="submit" name="_id0:_id2" value="send bean 
through attribute" />
+                    
+                
+                &lt;br/>
+                &lt;input type="submit" name="_id0:_id3" value="send bean 
through command handler" />
+                &lt;br/>
+                
+                    
+                &lt;a href="#" 
onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id4'; 
document.forms['_id0'].submit(); return false;">send bean through 
attribute&lt;/a>
+                &lt;br/>
+                &lt;a href="#" 
onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id5'; 
document.forms['_id0'].submit(); return false;">send bean through command 
handler&lt;/a>
+            &lt;input type="hidden" name="_id0" value="_id0" />&lt;input 
type="hidden" name="_id0:_idcl" />&lt;/form>
+        
+    &lt;/body>
+&lt;/html></ses:responseBody>
+         </ses:response>
+      </ses:test>
+      <ses:test>
+         <ses:testNumber>6</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/jsfWeb/submitFormBean/input.faces</ses:uri>
+            <ses:method>POST</ses:method>
+            <ses:parameters>
+               <ses:parameter>
+                  <ses:name>_id0</ses:name>
+                  <ses:value>_id0</ses:value>
+               </ses:parameter>
+               <ses:parameter>
+                  <ses:name>_id0:_id1</ses:name>
+                  <ses:value>ccc</ses:value>
+               </ses:parameter>
+               <ses:parameter>
+                  <ses:name>_id0:_idcl</ses:name>
+                  <ses:value>_id0:_id4</ses:value>
+               </ses:parameter>
+            </ses:parameters>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>72C5474AE70B4077776BDBC6A90171ED</ses:value>
+               </ses:cookie>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  
<ses:value>BkZJECYxQ0gonT6INiUZLr2qUwZ98y52JLnKaKC1TpnQrK4qbJeI!1758486163</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-charset</ses:name>
+                  <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-encoding</ses:name>
+                  <ses:value>gzip,deflate</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-us,en;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>keep-alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>content-length</ses:name>
+                  <ses:value>50</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>content-type</ses:name>
+                  <ses:value>application/x-www-form-urlencoded</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=72C5474AE70B4077776BDBC6A90171ED; 
JSESSIONID=BkZJECYxQ0gonT6INiUZLr2qUwZ98y52JLnKaKC1TpnQrK4qbJeI!1758486163</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>keep-alive</ses:name>
+                  <ses:value>300</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>referer</ses:name>
+                  
<ses:value>http://localhost:8080/jsfWeb/submitFormBean/begin.do</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; 
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 
4.01 Transitional//EN"
+>
+<html lang="en">
+
+    <head>
+        <base href="http://localhost:8080/jsfWeb/submitFormBean/output.jsp";>
+    </head>
+    <body>
+        submitted value: <span>ccc</span>
+        <br/>
+        <a href="/jsfWeb/submitFormBean/begin.do">start over</a>
+    </body>
+
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+      <ses:test>
+         <ses:testNumber>7</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/jsfWeb/submitFormBean/begin.do</ses:uri>
+            <ses:method>GET</ses:method>
+            <ses:parameters/>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>72C5474AE70B4077776BDBC6A90171ED</ses:value>
+               </ses:cookie>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  
<ses:value>BkZJECYxQ0gonT6INiUZLr2qUwZ98y52JLnKaKC1TpnQrK4qbJeI!1758486163</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-charset</ses:name>
+                  <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-encoding</ses:name>
+                  <ses:value>gzip,deflate</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-us,en;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>keep-alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=72C5474AE70B4077776BDBC6A90171ED; 
JSESSIONID=BkZJECYxQ0gonT6INiUZLr2qUwZ98y52JLnKaKC1TpnQrK4qbJeI!1758486163</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>keep-alive</ses:name>
+                  <ses:value>300</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>referer</ses:name>
+                  
<ses:value>http://localhost:8080/jsfWeb/submitFormBean/input.faces</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; 
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody>&lt;html>
+    &lt;head>
+    &lt;/head>
+    &lt;body>
+        This is  a test of sending a form bean to a Page Flow action in two 
ways:
+        &lt;ul>
+            &lt;li>through the "submitFormBean" attribute (f:attribute tag) 
inside of h:commandLink or h:commandButton&lt;/li>
+            &lt;li>through an &lt;code>outputFormBean&lt;/code> attribute on 
@Jpf.RaiseAction in a backing file command handler&lt;/li>
+        &lt;/ul>
+        
+            &lt;form id="_id0" method="post" 
action="/jsfWeb/submitFormBean/input.faces" 
enctype="application/x-www-form-urlencoded">
+
+                #{backing.theForm.foo}: &lt;input type="text" name="_id0:_id1" 
/>
+                &lt;br/>
+                &lt;br/>
+                &lt;input type="submit" name="_id0:_id2" value="send bean 
through attribute" />
+                    
+                
+                &lt;br/>
+                &lt;input type="submit" name="_id0:_id3" value="send bean 
through command handler" />
+                &lt;br/>
+                
+                    
+                &lt;a href="#" 
onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id4'; 
document.forms['_id0'].submit(); return false;">send bean through 
attribute&lt;/a>
+                &lt;br/>
+                &lt;a href="#" 
onclick="document.forms['_id0']['_id0:_idcl'].value='_id0:_id5'; 
document.forms['_id0'].submit(); return false;">send bean through command 
handler&lt;/a>
+            &lt;input type="hidden" name="_id0" value="_id0" />&lt;input 
type="hidden" name="_id0:_idcl" />&lt;/form>
+        
+    &lt;/body>
+&lt;/html></ses:responseBody>
+         </ses:response>
+      </ses:test>
+      <ses:test>
+         <ses:testNumber>8</ses:testNumber>
+         <ses:request>
+            <ses:protocol>HTTP</ses:protocol>
+            <ses:protocolVersion>1.1</ses:protocolVersion>
+            <ses:host>localhost</ses:host>
+            <ses:port>8080</ses:port>
+            <ses:uri>/jsfWeb/submitFormBean/input.faces</ses:uri>
+            <ses:method>POST</ses:method>
+            <ses:parameters>
+               <ses:parameter>
+                  <ses:name>_id0</ses:name>
+                  <ses:value>_id0</ses:value>
+               </ses:parameter>
+               <ses:parameter>
+                  <ses:name>_id0:_id1</ses:name>
+                  <ses:value>ddd</ses:value>
+               </ses:parameter>
+               <ses:parameter>
+                  <ses:name>_id0:_idcl</ses:name>
+                  <ses:value>_id0:_id5</ses:value>
+               </ses:parameter>
+            </ses:parameters>
+            <ses:cookies>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  <ses:value>72C5474AE70B4077776BDBC6A90171ED</ses:value>
+               </ses:cookie>
+               <ses:cookie>
+                  <ses:name>JSESSIONID</ses:name>
+                  
<ses:value>BkZJECYxQ0gonT6INiUZLr2qUwZ98y52JLnKaKC1TpnQrK4qbJeI!1758486163</ses:value>
+               </ses:cookie>
+            </ses:cookies>
+            <ses:headers>
+               <ses:header>
+                  <ses:name>accept</ses:name>
+                  
<ses:value>text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-charset</ses:name>
+                  <ses:value>ISO-8859-1,utf-8;q=0.7,*;q=0.7</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-encoding</ses:name>
+                  <ses:value>gzip,deflate</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>accept-language</ses:name>
+                  <ses:value>en-us,en;q=0.5</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>connection</ses:name>
+                  <ses:value>keep-alive</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>content-length</ses:name>
+                  <ses:value>50</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>content-type</ses:name>
+                  <ses:value>application/x-www-form-urlencoded</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>cookie</ses:name>
+                  <ses:value>JSESSIONID=72C5474AE70B4077776BDBC6A90171ED; 
JSESSIONID=BkZJECYxQ0gonT6INiUZLr2qUwZ98y52JLnKaKC1TpnQrK4qbJeI!1758486163</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>host</ses:name>
+                  <ses:value>localhost:8080</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>keep-alive</ses:name>
+                  <ses:value>300</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>referer</ses:name>
+                  
<ses:value>http://localhost:8080/jsfWeb/submitFormBean/begin.do</ses:value>
+               </ses:header>
+               <ses:header>
+                  <ses:name>user-agent</ses:name>
+                  <ses:value>Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; 
rv:1.7.5) Gecko/20041107 Firefox/1.0</ses:value>
+               </ses:header>
+            </ses:headers>
+         </ses:request>
+         <ses:response>
+            <ses:statusCode>200</ses:statusCode>
+            <ses:reason/>
+            <ses:responseBody><![CDATA[<!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 
4.01 Transitional//EN"
+>
+<html lang="en">
+
+    <head>
+        <base href="http://localhost:8080/jsfWeb/submitFormBean/output.jsp";>
+    </head>
+    <body>
+        submitted value: <span>ddd</span>
+        <br/>
+        <a href="/jsfWeb/submitFormBean/begin.do">start over</a>
+    </body>
+
+</html>]]></ses:responseBody>
+         </ses:response>
+      </ses:test>
+   </ses:tests>
+   <ses:endDate>12 Jan 2005, 04:40:31.008 PM MST</ses:endDate>
+   <ses:testCount>8</ses:testCount>
+</ses:recorderSession>

Reply via email to