You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by hu...@apache.org on 2005/11/12 14:14:36 UTC

svn commit: r332770 - in /struts: apps/trunk/xdocs/ core/trunk/src/java/org/apache/struts/action/ core/trunk/xdocs/faqs/ core/trunk/xdocs/userGuide/ faces/trunk/xdocs/ flow/trunk/xdocs/ plugins/trunk/xdocs/ site/trunk/xdocs/ taglib/trunk/xdocs/ tiles/t...

Author: husted
Date: Sat Nov 12 05:14:24 2005
New Revision: 332770

URL: http://svn.apache.org/viewcvs?rev=332770&view=rev
Log:
Taglib - Add FAQ page with questions ported from the Core FAQs.
Site - Add "Why two frameworks" section. Distinguish between "Core Extensions" and other Subprojects. 
App, Core, Faces, Extras (Plugins), Tiles - Conform page titles and navigation. 

Added:
    struts/taglib/trunk/xdocs/faq.xml
Modified:
    struts/apps/trunk/xdocs/navigation.xml
    struts/core/trunk/src/java/org/apache/struts/action/ActionForm.java
    struts/core/trunk/xdocs/faqs/kickstart.xml
    struts/core/trunk/xdocs/userGuide/navigation.xml
    struts/faces/trunk/xdocs/index.xml
    struts/faces/trunk/xdocs/navigation.xml
    struts/flow/trunk/xdocs/navigation.xml
    struts/plugins/trunk/xdocs/navigation.xml
    struts/site/trunk/xdocs/index.xml
    struts/site/trunk/xdocs/navigation.xml
    struts/taglib/trunk/xdocs/navigation.xml
    struts/tiles/trunk/xdocs/examples.xml
    struts/tiles/trunk/xdocs/index.xml
    struts/tiles/trunk/xdocs/installation.xml
    struts/tiles/trunk/xdocs/navigation.xml
    struts/tiles/trunk/xdocs/userGuide.xml

Modified: struts/apps/trunk/xdocs/navigation.xml
URL: http://svn.apache.org/viewcvs/struts/apps/trunk/xdocs/navigation.xml?rev=332770&r1=332769&r2=332770&view=diff
==============================================================================
--- struts/apps/trunk/xdocs/navigation.xml (original)
+++ struts/apps/trunk/xdocs/navigation.xml Sat Nov 12 05:14:24 2005
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<project name="Struts Apps">
+<project name="Struts Applications">
     <body>
         <menu name="Quick Links">
             <item

Modified: struts/core/trunk/src/java/org/apache/struts/action/ActionForm.java
URL: http://svn.apache.org/viewcvs/struts/core/trunk/src/java/org/apache/struts/action/ActionForm.java?rev=332770&r1=332769&r2=332770&view=diff
==============================================================================
--- struts/core/trunk/src/java/org/apache/struts/action/ActionForm.java (original)
+++ struts/core/trunk/src/java/org/apache/struts/action/ActionForm.java Sat Nov 12 05:14:24 2005
@@ -126,8 +126,7 @@
 
     /**
      * <p>Set the servlet instance to which we are attached (if
-     * <code>servlet</code> is non-null), or release any allocated resources
-     * (if <code>servlet</code> is null).</p>
+     * <code>servlet</code> is non-null).</p>
      *
      * @param servlet The new controller servlet, if any
      */
