You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by ri...@apache.org on 2005/12/03 06:34:53 UTC

svn commit: r351894 - in /beehive/trunk/samples/netui-samples: src/org/apache/beehive/samples/netui/actioninterceptors/ web/ web/WEB-INF/ web/actioninterceptors/ web/advanced/ web/advanced/actioninterceptors/ web/advanced/actioninterceptors/interceptme...

Author: rich
Date: Fri Dec  2 21:34:36 2005
New Revision: 351894

URL: http://svn.apache.org/viewcvs?rev=351894&view=rev
Log:
- Added an example of using DynaActionForms with page flows.
- Moved the "Action Interceptors" sample to an "Advanced" section on the index page and in the app.


Added:
    beehive/trunk/samples/netui-samples/web/advanced/
    beehive/trunk/samples/netui-samples/web/advanced/actioninterceptors/
      - copied from r344396, beehive/trunk/samples/netui-samples/web/actioninterceptors/
    beehive/trunk/samples/netui-samples/web/advanced/dynaforms/
    beehive/trunk/samples/netui-samples/web/advanced/dynaforms/Controller.java   (with props)
    beehive/trunk/samples/netui-samples/web/advanced/dynaforms/input.jsp   (with props)
    beehive/trunk/samples/netui-samples/web/advanced/dynaforms/merge-struts-config-dynaforms.xml   (with props)
    beehive/trunk/samples/netui-samples/web/advanced/dynaforms/output.jsp   (with props)
Removed:
    beehive/trunk/samples/netui-samples/web/actioninterceptors/
Modified:
    beehive/trunk/samples/netui-samples/src/org/apache/beehive/samples/netui/actioninterceptors/MyInterceptor.java
    beehive/trunk/samples/netui-samples/web/WEB-INF/beehive-netui-config.xml
    beehive/trunk/samples/netui-samples/web/advanced/actioninterceptors/Controller.java
    beehive/trunk/samples/netui-samples/web/advanced/actioninterceptors/interceptme/Controller.java
    beehive/trunk/samples/netui-samples/web/advanced/actioninterceptors/nested/Controller.java
    beehive/trunk/samples/netui-samples/web/index.jsp

Modified: beehive/trunk/samples/netui-samples/src/org/apache/beehive/samples/netui/actioninterceptors/MyInterceptor.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/samples/netui-samples/src/org/apache/beehive/samples/netui/actioninterceptors/MyInterceptor.java?rev=351894&r1=351893&r2=351894&view=diff
==============================================================================
--- beehive/trunk/samples/netui-samples/src/org/apache/beehive/samples/netui/actioninterceptors/MyInterceptor.java (original)
+++ beehive/trunk/samples/netui-samples/src/org/apache/beehive/samples/netui/actioninterceptors/MyInterceptor.java Fri Dec  2 21:34:36 2005
@@ -39,7 +39,7 @@
             throws InterceptorException
     {
         System.out.println("in preAction() in " + getClass().getName());
-        InterceptorForward fwd = new InterceptorForward("/actioninterceptors/nested/Controller.jpf");
+        InterceptorForward fwd = new InterceptorForward("/advanced/actioninterceptors/nested/Controller.jpf");
         setOverrideForward(fwd, context);
         chain.continueChain();
     }

Modified: beehive/trunk/samples/netui-samples/web/WEB-INF/beehive-netui-config.xml
URL: http://svn.apache.org/viewcvs/beehive/trunk/samples/netui-samples/web/WEB-INF/beehive-netui-config.xml?rev=351894&r1=351893&r2=351894&view=diff
==============================================================================
--- beehive/trunk/samples/netui-samples/web/WEB-INF/beehive-netui-config.xml (original)
+++ beehive/trunk/samples/netui-samples/web/WEB-INF/beehive-netui-config.xml Fri Dec  2 21:34:36 2005
@@ -13,11 +13,11 @@
     <!-- This block is used by the "actioninterceptors" sample. -->
     <pageflow-action-interceptors>
         <per-pageflow>
