Author: husted
Date: Thu Aug 31 17:00:52 2006
New Revision: 439109

URL: http://svn.apache.org/viewvc?rev=439109&view=rev
Log:
WW-1392 Restore TLD and snippet code from prior revisions, since we are going 
to try using XDoclet with J5 instead. 
Removed:
    struts/struts2/trunk/core/src/main/resources/META-INF/tags/
Modified:
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ActionComponent.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ActionError.java
    struts/struts2/trunk/core/src/main/resources/META-INF/struts-tags.tld

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ActionComponent.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ActionComponent.java?rev=439109&r1=439108&r2=439109&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ActionComponent.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ActionComponent.java
 Thu Aug 31 17:00:52 2006
@@ -17,6 +17,11 @@
  */
 package org.apache.struts2.components;
 
+import org.apache.struts2.ServletActionContext;
+import org.apache.struts2.StrutsException;
+import org.apache.struts2.dispatcher.Dispatcher;
+import org.apache.struts2.dispatcher.RequestMap;
+import org.apache.struts2.views.jsp.TagUtils;
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionProxy;
 import com.opensymphony.xwork2.ActionProxyFactory;
@@ -24,107 +29,123 @@
 import com.opensymphony.xwork2.util.OgnlValueStack;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.struts2.ServletActionContext;
-import org.apache.struts2.StrutsConstants;
-import org.apache.struts2.StrutsException;
-import org.apache.struts2.config.Settings;
-import org.apache.struts2.dispatcher.Dispatcher;
-import org.apache.struts2.dispatcher.RequestMap;
-import org.apache.struts2.views.jsp.TagUtils;
 
 import javax.servlet.ServletContext;