@@ -155,7 +154,7 @@
 
 
     /**
-     * <p>Reset all bean properties to their default state.  This method is
+     * <p>>Can be used to reset all bean properties to their default state.  This method is
      * called before the properties are repopulated by the controller.</p>
      *
      * <p>The default implementation attempts to forward to the HTTP
@@ -176,7 +175,7 @@
 
 
     /**
-     * <p>Reset bean properties to their default state, as needed.  This method
+     * <p>Can be used to reset bean properties to their default state, as needed.  This method
      * is called before the properties are repopulated by the controller.</p>
      *
      * <p>The default implementation does nothing. In practice, the only
@@ -209,7 +208,7 @@
 
 
     /**
-     * <p>Validate the properties that have been set for this non-HTTP request,
+     * <p>Can be used to validate the properties that have been set for this non-HTTP request,
      * and return an <code>ActionErrors</code> object that encapsulates any
      * validation errors that have been found. If no errors are found, return
      * <code>null</code> or an <code>ActionErrors</code> object with no
@@ -236,7 +235,7 @@
 
 
     /**
-     * <p>Validate the properties that have been set for this HTTP request,
+     * <p>Can be used to validate the properties that have been set for this HTTP request,
      * and return an <code>ActionErrors</code> object that encapsulates any
      * validation errors that have been found. If no errors are found,
      * return <code>null</code> or an <code>ActionErrors</code> object with

Modified: struts/core/trunk/xdocs/faqs/kickstart.xml
URL: http://svn.apache.org/viewcvs/struts/core/trunk/xdocs/faqs/kickstart.xml?rev=332770&r1=332769&r2=332770&view=diff
==============================================================================
--- struts/core/trunk/xdocs/faqs/kickstart.xml (original)
+++ struts/core/trunk/xdocs/faqs/kickstart.xml Sat Nov 12 05:14:24 2005
@@ -1,6 +1,22 @@
 <?xml version="1.0"?>
-<document url="./kickstart.xml">
-<properties>
+<!--
+Copyright 1999-2005 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.
+-->
+<!--
+// ======================================================================== 78
+-->
+<document><properties>
 <title>Kickstart FAQ - Struts Core FAQs and Howtos - Apache Struts</title>
 </properties>
 <body>

Modified: struts/core/trunk/xdocs/userGuide/navigation.xml
URL: http://svn.apache.org/viewcvs/struts/core/trunk/xdocs/userGuide/navigation.xml?rev=332770&r1=332769&r2=332770&view=diff
==============================================================================
--- struts/core/trunk/xdocs/userGuide/navigation.xml (original)
+++ struts/core/trunk/xdocs/userGuide/navigation.xml Sat Nov 12 05:14:24 2005
@@ -45,6 +45,9 @@
         <item 
             name="FAQs and HOWTOs"         
             href="faqs/index.html"/>
+        <item 
+            name="FormDef"         
+            href="https://formdef.dev.java.net/"/>
        <item
             name="JavaDocs"
             href="apidocs/index.html"/>

Modified: struts/faces/trunk/xdocs/index.xml
URL: http://svn.apache.org/viewcvs/struts/faces/trunk/xdocs/index.xml?rev=332770&r1=332769&r2=332770&view=diff
==============================================================================
--- struts/faces/trunk/xdocs/index.xml (original)
+++ struts/faces/trunk/xdocs/index.xml Sat Nov 12 05:14:24 2005
@@ -1,16 +1,33 @@
 <?xml version="1.0"?>
-<document url="index.html">
+<!--
+Copyright 1999-2005 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.
+-->
+<!--
+// ======================================================================== 78
+-->
+<document>
 
   <properties>
-    <title>Struts and JavaServer Faces Integration Library</title>
+    <title>Welcome</title>
   </properties>
 
   <body>
 
-    <section name="Struts-Faces Welcome">
+    <section name="Struts and JavaServer Faces Integration Library">
     <a name="welcome"/>
 
-      <p>This package contains an add-on library that supports the use of
+      <p>The "Struts-Faces" package contains an add-on library that supports the use of
   JavaServer Faces (JSF) user interface technology in a Struts based web
   application, in place of the Struts custom tag libraries.  As a proof of
   concept, it also includes the canonical "struts-example" example

Modified: struts/faces/trunk/xdocs/navigation.xml
URL: http://svn.apache.org/viewcvs/struts/faces/trunk/xdocs/navigation.xml?rev=332770&r1=332769&r2=332770&view=diff
==============================================================================
--- struts/faces/trunk/xdocs/navigation.xml (original)
+++ struts/faces/trunk/xdocs/navigation.xml Sat Nov 12 05:14:24 2005
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<project name="Struts Framework"
+<project name="Struts Faces"
          href="http://struts.apache.org/faces"
         image="images/struts.gif">
 
-    <title>Struts and JavaServer Faces Integration Library</title>
+  <title>Apache Struts - Struts-Faces</title>
   <body>
     <menu name="Struts-Faces">
         <item name="Welcome"            href="index.html#Struts-Faces_Welcome"/>
@@ -12,9 +12,9 @@
     </menu>
 
     <menu name="Quick Links">
-        <item name="Struts"             href="../index.html"/>
         <item name="JavaServer Faces"   href="http://java.sun.com/j2ee/javaserverfaces"/>
         <item name="Shale Framework"    href="../shale/index.html"/>
+        <item name="Apache Struts Home" href="../index.html"/>
     </menu>
   </body>
 </project>

Modified: struts/flow/trunk/xdocs/navigation.xml
URL: http://svn.apache.org/viewcvs/struts/flow/trunk/xdocs/navigation.xml?rev=332770&r1=332769&r2=332770&view=diff
==============================================================================
--- struts/flow/trunk/xdocs/navigation.xml (original)
+++ struts/flow/trunk/xdocs/navigation.xml Sat Nov 12 05:14:24 2005
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<project name="Struts Framework"
+<project name="Struts Flow"
          href="http://struts.apache.org/flow"
         image="images/struts.gif">
 
-    <title>Struts Flow - Apache Struts Framework</title>
+  <title>Apache Struts - Struts Flow</title>
   <body>
-    <menu name="Flow">
+    <menu name="Struts Flow">
         <item name="Welcome" href="index.html"/>
         <item name="What's New" href="index.html#What_s_New"/>
         <item name="Requirements" href="index.html#Requirements"/>
@@ -30,14 +30,8 @@
 
     <menu name="Quick Links">
         <item 
-            name="Struts"                 
+            name="Apache Struts Home"                 
             href="../index.html"/>
-        <item
-            name="User and Developer Guides *" 
-            href="../userGuide/index.html"/>
-        <item 
-            name="FAQs and HowTos"         
-            href="../faqs/index.html"/>
     </menu>
 
   </body>

Modified: struts/plugins/trunk/xdocs/navigation.xml
URL: http://svn.apache.org/viewcvs/struts/plugins/trunk/xdocs/navigation.xml?rev=332770&r1=332769&r2=332770&view=diff
==============================================================================
--- struts/plugins/trunk/xdocs/navigation.xml (original)
+++ struts/plugins/trunk/xdocs/navigation.xml Sat Nov 12 05:14:24 2005
@@ -1,9 +1,10 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<project name="Struts Plugins">
+<project name="Struts Extras">
+<title>Apache Struts - Struts Extras/title>
     <body>
         <menu name="Quick Links">
             <item
-                    name="Struts"
+                    name="Apache Struts Home"
                     href="../index.html"/>
         </menu>
     </body>

Modified: struts/site/trunk/xdocs/index.xml
URL: http://svn.apache.org/viewcvs/struts/site/trunk/xdocs/index.xml?rev=332770&r1=332769&r2=332770&view=diff
==============================================================================
--- struts/site/trunk/xdocs/index.xml (original)
+++ struts/site/trunk/xdocs/index.xml Sat Nov 12 05:14:24 2005
@@ -104,8 +104,8 @@
      
 </section>
 
-<section name="Welcome to Apache Struts!">
 <a name="Welcome"/>
+<section name="Welcome to Apache Struts!">
     <p>
         The goal of the Apache Struts project is to encourage application
         architectures based on the "Model 2" approach, a variation of the
@@ -127,14 +127,47 @@
     <p>
         Originally, the Apache Struts software was distributed
         as one monolithic bundle.
-        Today, the Struts project is comprised of several subprojects.
-        Each subproject has its own website, documentation, and release cycle,
-        and may be downloaded separately.
-        The six original Apache Struts subprojects --
-        Core, Taglibs, Tiles, Extras, Applications, and EL --
-        are also being bundled into a distribution known as "Struts Classic".
+	Today, the Apache Struts project is comprised of two distinct frameworks 
+	and several other subprojects. 
+	The two frameworks are <strong>Struts Core</strong> and <strong>Struts Shale</strong>. 
+	Struts Core is the original action/page framework. 
+	Struts Shale is an event/component framework based on JavaServer Faces. 
+	Both frameworks are first-class citizens of the Apache Struts project.
+    </p>
+
+   <a name="frameworks"/>
+   <subsection name="Why two frameworks?">
+   <p>
+	When <a href="http://java.sun.com/j2ee/javaserverfaces/">JavaServer Faces arrived</a>, 
+	our development community chose to "make new friends but keep the old". 
+	Some of us want (or need) to stick with the original action/page framework. 
+	Others are ready to switch to an event/component framework based on JavaServer Faces. 
+	We offer both frameworks because we have volunteers to create and maintain both frameworks.
+    </p>
+
+    <p>
+	If you are starting a new project, you might want to consider Struts Shale.
+	Some people feel that JSF and Shale is the quickest way to write new Java web applications.
+    </p>
+
+    <p>	
+	If you have mature Struts Core applications in production, don't worry, 
+	we are still here, same as ever. 
+	After all, we have our share of mature application in production too.
     </p>
 
+    <p>	
+	To make the Struts Core framework easier to maintain, 
+	we've subdivided the original monolithic distribution into several subprojects. 
+	Each subproject has its own website, documentation, and release cycle, 
+	and may be downloaded separately. 
+	The JARs and external dependencies for our extensions to Struts Core are being 
+	bundled into a convenient distribution known as the "Struts Core Library".
+    </p>
+    </subsection>
+
+    <a name="about"/>
+    <subsection name="About Apache Struts">
     <p>
         Apache Struts is a volunteer project and
         all support for the framework is provided by unpaid volunteers.
@@ -157,7 +190,7 @@
             <a href="http://struts.apache.org/"> http://struts.apache.org/</a>.
         </li>
     </ul>
-
+    </subsection>
 </section>
 
 <section>

Modified: struts/site/trunk/xdocs/navigation.xml
URL: http://svn.apache.org/viewcvs/struts/site/trunk/xdocs/navigation.xml?rev=332770&r1=332769&r2=332770&view=diff
==============================================================================
--- struts/site/trunk/xdocs/navigation.xml (original)
+++ struts/site/trunk/xdocs/navigation.xml Sat Nov 12 05:14:24 2005
@@ -66,16 +66,20 @@
         <item name="Shale Framework" href="shale/index.html" />
     </menu>
  
-    <menu name="Extensions">
-        <item name="Applications" href="/struts-apps/index.html"/>
+    <menu name="Core Extensions">
         <item name="BSF Scripting" href="/struts-bsf/index.html"/>
         <item name="EL" href="/struts-el/index.html"/>
         <item name="Extras" href="/struts-plugins/index.html"/>
         <item name="Flow" href="/struts-flow/index.html"/>
         <item name="JSF Integration" href="/struts-faces/index.html"/>
         <item name="JSP Taglib" href="/struts-taglib/index.html"/>
-        <item name="Sandbox" href="/struts-sandbox/index.html"/>
         <item name="Tiles" href="/struts-tiles/index.html"/>
+        <item name="Other Extensions" href="http://wiki.apache.org/struts/StrutsExtensions"/>
+    </menu>
+
+    <menu name="Subprojects">
+        <item name="Applications" href="/struts-apps/index.html"/>
+        <item name="Sandbox" href="/struts-sandbox/index.html"/>
     </menu>
 
     <menu name="Development">

Added: struts/taglib/trunk/xdocs/faq.xml
URL: http://svn.apache.org/viewcvs/struts/taglib/trunk/xdocs/faq.xml?rev=332770&view=auto
==============================================================================
--- struts/taglib/trunk/xdocs/faq.xml (added)
+++ struts/taglib/trunk/xdocs/faq.xml Sat Nov 12 05:14:24 2005
@@ -0,0 +1,463 @@
+<?xml version="1.0"?>
+<!--
+Copyright 1999-2005 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.
+-->
+<!--
+// ======================================================================== 78
+-->
+<document>
+<properties>
+<title>Taglib FAQ</title>
+</properties>
+<body>
+<a name="faq"/>
+<section name="Struts Taglib FAQ">
+
+<a name="contents"/>
+<subsection name="Index">
+
+<ul>
+
+    <li>
+    <a href="#jsf">What about JSTL and JavaServer Faces?</a>
+    </li>
+
+    <li>
+    <a href="#xhtml">Are the Struts tags XHTML compliant?</a>
+    </li>
+
+    <li>
+    <a href="#wml">Will the Struts tags support other markup languages such as WML</a>
+    </li>
+
+    <li>
+    <a href="#multiple">Can I use multiple HTML form elements with the same
+    name?</a>
+    </li>
+
+    <li>
+    <a href="#multipleSubmits">Can I have multiple submit buttons on the same
+    form?</a>
+    </li>
+
+    <li><a href="#focus">Why doesn't the focus feature on the &lt;html:form>
+    tag work in every circumstance?</a>
+    </li>
+
+    <li><a href="#checkbox">Why are my checkboxes not being set from ON to
+    OFF?</a>
+    </li>
+
+    <li>
+    <a href="#javascript.submit">How do I use JavaScript to submit a form? </a>
+    </li>
+
+    <li>
+    <a href="#javascript">How do I use JavaScript to ... </a>
+    </li>
+
+    <li>
+    <a href="#reset">Do I need to implement reset and set all my form
+    properties to their initial values?</a>
+    </li>
+
+    <li>
+    <a href="#scriptlets">Can't I just create some of my JavaBeans in the JSP
+    using a scriptlet?</a>
+    </li>
+
+    <li>
+    <a href="#link">Why does the &lt;html:link> tag URL-encode javascript and
+    mailto links?"</a>
+    </li>
+
+    <li>
+    <a href="#pager">How can I scroll through list of pages like the search
+    results in google?</a>
+    </li>
+
+    <li>
+    <a href="#minimization">Why does the option tag render selected="selected"
+    instead of just "selected"?
+    </a></li>
+
+    <li>
+    <a href="#tags">Why does Struts Taglib provide for so little
+    formatting?</a>
+    </li>
+
+    <li>
+    <a href="#layout">Why doesn't Struts Taglib offer more layout options?</a>
+    </li>
+
+</ul>
+
+</subsection>
+
+<a name="jsf"/>
+<subsection name="What about JSTL and JavaServer Faces?">
+    <p>
+       Struts Core works well with the <a href="http://java.sun.com/products/jsp/jstl/">
+       JavaServer Standard Tag Library</a>. 
+       For a JSTL rendition of the original Struts JSP tags, 
+       see the <a href="http://struts.apache.org/struts-el/index.html">Struts EL subproject</a>.
+    </p>
+    
+    <p>
+       If you'd like to start using 
+       <a href="http://java.sun.com/j2ee/javaserverfaces/">JavaServer Faces</a>
+       components in your Struts Core application, 
+       please see the <a href="http://struts.apache.org/struts-faces/index.html">Struts Faces</a> subproject. 
+       If you'd like to get a fresh start in a pure JSF environment, 
+       please see the <a href="http://struts.apache.org/shale/index.html">Struts Shale</a> framework. 
+    </p>
+</subsection>
+
+<a name="xhtml"/>
+<subsection name="Are the Struts tags XHTML compliant?">
+<p>If you use an &lt;html:html xhtml="true&gt; or &lt;html:xhtml/&gt; element on your page, the tags
+will render as XHTML (since Struts 1.1). </p>
+</subsection>
+
+<a name="wml"/>
+<subsection name="Will the Struts tags support other markup languages such as WML">
+<p>
+Struts itself is markup neutral. The original Struts taglibs are only one example of how
+presentation layer components can access the framework. The framework objects are exposed
+through the standard application, session, and request contexts, where any Java component in
+the application can make use of them.
+</p>
+
+<p>Markup extensions that use Struts are available for
+<a href="http://jakarta.apache.org/velocity">Velocity</a> and
+<a href="http://www.openroad.ca/opencode/">XLST</a>, among others.
+A new Struts tag library for
+<a href="#jsf">Java Server Faces</a> is also in development.
+</p>
+
+<p>For more about using WAP/WML with Struts see the article
+<a href="http://www.sys-con.com/pbdj/archives2/0904/hamboeck/">
+WAP up your EAserver</a>.
+</p>
+</subsection>
+
+<a name="multiple"/>
+<subsection name="Can I use multiple HTML form elements with the same name?">
+<p>
+Yes. Define the element as an array and Struts will autopopulate it like any other.
+</p>
+<pre>
+<code>
+private String[] id= {};
+public String[] getId() { return this.id; }
+public void setItem(String id[]) {this.id = id;}
+</code>
+</pre>
+<p>
+And so forth
+</p>
+</subsection>
+
+<a name="multipleSubmits"/>
+<subsection name="Can I have multiple submit buttons on the same form?">
+<p>
+<strong>Yes</strong>.  The issue is that only one action class can be
+associated with a single form. So the real issue is how do I decode
+multiple submit types to a single <code>Action</code> class.
+There is more than one way to achieve this functionality.</p>
+<p>
+The way that is suggested by struts is right out of the javadoc for
+<a href="../api/org/apache/struts/actions/LookupDispatchAction.html">
+<code>LookupDispatchAction</code></a>.
+Basically, <code>LookupDispatchAction</code> is using the keys from
+<code>ApplicationProperties.resources</code> as keys to a map of actions
+available to your <code>Action</code> class.  It uses
+<a href="http://java.sun.com/j2se/1.3/docs/guide/reflection/">reflection</a> to
+decode the request and invoke the proper action.  It also takes advantage of
+the struts <a href="../userGuide/struts-html.html#submit">
+<code>&lt;html:submit&gt;</code></a> tags and is straight forward to implement.</p>
+<p>
+You can roll your own with JavaScript events and <code>javascript:void
+(document.forms["myform"].submit)</code> on any html element.  This gives you
+control of how you want your page to look.  Again you
+will have to decode the expected action in the <code>execute</code> method of
+your action form if you choose this route.</p>
+</subsection>
+
+<a name="focus"/>
+<subsection name="Why doesn't the focus feature on the &lt;html:form> tag work in every circumstance?">
+<p>
+Unfortunately, there is some disagreement between the various browsers, and different versions of the same browser, as to how the focus can be set.
+The &lt;html:form> tag provides a quick and easy JavaScript that will set the focus on a form
+for most versions of most browsers.
+If this feature doesn't work for you, then you should set the focus using your own JavaScript.
+The focus feature is a convenient "value-add" -- not a core requirement of the tag.
+If you do come up with a JavaScript that provides the final solution to this project,
+please post your patch to this <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=13454">Bugzilla ticket</a>.
+</p>
+</subsection>
+
+<a name="checkbox"/>
+<subsection name="Why are my checkboxes not being set from ON to OFF?">
+<p>
+A problem with a checkbox is that the browser will only include it in the request
+when it is checked. If it is not checked, the HTML specification suggests that it
+not be sent (i.e. omitted from the request). If the value of the checkbox is being
+persisted, either in a session bean or in the model, a checked box can never
+unchecked by a HTML form -- because the form can never send a signal to uncheck
+the box. The application must somehow ascertain that since the element was not
+sent that the corresponding value is unchecked.
+</p>
+<p>
+The recommended approach for Struts applications is to use the reset method in the
+ActionForm to set all properties represented by checkboxes to null or false. The
+checked boxes submitted by the form will then set those properties to true. The
+omitted properties will remain false. Another solution is to use radio buttons
+instead, which always submit a value.
+</p>
+<p>
+It is important to note that the HTML specification recommends this same
+behavior whenever a control is not "successful". Any blank element in a HTML
+form is not guaranteed to submitted. It is therefor very important to set the
+default values for an ActionForm correctly, and to implement the reset method
+when the ActionForm might kept in session scope.
+</p>
+</subsection>
+
+<a name="javascript.submit"/>
+<subsection name="Can I use JavaScript to submit a form?">
+<p>
+    You can submit a form with a link as below.
+    BTW, the examples below assume you are in an &lt;html:form&gt; block and 'myForm'
+    is picked up from the struts-config.xml name field of the action.
+</p>
+<source>
+    &lt;a href='javascript:void(document.forms["myForm"].submit()&gt;My Link&lt;/a&gt;
+</source>
+<p>
+    Now the trick in the action is to decode what action you intend to perform.
+    Since you are using JavaScript, you could set a field value and look for it in
+    the request or in the form.
+</p>
+<p>
+    ... html/javascript part ...
+</p>
+<source>
+        &lt;input type='hidden' value='myAction' /&gt;
+        &lt;input type='button' value='Save Meeeee'
+            onclick='document.forms["myForm"].myAction.value="save";
+                     document.forms["myForm"].submit();' /&gt;
+        &lt;input type='button' value='Delete Meeeee'
+            onclick='document.forms["myForm"].myAction.value="delete";
+                     document.forms["myForm"].submit();' /&gt;
+</source>
+<p>
+    ... the java part ...
+</p>
+<source>
+        class MyAction extends ActionForm implements Serializable {
+
+            public ActionForward execute (ActionMapping map, ActionForm form,
+                HttpServletRequest req, HttpServletResponse) {
+
+                    String myAction = req.getParameter("myAction");
+
+                    if (myAction.equals("save") {
+                           // ...  save action  ...
+                    } else if (myAction.equals("delete") {
+                           // ...  delete action  ...
+                    }
+                }
+            }
+        }
+</source>
+<p>
+    This is just one of many ways to achieve submitting a form and decoding the
+    intended action.  Once you get used to the framework you will find other ways
+    that make more sense for your coding style and requirements.  Just remember
+    this example is completely non-functional without JavaScript.
+</p>
+<p>
+    Here is a link
+    which utilizes the LookupDispatch action to submit forms with multiple actions
+    without javascript: <a href="http://husted.com/struts/tips/003.html">http://husted.com/struts/tips/003.html</a>
+</p>
+
+</subsection>
+
+<a name="javascript"/>
+<subsection name="How do I use JavaScript to ...">
+
+    <p>
+    Struts is mainly a server-side technology.
+    We bundled in some JSP tags to expose the framework components to your
+    presentation page, but past that, the usual development process applies.
+    </p>
+
+    <p>
+    Interactive pages require the use of JavaScript.
+    (That's why it was invented.)
+    If you want things popping up or doing this when they click that,
+    you are outside the scope of Struts and back into the web
+    development mainstream.
+    </p>
+
+    <p>
+    You use JavaScript with Struts the same way you use with any presentation
+    page.
+    Since JavaScript is a client-side technology, you can use simple relative
+    references to your scripts.
+    If you need to fire a JavaScript from a HTML control, the Struts HTML tags
+    have properties for the JavaScript events.
+    </p>
+
+    <p>
+    A very good JavaScript resource is Matt Kruse's site at
+    <a href="http://www.mattkruse.com/javascript/">
+    http://www.mattkruse.com/javascript/</a>
+    </p>
+
+</subsection>
+
+<a name="reset"/>
+<subsection name="Do I need to implement reset and set all my form properties to their initial values?">
+<p>
+No.
+You need to set checkbox properties to false if the ActionForm is being retained in session scope.
+This is because an unchecked box does not submit an attribute.
+Only checked boxes submit attributes.
+If the form is in session scope, and the checkbox was checked, there is no way to turn it back off without the reset method.
+Resetting the properties for other controls, or for a request scope form, is pointless.
+If the form is in request scope, everything already just started at the initial value.
+</p>
+</subsection>
+
+<a name="scriptlets"/>
+<subsection name="Can't I just create some of my JavaBeans in the JSP using a scriptlet?">
+<p>
+Struts is designed to encourage a
+<a href="http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html">
+Model 2/MVC architecture</a>. But there is nothing that prevents you from using Model 1
+techniques in your JavaServer Pages, so the answer  to the question is "Yes, you can".
+</p>
+<p>
+Though, using Model 1 techniques in a Struts application does go against the grain.
+The approach recommended by most Struts developers is to create and populate whatever
+objects the view may need in the Action, and then forward these through the request.
+Some objects may also be created and stored in the session or context,
+depending on how they are used.
+</p>
+<p>
+Likewise, there is nothing to prevent you from using scriptlets along with JSP
+tags in your pages. Though, many Struts developers report writing very complex
+scriplet-free applications and recommend the JSP tag approach to others.
+</p>
+<p>
+For help with Model 1 techniques and scriptlets, you might consider joining the
+<a href="http://archives.java.sun.com/jsp-interest.html">Javasoft JSP-interest
+mailing list</a>, where there are more people still using these approaches.
+</p>
+</subsection>
+
+<a name="link"/>
+<subsection name="Why does the &lt;html:link> tag URL-encode javascript and mailto links?">
+<p>
+The &lt;html:link> tag is not intended for use with client-side references like those used to launch Javascripts or email clients.
+The purpose of link tag is to interject the context (or module) path into the URI so that your server-side links are not dependent on your context (or module) name.
+It also encodes the link, as needed, to maintain the client's session on the server.
+Neither feature applies to client-side links, so there is no reason to use the &lt;html:link> tag.
+Simply markup the client-side links using the standard <a/> tag.
+</p>
+</subsection>
+
+<a name="pager"/>
+<subsection name="How can I scroll through list of pages like the search results in google?">
+<p>Many Struts developers use the Pager from the JSPTags site.</p>
+<p><a href="http://jsptags.com/tags/navigation/pager/">http://jsptags.com/tags/navigation/pager/</a></p>
+</subsection>
+
+<a name="minimization"/>
+<subsection name="Why does the option tag render selected=selected instead of just selected?">
+<p>
+Attribute minimization (that is, specifying an attribute with no value) is
+a place where HTML violates standard XML syntax rules. This matters a lot
+for people writing to browsers that support XHTML, where doing so makes
+the page invalid.It's much better for Struts to use the expanded syntax,
+which works the same on existing browsers interpreting HTML, and newer
+browsers that expect XHTML-compliant syntax. Struts is following the
+behavior recommended by the <a href="http://www.w3.org/TR/xhtml1/#h-4.5">
+XHTML specification</a></p>
+</subsection>
+
+<a name="tags"/>
+<subsection name="Why does Struts Taglib provide for so little formatting?">
+<p>
+<em>The Struts tags seem to provide only the most rudimentary functionality.
+Why is there not better support for date formatting and advanced string handling?</em>
+</p>
+<p>
+Three reasons:
+</p>
+<p>
+First, work started on the JSTL and we didn't want to duplicate the effort.
+</p>
+<p>
+Second, work started on Java Server Faces, and we didn't want to duplicate that effort either.
+</p>
+<p>
+Third, in a Model 2 application, most of the formatting can be handled in the ActionForms (or in the business tier),
+so all the tag has to do is spit out a string.
+This leads to better reuse since the same "how to format" code does not need to be repeated in every instance.
+You can "say it once" in a JavaBean and be done with it.
+</p>
+</subsection>
+
+<a name="layout"/>
+<subsection name="Why doesn't Struts Taglib offer more layout options?">
+<p>
+For more flexible placement of error messages, 
+try the <a href="http://www.rabago.net/struts/html2/">&lt;html2&gt;</a> Tag Library for Struts.
+</p>
+<p>
+Since the Struts tags are open source, you can extend them to provide whatever additional formatting you may need.
+If you are interested in a pre-written taglib that offers more layout options, see the
+<a href="http://struts.application-servers.com">struts-layout taglib</a>.
+</p>
+<p>
+In the same arena, there is a well regarded contributor taglib that can help you create
+<a href="http://sourceforge.net/projects/struts-menu/">Menus for your Struts applications</a>.
+</p>
+<p>
+Another very popular tag library is <a href="http://displaytag.sourceforge.net">DisplayTag</a>. 
+DisplayTag is an excellent choice when you have tabular data to present.
+</p>
+</subsection>
+
+<a name="undocumented"/>
+<subsection
+    name="If you would like to contribute, here is a list of
+    popular but undocumented questions">
+
+    <ul>
+
+
+    <li>Why do my option lists disappear when validation fails?</li>
+
+    <li>Why can't I disable URL-encoding in the Struts taglibs?</li>
+
+    </ul>
+</subsection>
+
+
+</section></body></document>

Modified: struts/taglib/trunk/xdocs/navigation.xml
URL: http://svn.apache.org/viewcvs/struts/taglib/trunk/xdocs/navigation.xml?rev=332770&r1=332769&r2=332770&view=diff
==============================================================================
--- struts/taglib/trunk/xdocs/navigation.xml (original)
+++ struts/taglib/trunk/xdocs/navigation.xml Sat Nov 12 05:14:24 2005
@@ -9,6 +9,7 @@
             <item name="Nested" href="dev_nested.html"/>
         </menu>
         <menu name="FAQs and HOWTOs">
+            <item name="Taglib FAQ" href="faq.html"/>    
             <item name="Building View Components" href="building_view.html"/>    
             <item name="Indexed Properties" href="indexedprops.html"/>    
             <item name="Secure Socket Layer and Web Applications " href="ssl.html"/>    
@@ -19,10 +20,34 @@
             <item name="Logic" href="tagreference-struts-logic.html"/>
             <item name="Nested" href="tagreference-struts-nested.html"/>
         </menu>
+
         <menu name="Quick Links">
-            <item
-                    name="Apache Struts Home"
-                    href="../index.html"/>
+            <item name="Display Tag" 
+                  href="http://displaytag.sourceforge.net/"/>    
+
+            <item name="&lt;html2&gt;"
+                  href="http://www.rabago.net/struts/html2/"/>    
+
+            <item name="JSTL"
+                  href="http://java.sun.com/products/jsp/jstl/"/>
+                  
+            <item name="JSF"
+                  href="http://java.sun.com/j2ee/javaserverfaces/"/>
+                  
+            <item name="Struts Faces"
+                  href="../struts-faces/index.html"/>
+
+            <item name="Struts Layout" 
+                  href="http://struts.application-servers.com"/>    
+
+            <item name="Struts Menu" 
+                  href="http://struts-menu.sourceforge.net/"/>    
+
+            <item name="Struts Shale"
+                  href="../shale/index.html"/>
+                  
+            <item name="Apache Struts Home"
+                  href="../index.html"/>
         </menu>
     </body>
 </project>

Modified: struts/tiles/trunk/xdocs/examples.xml
URL: http://svn.apache.org/viewcvs/struts/tiles/trunk/xdocs/examples.xml?rev=332770&r1=332769&r2=332770&view=diff
==============================================================================
--- struts/tiles/trunk/xdocs/examples.xml (original)
+++ struts/tiles/trunk/xdocs/examples.xml Sat Nov 12 05:14:24 2005
@@ -1,7 +1,24 @@
 <?xml version="1.0"?>
-<document url="./examples.xml">
+<!--
+Copyright 1999-2005 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.
+-->
+<!--
+// ======================================================================== 78
+-->
+<document>
 <properties>
-  <title>The Tiles Framework Project - Examples</title>
+  <title>Examples</title>
 </properties>
 
 <body>

Modified: struts/tiles/trunk/xdocs/index.xml
URL: http://svn.apache.org/viewcvs/struts/tiles/trunk/xdocs/index.xml?rev=332770&r1=332769&r2=332770&view=diff
==============================================================================
--- struts/tiles/trunk/xdocs/index.xml (original)
+++ struts/tiles/trunk/xdocs/index.xml Sat Nov 12 05:14:24 2005
@@ -1,7 +1,24 @@
 <?xml version="1.0"?>
-<document url="./index.xml">
+<!--
+Copyright 1999-2005 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.
+-->
+<!--
+// ======================================================================== 78
+-->
+<document>
 <properties>
-  <title>The Tiles Framework Project</title>
+  <title>Welcome</title>
 </properties>
 
 <body>

Modified: struts/tiles/trunk/xdocs/installation.xml
URL: http://svn.apache.org/viewcvs/struts/tiles/trunk/xdocs/installation.xml?rev=332770&r1=332769&r2=332770&view=diff
==============================================================================
--- struts/tiles/trunk/xdocs/installation.xml (original)
+++ struts/tiles/trunk/xdocs/installation.xml Sat Nov 12 05:14:24 2005
@@ -1,7 +1,24 @@
 <?xml version="1.0"?>
-<document url="./installation.xml">
+<!--
+Copyright 1999-2005 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.
+-->
+<!--
+// ======================================================================== 78
+-->
+<document>
 <properties>
-  <title>The Tiles Framework Project - Installation (1.1)</title>
+  <title>Installation (1.1)</title>
 </properties>
 
 <body>

Modified: struts/tiles/trunk/xdocs/navigation.xml
URL: http://svn.apache.org/viewcvs/struts/tiles/trunk/xdocs/navigation.xml?rev=332770&r1=332769&r2=332770&view=diff
==============================================================================
--- struts/tiles/trunk/xdocs/navigation.xml (original)
+++ struts/tiles/trunk/xdocs/navigation.xml Sat Nov 12 05:14:24 2005
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<project name="Apache Struts Web Application Framework"
+<project name="Struts Tiles"
          href="http://struts.apache.org/"
         image="images/struts.gif">
 
-    <title>The Tiles Framework Project</title>
+  <title>Apache Struts - Struts Tiles</title>
   <body>
 
-    <menu name="Tiles">
+    <menu name="Struts Tiles">
         <item href="index.html" name="Tiles Home"/>
         <item href="installation.html" name="Installation"/>
         <item href="userGuide.html" name="User Guide"/>
@@ -30,7 +30,7 @@
     -->
     <menu name="Quick Links">
         <item 
-            name="Struts"
+            name="Apache Struts Home"
             href="../index.html"/>
     </menu>
     

Modified: struts/tiles/trunk/xdocs/userGuide.xml
URL: http://svn.apache.org/viewcvs/struts/tiles/trunk/xdocs/userGuide.xml?rev=332770&r1=332769&r2=332770&view=diff
==============================================================================
--- struts/tiles/trunk/xdocs/userGuide.xml (original)
+++ struts/tiles/trunk/xdocs/userGuide.xml Sat Nov 12 05:14:24 2005
@@ -1,7 +1,24 @@
 <?xml version="1.0"?>
-<document url="./usersGuide.xml">
+<!--
+Copyright 1999-2005 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.
+-->
+<!--
+// ======================================================================== 78
+-->
+<document>
 <properties>
-  <title>The Tiles Framework Project - User Guide</title>
+  <title>User Guide</title>
 </properties>
 
 <body>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org