-            <pageflow-uri>/actioninterceptors/interceptme/Controller.jpf</pageflow-uri>
+            <pageflow-uri>/advanced/actioninterceptors/interceptme/Controller.jpf</pageflow-uri>
                 <per-action>
                     <action-name>begin</action-name>
                     <simple-action-interceptor>
-                        <intercept-path>/actioninterceptors/nested/Controller.jpf</intercept-path>
+                        <intercept-path>/advanced/actioninterceptors/nested/Controller.jpf</intercept-path>
                     </simple-action-interceptor>
                 </per-action>
                 <per-action>

Modified: beehive/trunk/samples/netui-samples/web/advanced/actioninterceptors/Controller.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/samples/netui-samples/web/advanced/actioninterceptors/Controller.java?rev=351894&r1=344396&r2=351894&view=diff
==============================================================================
--- beehive/trunk/samples/netui-samples/web/advanced/actioninterceptors/Controller.java (original)
+++ beehive/trunk/samples/netui-samples/web/advanced/actioninterceptors/Controller.java Fri Dec  2 21:34:36 2005
@@ -15,7 +15,7 @@
  *
  * $Header:$
  */
-package actioninterceptors;
+package advanced.actioninterceptors;
 
 import org.apache.beehive.netui.pageflow.annotations.Jpf;
 import org.apache.beehive.netui.pageflow.PageFlowController;

Modified: beehive/trunk/samples/netui-samples/web/advanced/actioninterceptors/interceptme/Controller.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/samples/netui-samples/web/advanced/actioninterceptors/interceptme/Controller.java?rev=351894&r1=344396&r2=351894&view=diff
==============================================================================
--- beehive/trunk/samples/netui-samples/web/advanced/actioninterceptors/interceptme/Controller.java (original)
+++ beehive/trunk/samples/netui-samples/web/advanced/actioninterceptors/interceptme/Controller.java Fri Dec  2 21:34:36 2005
@@ -15,7 +15,7 @@
  *
  * $Header:$
  */
-package actioninterceptors.interceptme;
+package advanced.actioninterceptors.interceptme;
 
 import org.apache.beehive.netui.pageflow.annotations.Jpf;
 import org.apache.beehive.netui.pageflow.PageFlowController;

Modified: beehive/trunk/samples/netui-samples/web/advanced/actioninterceptors/nested/Controller.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/samples/netui-samples/web/advanced/actioninterceptors/nested/Controller.java?rev=351894&r1=344396&r2=351894&view=diff
==============================================================================
--- beehive/trunk/samples/netui-samples/web/advanced/actioninterceptors/nested/Controller.java (original)
+++ beehive/trunk/samples/netui-samples/web/advanced/actioninterceptors/nested/Controller.java Fri Dec  2 21:34:36 2005
@@ -15,7 +15,7 @@
  *
  * $Header:$
  */
-package actioninterceptors.nested;
+package advanced.actioninterceptors.nested;
 
 import org.apache.beehive.netui.pageflow.annotations.Jpf;
 import org.apache.beehive.netui.pageflow.PageFlowController;