+import javax.servlet.jsp.PageContext;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.servlet.jsp.PageContext;
+
 import java.io.IOException;
 import java.io.Writer;
 import java.util.HashMap;
 import java.util.Map;
 
 /**
- * Invoke an action directly from a view.
- * See struts-tags.tld for documentation.
+ * <!-- START SNIPPET: javadoc -->
+ * <p>This tag enables developers to call actions directly from a JSP page by 
specifying the action name and an optional
+ * namespace.  The body content of the tag is used to render the results from 
the Action.  Any result processor defined
+ * for this action in struts.xml will be ignored, <i>unless</i> the 
executeResult parameter is specified.</p>
+ * <!-- END SNIPPET: javadoc -->
+ *
+ * <!-- START SNIPPET: params -->
+ * <ul>
+ *      <li>id (String) - the id (if specified) to put the action under 
stack's context.
+ *             <li>name* (String) - name of the action to be executed (without 
the extension suffix eg. .action)</li>
+ *             <li>namespace (String) - default to the namespace where this 
action tag is invoked</li>
+ *      <li>executeResult (Boolean) -  default is false. Decides wheather the 
result of this action is to be executed or not</li>
+ *      <li>ignoreContextParams (Boolean) - default to false. Decides wheather 
the request parameters are to be included when the action is invoked</li>
+ * </ul>
+ * <!-- END SNIPPET: params -->
+ *
+ * <pre>
+ * <!-- START SNIPPET: javacode -->
+ * public class ActionTagAction extends ActionSupport {
+ *
+ *     public String execute() throws Exception {
+ *             return "done";
+ *     }
+ *
+ *     public String doDefault() throws Exception {
+ *             
ServletActionContext.getRequest().setAttribute("stringByAction", "This is a 
String put in by the action's doDefault()");
+ *             return "done";
+ *     }
+ * }
+ * <!-- END SNIPPET: javacode -->
+ * </pre>
+ *
+ * <pre>
+ * <!-- START SNIPPET: strutsxml -->
+ *   <xwork>
+ *      ....
+ *     <action name="actionTagAction1" class="tmjee.testing.ActionTagAction">
+ *         <result name="done">success.jsp</result>
+ *     </action>
+ *      <action name="actionTagAction2" class="tmjee.testing.ActionTagAction" 
method="default">
+ *         <result name="done">success.jsp</result>
+ *     </action>
+ *      ....
+ *   </xwork>
+ * <!-- END SNIPPET: strutsxml -->
+ * </pre>
+ *
+ * <pre>
+ * <!-- START SNIPPET: example -->
+ *  <div>The following action tag will execute result and include it in this 
page</div>
+ *     <br />
+ *     <s:action name="actionTagAction" executeResult="true" />
+ *  <br />
+ *  <div>The following action tag will do the same as above, but invokes 
method specialMethod in action</div>
+ *     <br />
+ *     <s:action name="actionTagAction!specialMethod" executeResult="true" />
+ *  <br />
+ *  <div>The following action tag will not execute result, but put a String in 
request scope
+ *       under an id "stringByAction" which will be retrieved using property 
tag</div>
+ *  <s:action name="actionTagAction!default" executeResult="false" />
+ *  <s:property value="#attr.stringByAction" />
+ * <!-- END SNIPPET: example -->
+ * </pre>
+ *
+ * @s.tag name="action" tld-body-content="JSP" 
tld-tag-class="org.apache.struts2.views.jsp.ActionTag"
+ * description="Execute an action from within a view"
  */
 public class ActionComponent extends Component {
     private static final Log LOG = LogFactory.getLog(ActionComponent.class);
 
-    /**
-     * Store our HttpServletResponse.
-     */
-    protected HttpServletResponse response;
+    protected HttpServletResponse res;
+    protected HttpServletRequest req;
 
-    /**
-     * Store our HttpServletRequest.
-     */
-    protected HttpServletRequest request;
-
-    /**
-     * Store our ActionProxy.
-     */
     protected ActionProxy proxy;
-
-    /**
-     * Store the action mapping name.
-     */
     protected String name;
-
-    /**
-     * Store the action mappinng namespace, if different.
-     */
     protected String namespace;
-
-    /**
-     * Indicate whether to invoke the result class and render its content.
-     */
     protected boolean executeResult;
-
-    /**
-     * Indicate whether to pass the request parameters to the Action 
invocation.
-     */
     protected boolean ignoreContextParams;
 
-    /**
-     * Construct object instance, setting runtime parameters.
-     *
-     * @param stack Our OgnlValueStack
-     * @param request Our HttpServletRequest
-     * @param response Our HttpServletResponse
-     */
-    public ActionComponent(OgnlValueStack stack, HttpServletRequest request, 
HttpServletResponse response) {
+    public ActionComponent(OgnlValueStack stack, HttpServletRequest req, 
HttpServletResponse res) {
         super(stack);
-        this.request = request;
-        this.response = response;
+        this.req = req;
+        this.res = res;
     }
 
-
-    // See superclass for documentation
     public boolean end(Writer writer, String body) {
-        boolean end = super.end(writer, "", false);
-        try {
-            try {
-                writer.flush();
-            } catch (IOException e) {
-                LOG.warn("error while trying to flush writer ", e);
-            }
-            executeAction();
-
-            if ((getId() != null) && (proxy != null)) {
-                getStack().setValue("#attr['" + getId() + "']",
-                        proxy.getAction());
-            }
-        } finally {
-            popComponentStack();
-        }
+       boolean end = super.end(writer, "", false);
+               try {
+                       try {
+                               writer.flush();
+                       } catch (IOException e) {
+                               LOG.warn("error while trying to flush writer ", 
e);
+                       }
+                       executeAction();
+
+                       if ((getId() != null) && (proxy != null)) {
+                               getStack().setValue("#attr['" + getId() + "']",
+                                               proxy.getAction());
+                       }
+               } finally {
+                       popComponentStack();
+               }
         return end;
     }
 
-    /**
-     * Create a context in which to invoke Action class,
-     * passing along context parameters
-     * if ignoreContextParams is FALSE.
-     *
-     * @return A map representing the new context
-     */
     private Map createExtraContext() {
         Map parentParams = null;
 
@@ -145,12 +166,12 @@
         Map application = ctx.getApplication();
 
         Dispatcher du = Dispatcher.getInstance();
-        Map extraContext = du.createContextMap(new RequestMap(request),
+        Map extraContext = du.createContextMap(new RequestMap(req),
                 newParams,
                 session,
                 application,
-                request,
-                response,
+                req,
+                res,
                 servletContext);
 
         OgnlValueStack newStack = new OgnlValueStack(stack);
@@ -162,37 +183,42 @@
         return extraContext;
     }
 
+    public ActionProxy getProxy() {
+        return proxy;
+    }
+
     /**
-     * Invoke the Action class,
-     * If no namespace is provided, attempt to derive a namespace using the 
buildNamespace method.
+     * Execute the requested action.  If no namespace is provided, we'll
+     * attempt to derive a namespace using buildNamespace().  The ActionProxy
+     * and the namespace will be saved into the instance variables proxy and
+     * namespace respectively.
      *
      * @see org.apache.struts2.views.jsp.TagUtils#buildNamespace
      */
     private void executeAction() {
-        // FIXME: our implementation is flawed - the only concept of ! should 
be in DefaultActionMapper
-        boolean allowDynamicMethodCalls = 
"true".equals(Settings.get(StrutsConstants.STRUTS_ENABLE_DYNAMIC_METHOD_INVOCATION));
         String actualName = findString(name, "name", "Action name is required. 
Example: updatePerson");
 
         if (actualName == null) {
             throw new StrutsException("Unable to find value for name " + name);
         }
 
-        String actionName = actualName;
-        String methodName = null;
-
         // handle "name!method" convention.
-        if (allowDynamicMethodCalls) {
-            int exclamation = actualName.lastIndexOf("!");
-            if (exclamation != -1) {
-                actionName = actualName.substring(0, exclamation);
-                methodName = actualName.substring(exclamation + 1);
-            }
+        final String actionName;
+        final String methodName;
+
+        int exclamation = actualName.lastIndexOf("!");
+        if (exclamation != -1) {
+            actionName = actualName.substring(0, exclamation);
+            methodName = actualName.substring(exclamation + 1);
+        } else {
+            actionName = actualName;
+            methodName = null;
         }
 
         String namespace;
 
         if (this.namespace == null) {
-            namespace = TagUtils.buildNamespace(getStack(), request);
+            namespace = TagUtils.buildNamespace(getStack(), req);
         } else {
             namespace = findString(this.namespace);
         }
@@ -202,21 +228,20 @@
         // execute at this point, after params have been set
         try {
             Configuration config = 
Dispatcher.getInstance().getConfigurationManager().getConfiguration();
-            proxy = ActionProxyFactory.getFactory().createActionProxy(config, 
namespace, actionName,
-                    createExtraContext(), executeResult, true);
+            proxy = ActionProxyFactory.getFactory().createActionProxy(config, 
namespace, actionName, createExtraContext(), executeResult, true);
             if (null != methodName) {
                 proxy.setMethod(methodName);
             }
             // set the new stack into the request for the taglib to use
-            request.setAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY, 
proxy.getInvocation().getStack());
+            req.setAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY, 
proxy.getInvocation().getStack());
             proxy.execute();
 
         } catch (Exception e) {
-            String message = "Could not invoke action: " + namespace + "/" + 
actualName;
+            String message = "Could not execute action: " + namespace + "/" + 
actualName;
             LOG.error(message, e);
         } finally {
             // set the old stack back on the request
-            request.setAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY, 
stack);
+            req.setAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY, 
stack);
         }
 
         if ((getId() != null) && (proxy != null)) {
@@ -226,35 +251,41 @@
     }
 
     /**
-     * Expose proxy instance (for testing).
-     *
-     * @return proxy instance
+     * the id (if speficied) to put the action under stack's context.
+     * @s.tagattribute required="false" type="String"
      */
-    public ActionProxy getProxy() {
-        return proxy;
-    }
-
-    // See TLD for documentation
     public void setId(String id) {
         super.setId(id);
     }
 
-    // See TLD for documentation
+    /**
+     * name of the action to be executed (without the extension suffix eg. 
.action)
+     * @s.tagattribute required="true" type="String"
+     */
     public void setName(String name) {
         this.name = name;
     }
 
-    // See TLD for documentation
+    /**
+     * namespace for action to call
+     * @s.tagattribute required="false" type="String" default="namespace from 
where tag is used"
+     */
     public void setNamespace(String namespace) {
         this.namespace = namespace;
     }
 
-    // See TLD for documentation
+    /**
+     * whether the result of this action (probably a view) should be 
executed/rendered
+     * @s.tagattribute required="false" type="Boolean" default="false"
+     */
     public void setExecuteResult(boolean executeResult) {
         this.executeResult = executeResult;
     }
 
-    // See TLD for documentation
+    /**
+     * whether the request parameters are to be included when the action is 
invoked
+     * @s.tagattribute required="false" type="Boolean" default="false"
+     */
     public void setIgnoreContextParams(boolean ignoreContextParams) {
         this.ignoreContextParams = ignoreContextParams;
     }

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ActionError.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ActionError.java?rev=439109&r1=439108&r2=439109&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ActionError.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/ActionError.java
 Thu Aug 31 17:00:52 2006
@@ -23,32 +23,38 @@
 import javax.servlet.http.HttpServletResponse;
 
 /**
- * Render action errors, if they exist,
- * obtaining the layout from theme.
+ * <!-- START SNIPPET: javadoc -->
+ *
+ * Render action errors if they exists the specific layout of the rendering 
depends on
+ * the theme itself.
+ *
+ * <!-- END SNIPPET: javadoc -->
+ *
+ * <p/> <b>Examples</b>
+ *
+ * <pre>
+ * <!-- START SNIPPET: example -->
+ *
+ *    &lt;s:actionerror /&gt;
+ *    &lt;s:form .... &gt;>
+ *       ....
+ *    &lt;/s:form&gt;
+ *
+ * <!-- END SNIPPET: example -->
+ * </pre>
+ *
+ * @s.tag name="actionerror" tld-body-content="empty" 
tld-tag-class="org.apache.struts2.views.jsp.ui.ActionErrorTag"
+ * description="Render action errors if they exists"
  */
 public class ActionError extends UIBean {
 
-    /**
-     * Provide the tag template name.
-     */
-    private static final String TEMPLATE = "actionerror";
+    public static final String TEMPLATE = "actionerror";
+
 
-    /**
-     * Construct object instance, setting runtime parameters.
-     *
-     * @param stack Our OgnlValueStack
-     * @param request Our HttpServletRequest
-     * @param response Our HttpServletResponse
-     */
     public ActionError(OgnlValueStack stack, HttpServletRequest request, 
HttpServletResponse response) {
         super(stack, request, response);
     }
 
-    /**
-     * Provide the tag's default template.
-     *
-     * @return the tag's default template
-     */
     protected String getDefaultTemplate() {
         return TEMPLATE;
     }

Modified: struts/struts2/trunk/core/src/main/resources/META-INF/struts-tags.tld
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/resources/META-INF/struts-tags.tld?rev=439109&r1=439108&r2=439109&view=diff
==============================================================================
--- struts/struts2/trunk/core/src/main/resources/META-INF/struts-tags.tld 
(original)
+++ struts/struts2/trunk/core/src/main/resources/META-INF/struts-tags.tld Thu 
Aug 31 17:00:52 2006
@@ -13,8 +13,7 @@
     <description><![CDATA[
     To make it easier to access dynamic data,
     the Apache Struts framework includes a library of custom tags.
-    The tags interact with the framework's expression language,
-    and its validation and internationalization features,
+    The tags interact with the framework's validation and internationalization 
features,
     to ensure that input is correct and output is localized.
     The Struts Tags can be used with JSP, FreeMarker, or Velocity.
     ]]></description>
@@ -3005,87 +3004,51 @@
         <name>action</name>
         <tag-class>org.apache.struts2.views.jsp.ActionTag</tag-class>
         <body-content>JSP</body-content>
-        <description>
-            Invoke an action directly from a view.
-            Tag attributes specify an action name and an optional namespace.
-            Tag body content renders the result from the Action.
-            If the executeResult attribute is TRUE,
-            any result class specified by the action mapping is invoked and 
rendered,
-            otherwise the result is ignored.
-        </description>
+        <description><![CDATA[Execute an action from within a 
view]]></description>
+
         <attribute>
             <name>id</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>If specified, the action's stack context 
ID</description>
+
+            <description><![CDATA[the id (if speficied) to put the action 
under stack's context.]]></description>
+
         </attribute>
         <attribute>
             <name>name</name>
             <required>true</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>Action mapping to invoke</description>
+
+            <description>
+                <![CDATA[name of the action to be executed (without the 
extension suffix eg. .action)]]></description>
+
         </attribute>
         <attribute>
             <name>namespace</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>The action mapping's namespace (if different than the 
current namespace)</description>
+
+            <description><![CDATA[namespace for action to call]]></description>
+
         </attribute>
         <attribute>
             <name>executeResult</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>If TRUE, invoke the result class, rendering its 
content (if any)</description>
+
+            <description>
+                <![CDATA[whether the result of this action (probably a view) 
should be executed/rendered]]></description>
+
         </attribute>
         <attribute>
             <name>ignoreContextParams</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>If FALSE, include the request parameters during the 
action invocation</description>
+
+            <description>
+                <![CDATA[whether the request parameters are to be included 
when the action is invoked]]></description>
+
         </attribute>
-        <example><![CDATA[
-// Action class
-public class ActionTagAction extends ActionSupport {
-
-  public String execute() throws Exception {
-    return SUCCESS;
-  }
-
-  public String alternate() throws Exception {
-    ServletActionContext.getRequest().setAttribute("actionAttribute",
-      "This string is a request attribute set by the ActionTagAction's 
alternate() method.");
-      return SUCCESS;
-    }
-  }
-
-  <!-- Struts configuation -->
-  <struts>
-  ....
-  <action name="ActionTagAction1" class="testing.ActionTagAction">
-    <result>success.jsp</result>
-  </action>
-    <action name="ActionTagAction2" class="testing.ActionTagAction" 
method="alternate">
-    <result name="done">success.jsp</result>
-  </action>
-  ....
-  </struts>
-
-  <!-- Struts tags (in a server page) -->
-  <div>
-  <p>
-    Content rendered by another Action, invoked as this page is being rendered:
-  </p>
-  <s:action name="ActionTagAction1" executeResult="true" />
-  </div><div>
-  <p>
-    Content placed into the context by another Action, invoked as this page is 
being rendered:
-  </p>
-  <s:action name="ActionTagAction2" executeResult="false" />
-  <s:property value="#attr.actionAttribute" />
-  <p>
-    (Note that the Action itself did not render a result.)
-  </p>
-        ]]></example>
 
     </tag>
     <tag>
@@ -3523,219 +3486,275 @@
         <name>actionerror</name>
         <tag-class>org.apache.struts2.views.jsp.ui.ActionErrorTag</tag-class>
         <body-content>empty</body-content>
-        <description>
-             Render action errors, if they exist, obtaining the layout from 
theme.
-        </description>
+        <description><![CDATA[Render action errors if they 
exists]]></description>
+
         <attribute>
             <name>theme</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>Theme (other than default) to use for rendering the 
element</description>
+
+            <description><![CDATA[The theme (other than default) to use for 
rendering the element]]></description>
+
         </attribute>
         <attribute>
             <name>templateDir</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>Template directory (other than default) to use to 
find the themes (and hence the template)</description>
+
+            <description>
+                <![CDATA[The template directory (other than default) to used 
to find the themes and hence the template.]]></description>
+
         </attribute>
         <attribute>
             <name>template</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>Template (other than default) to use for rendering 
the element</description>
+
+            <description><![CDATA[The template (other than default) to use for 
rendering the element]]></description>
+
         </attribute>
         <attribute>
             <name>cssClass</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>Cascading Style Sheet class (other than default)for 
element to use</description>
+
+            <description><![CDATA[The css class to use for 
element]]></description>
+
         </attribute>
         <attribute>
             <name>cssStyle</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>Cascading Style Sheet definitions for element to 
use</description>
+
+            <description><![CDATA[The css style definitions for element ro 
use]]></description>
+
         </attribute>
         <attribute>
             <name>title</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>HTML title attribute for element to use</description>
+
+            <description><![CDATA[Set the html title attribute on rendered 
html element]]></description>
+
         </attribute>
         <attribute>
             <name>disabled</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>HTML disabled attribute for element to 
use</description>
+
+            <description><![CDATA[Set the html disabled attribute on rendered 
html element]]></description>
+
         </attribute>
         <attribute>
             <name>label</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>Label expression used for rendering a element 
specific label</description>
+
+            <description><![CDATA[Label expression used for rendering a 
element specific label]]></description>
+
         </attribute>
         <attribute>
             <name>labelPosition</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
+
             <description><![CDATA[deprecated.]]></description>
+
         </attribute>
         <attribute>
             <name>labelposition</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>Label position for form element 
(top/left)</description>
+
+            <description><![CDATA[define label position of form element 
(top/left)]]></description>
+
         </attribute>
         <attribute>
             <name>requiredposition</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>Required position for form element 
(left|right)</description>
+
+            <description><![CDATA[define required position of required form 
element (left|right)]]></description>
+
         </attribute>
         <attribute>
             <name>name</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>Name for element</description>
+
+            <description><![CDATA[The name to set for element]]></description>
+
         </attribute>
         <attribute>
             <name>required</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
+
             <description>
-                If TRUE, rendered element will indicate that input is required.
-            </description>
+                <![CDATA[If set to true, the rendered element will indicate 
that input is required]]></description>
+
         </attribute>
         <attribute>
             <name>tabindex</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>HTML tabindex attribute for rendered HTML 
element</description>
+
+            <description><![CDATA[Set the html tabindex attribute on rendered 
html element]]></description>
+
         </attribute>
         <attribute>
             <name>value</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>Preset value of input element</description>
+
+            <description><![CDATA[Preset the value of input 
element.]]></description>
+
         </attribute>
         <attribute>
             <name>onclick</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>HTML attribute for rendered element</description>
+
+            <description><![CDATA[Set the html onclick attribute on rendered 
html element]]></description>
+
         </attribute>
         <attribute>
             <name>ondblclick</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>HTML attribute for rendered element</description>
+
+            <description><![CDATA[Set the html ondblclick attribute on 
rendered html element]]></description>
+
         </attribute>
         <attribute>
             <name>onmousedown</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>HTML attribute for rendered element</description>
+
+            <description><![CDATA[Set the html onmousedown attribute on 
rendered html element]]></description>
+
         </attribute>
         <attribute>
             <name>onmouseup</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>HTML attribute for rendered element</description>
+
+            <description><![CDATA[Set the html onmouseup attribute on rendered 
html element]]></description>
+
         </attribute>
         <attribute>
             <name>onmouseover</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>HTML attribute for rendered element</description>
+
+            <description><![CDATA[Set the html onmouseover attribute on 
rendered html element]]></description>
+
         </attribute>
         <attribute>
             <name>onmousemove</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>HTML attribute for rendered element</description>
+
+            <description><![CDATA[Set the html onmousemove attribute on 
rendered html element]]></description>
+
         </attribute>
         <attribute>
             <name>onmouseout</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>HTML attribute for rendered element</description>
+
+            <description><![CDATA[Set the html onmouseout attribute on 
rendered html element]]></description>
+
         </attribute>
         <attribute>
             <name>onfocus</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>HTML attribute for rendered element</description>
+
+            <description><![CDATA[Set the html onfocus attribute on rendered 
html element]]></description>
+
         </attribute>
         <attribute>
             <name>onblur</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>HTML attribute for rendered element</description>
+
+            <description><![CDATA[Set the html onblur attribute on rendered 
html element]]></description>
+
         </attribute>
         <attribute>
             <name>onkeypress</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>HTML attribute for rendered element</description>
+
+            <description><![CDATA[Set the html onkeypress attribute on 
rendered html element]]></description>
+
         </attribute>
         <attribute>
             <name>onkeydown</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>HTML attribute for rendered element</description>
+
+            <description><![CDATA[Set the html onkeydown attribute on rendered 
html element]]></description>
+
         </attribute>
         <attribute>
             <name>onkeyup</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>HTML attribute for rendered element</description>
+
+            <description><![CDATA[Set the html onkeyup attribute on rendered 
html element]]></description>
+
         </attribute>
         <attribute>
             <name>onselect</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>HTML attribute for rendered element</description>
+
+            <description><![CDATA[Set the html onselect attribute on rendered 
html element]]></description>
+
         </attribute>
         <attribute>
             <name>onchange</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>HTML attribute for rendered element</description>
+
+            <description><![CDATA[Set the html onchange attribute on rendered 
html element]]></description>
+
         </attribute>
         <attribute>
             <name>accesskey</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>HTML attribute for rendered element</description>
+
+            <description><![CDATA[Set the html accesskey attribute on rendered 
html ekement]]></description>
+
         </attribute>
         <attribute>
             <name>tooltip</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>Tooltip attribute for rendered element</description>
+
+            <description><![CDATA[Set the tooltip of this particular 
component]]></description>
+
         </attribute>
         <attribute>
             <name>tooltipConfig</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
-            <description>TooltipConfig attribute for rendered 
element</description>
+
+            <description><![CDATA[Set the tooltip 
configuration]]></description>
+
         </attribute>
         <attribute>
             <name>id</name>
             <required>false</required>
             <rtexprvalue>true</rtexprvalue>
+
             <description>
-                Unique id for referencing element.
-                For UI and form tags it will be used as HTML id attribute
-            </description>
+                <![CDATA[id for referencing element. For UI and form tags it 
will be used as HTML id attribute]]></description>
+
         </attribute>
-        <example><![CDATA[
-// Note that the tag provides its own formatting
-<s:actionerror />
-<s:form ... >
-...
-</s:form>
-         ]]></example>
 
     </tag>
     <tag>
@@ -3743,7 +3762,7 @@
         <name>if</name>
         <tag-class>org.apache.struts2.views.jsp.IfTag</tag-class>
         <body-content>JSP</body-content>
-        <description>If tag</description>
+        <description><![CDATA[If tag]]></description>
 
         <attribute>
             <name>test</name>


Reply via email to