Added: beehive/trunk/samples/netui-samples/web/advanced/dynaforms/Controller.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/samples/netui-samples/web/advanced/dynaforms/Controller.java?rev=351894&view=auto
==============================================================================
--- beehive/trunk/samples/netui-samples/web/advanced/dynaforms/Controller.java (added)
+++ beehive/trunk/samples/netui-samples/web/advanced/dynaforms/Controller.java Fri Dec  2 21:34:36 2005
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Header:$
+ */
+package advanced.dynaforms;
+
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+import org.apache.struts.action.DynaActionForm;
+
+// Note: the merge file "merge-struts-config-dynaforms.xml" is in this directory
+// mainly to make the example more encapsulated.  It could also reside in WEB-INF,
+// and be referenced as "/WEB-INF/merge-struts-config-dynaforms.xml".
+
+@Jpf.Controller(
+    strutsMerge="merge-struts-config-dynaforms.xml",
+    simpleActions={
+        @Jpf.SimpleAction(name="begin", path="input.jsp")
+    }
+)
+public class Controller extends PageFlowController
+{
+    @Jpf.Action(
+        forwards={
+            @Jpf.Forward(name="output", path="output.jsp")
+        },
+        // Note: the validation annotations are optional!
+        validatableProperties={
+            @Jpf.ValidatableProperty(
+                displayName="The name",  // could use displayNameKey for internationalization
+                propertyName="name",
+                validateRequired=@Jpf.ValidateRequired(),
+                validateMinLength=@Jpf.ValidateMinLength(chars=2),
+                validateMask=@Jpf.ValidateMask(regex="^[A-Za-z ]*$")
+            ),
+            @Jpf.ValidatableProperty(
+                displayName="The age",  // could use displayNameKey for internationalization
+                propertyName="age",
+                validateRequired=@Jpf.ValidateRequired(),
+                validateRange=@Jpf.ValidateRange(minInt=1, maxInt=150)
+            )
+        },
+        validationErrorForward=@Jpf.Forward(name="failure", path="input.jsp")
+    )
+    public Forward submit(DynaActionForm form)
+    {
+        Forward fwd = new Forward("output");
+        fwd.addActionOutput( "name", form.get( "name" ) );
+        fwd.addActionOutput( "age", form.get( "age" ) );
+        return fwd;
+    }
+}

Propchange: beehive/trunk/samples/netui-samples/web/advanced/dynaforms/Controller.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/samples/netui-samples/web/advanced/dynaforms/input.jsp
URL: http://svn.apache.org/viewcvs/beehive/trunk/samples/netui-samples/web/advanced/dynaforms/input.jsp?rev=351894&view=auto
==============================================================================
--- beehive/trunk/samples/netui-samples/web/advanced/dynaforms/input.jsp (added)
+++ beehive/trunk/samples/netui-samples/web/advanced/dynaforms/input.jsp Fri Dec  2 21:34:36 2005
@@ -0,0 +1,46 @@
+<%@ 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-template:template templatePage="/resources/template/template.jsp">
+    <netui-template:setAttribute name="sampleTitle" value="DynaForms"/>
+    <netui-template:section name="main">
+
+        <p>
+            The form bean for the <code>submit</code> action is a DynaActionForm defined in
+            merge-struts-config-dynaforms.xml.  This file contains the form bean definition (notice
+            that the form bean type is <code>org.apache.beehive.netui.pageflow.DynaFormData</code>)
+            and the addition of <code>name="myDynaForm"</code> to the <code>submit</code> action.
+        </p>
+        <p>
+            The merge-struts-config-dynaforms.xml file is merged into the page flow controller
+            through the <code>strutsMerge</code> attribute on <code>@Jpf.Controller</code> in
+            Controller.java.
+        </p>
+        <p>
+            In this sample, we have added validation annotations on the action that apply to
+            properties on the DynaActionForm.  This of course is optional.
+        </p>
+
+        <hr/>
+        <netui:form action="submit">
+            <table>
+                <tr>
+                    <td>Name (at least 2 chars, only letters/spaces):</td>
+                    <td><netui:textBox dataSource="actionForm.name"/></td>
+                    <td><span style="color:red"><netui:error key="name"/></span></td>
+                </tr>
+                <tr>
+                    <td>Age (must be within the range 1-150):</td>
+                    <td><netui:textBox dataSource="actionForm.age"/></td>
+                    <td><span style="color:red"><netui:error key="age"/></span></td>
+                </tr>
+            </table>
+            <br/>
+            <netui:button value="submit"/>
+        </netui:form>
+
+    </netui-template:section>
+</netui-template:template>

Propchange: beehive/trunk/samples/netui-samples/web/advanced/dynaforms/input.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/samples/netui-samples/web/advanced/dynaforms/merge-struts-config-dynaforms.xml
URL: http://svn.apache.org/viewcvs/beehive/trunk/samples/netui-samples/web/advanced/dynaforms/merge-struts-config-dynaforms.xml?rev=351894&view=auto
==============================================================================
--- beehive/trunk/samples/netui-samples/web/advanced/dynaforms/merge-struts-config-dynaforms.xml (added)
+++ beehive/trunk/samples/netui-samples/web/advanced/dynaforms/merge-struts-config-dynaforms.xml Fri Dec  2 21:34:36 2005
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+
+<!DOCTYPE struts-config PUBLIC
+          "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
+          "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
+<struts-config>
+
+    <form-beans>
+        <form-bean name="myDynaForm" type="org.apache.beehive.netui.pageflow.DynaFormData">
+            <form-property name="name" type="java.lang.String"/>
+            <form-property name="age" type="java.lang.String"/>
+        </form-bean>
+    </form-beans>
+    <action-mappings>
+        <action path="/submit" name="myDynaForm"/>
+    </action-mappings>
+    
+</struts-config>

Propchange: beehive/trunk/samples/netui-samples/web/advanced/dynaforms/merge-struts-config-dynaforms.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/samples/netui-samples/web/advanced/dynaforms/output.jsp
URL: http://svn.apache.org/viewcvs/beehive/trunk/samples/netui-samples/web/advanced/dynaforms/output.jsp?rev=351894&view=auto
==============================================================================
--- beehive/trunk/samples/netui-samples/web/advanced/dynaforms/output.jsp (added)
+++ beehive/trunk/samples/netui-samples/web/advanced/dynaforms/output.jsp Fri Dec  2 21:34:36 2005
@@ -0,0 +1,21 @@
+<%@ 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-data:declarePageInput name="name" type="java.lang.String" required="true"/>
+<netui-data:declarePageInput name="age" type="java.lang.String" required="true"/>
+
+<netui-template:template templatePage="/resources/template/template.jsp">
+    <netui-template:setAttribute name="sampleTitle" value="DynaForms"/>
+    <netui-template:section name="main">
+
+        Name: <b>${pageInput.name}</b>
+        <br/>
+        Age: <b>${pageInput.age}</b>
+        <br/>
+        <br/>
+        <netui:anchor action="begin">start over</netui:anchor>
+
+    </netui-template:section>
+</netui-template:template>

Propchange: beehive/trunk/samples/netui-samples/web/advanced/dynaforms/output.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: beehive/trunk/samples/netui-samples/web/index.jsp
URL: http://svn.apache.org/viewcvs/beehive/trunk/samples/netui-samples/web/index.jsp?rev=351894&r1=351893&r2=351894&view=diff
==============================================================================
--- beehive/trunk/samples/netui-samples/web/index.jsp (original)
+++ beehive/trunk/samples/netui-samples/web/index.jsp Fri Dec  2 21:34:36 2005
@@ -31,11 +31,6 @@
       <b>NetUI Page Flow Core</b>
       <br/>
       <dl>
-          <dt><netui:anchor href="actioninterceptors/Controller.jpf" value="Action Interceptors"/></dt>
-          <dd>Demonstrates Page Flow action interceptors, which can be configured to run before or
-              after all actions (or specific actions), and can change an action's destination.</dd>
-      </dl>
-      <dl>
           <dt><netui:anchor href="basicNesting/main/MainFlow.jpf" value="Basic Nested Page Flow"/></dt>
           <dd>Demonstrates the most basic nested page flow.</dd>
       </dl>
@@ -120,5 +115,17 @@
           <dt><netui:anchor href="ui/formintagfile/Controller.jpf" value="JSP Tag File as a Form"/></dt>
           <dd>Demonstrates how to use a JSP 2.0 .tag file to contain a NetUI form</dd>
       </dl>
+      <br/>
+      <b>Advanced / Specialty</b>
+      <dl>
+          <dt><netui:anchor href="advanced/actioninterceptors/Controller.jpf" value="Action Interceptors"/></dt>
+          <dd>Demonstrates Page Flow action interceptors, which can be configured to run before or
+              after all actions (or specific actions), and can change an action's destination.</dd>
+      </dl>
+      <dl>
+          <dt><netui:anchor href="advanced/dynaforms/Controller.jpf" value="DynaForms"/></dt>
+          <dd>Demonstrates the use of Struts DynaActionForms in page flows</dd>
+      </dl>
+      <br/>
   </netui-template:section>
 </netui-template:template>