WW-2870:
Fix wrong tag

git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_X@718146 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/api/pom.xml b/api/pom.xml
deleted file mode 100644
index 9e2c8ca..0000000
--- a/api/pom.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.struts</groupId>
-        <artifactId>struts2-parent</artifactId>
-        <version>2.0.5</version>
-    </parent>
-    <groupId>org.apache.struts</groupId>
-    <artifactId>struts2-api</artifactId>
-    <packaging>jar</packaging>
-    <name>Struts 2 API</name>
-
-    <scm>
-       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/api/</connection>
-       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/api/</developerConnection>
-       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/api/</url>
-    </scm>
-
-   <dependencies>
-        <dependency>
-           <groupId>javax.servlet</groupId>
-           <artifactId>servlet-api</artifactId>
-           <version>2.4</version>
-           <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>3.8.1</version>
-            <scope>test</scope>
-            <!-- has to be compile for StrutsTestCase, which is part of the base package so others can write unit tests -->
-            <optional>true</optional>
-        </dependency>            
-        <dependency>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <scope>test</scope>
-            <version>2.0</version>
-        </dependency>
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-                <configuration>
-                    <showPackage>false</showPackage>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
diff --git a/api/src/main/java/org/apache/struts2/Action.java b/api/src/main/java/org/apache/struts2/Action.java
deleted file mode 100644
index ae46570..0000000
--- a/api/src/main/java/org/apache/struts2/Action.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2;
-
-/**
- * Default action interface. Provided purely for user convenience. Struts does not require actions to implement any
- * interfaces. Actions need only implement a public, no argument method which returns {@code String}. If a user does
- * not specify a method name, Struts defaults to {@code execute()}.
- *
- * <p>For example:
- *
- * <pre>
- *   static import ResultNames.*;
- *
- *   public class MyAction <b>implements Action</b> {
- *
- *     public String execute() {
- *       return SUCCESS;
- *     }
- *   }
- * </pre>
- *
- * <p>is equivalent to:
- *
- * <pre>
- *   static import ResultNames.*;
- *
- *   public class MyAction {
- *
- *     public String execute() {
- *       return SUCCESS;
- *     }
- *   }
- * </pre>
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface Action {
-
-    /**
-     * Executes this action.
-     *
-     * @return result name which matches a result name from the action mapping in the configuration file. See {@link
-     *  ResultNames} for common suggestions.
-     */
-    String execute();
-}
diff --git a/api/src/main/java/org/apache/struts2/MessageAware.java b/api/src/main/java/org/apache/struts2/MessageAware.java
deleted file mode 100644
index 6dd380b..0000000
--- a/api/src/main/java/org/apache/struts2/MessageAware.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2;
-
-/**
- * Implemented by actions which may need to record errors or messages.
- *
- * <pre>
- *   static import ResultNames.*;
- *
- *   public class SetName implements MessageAware {
- *
- *     Messages messages;
- *     String name;
- *
- *     public String execute() {
- *       return SUCCESS;
- *     }
- *
- *     public void setName(String name) {
- *       if ("".equals(name))
- *         messages.forField("name").addError("name.required");
- *
- *       this.name = name;
- *     }
- *
- *     public void setMessages(Messages messages) {
- *       this.messages = messages;
- *     }
- *   }
- * </pre>
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface MessageAware {
-
-    /**
-     * Sets messages.
-     *
-     * @param messages messages
-     */
-    void setMessages(Messages messages);
-}
diff --git a/api/src/main/java/org/apache/struts2/Messages.java b/api/src/main/java/org/apache/struts2/Messages.java
deleted file mode 100644
index bce30de..0000000
--- a/api/src/main/java/org/apache/struts2/Messages.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2;
-
-import java.util.List;
-import java.util.Set;
-import java.util.Map;
-
-/**
- * Collection of messages. Supports nesting messages by field name.
- *
- * <p>Uses keys when adding instead of actual messages to decouple code from messages.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface Messages {
-
-    // TODO: Use Object[] for args instead of String[].
-
-    /**
-     * Message severity.
-     */
-    public enum Severity {
-
-        /**
-         * Informational messages.
-         */
-        INFO,
-
-        /**
-         * Warning messages.
-         */
-        WARN,
-
-        /**
-         * Error messages.
-         */
-        ERROR,
-    }
-
-    /**
-     * Gets nested messages for the given field.
-     *
-     * <p>Supports dot notation to represent nesting. For example:
-     *
-     * <pre>
-     * messages.forField("foo").forField("bar") == messages.forField("foo.bar")
-     * </pre>
-     *
-     * @param fieldName name of the field
-     * @return nested {@code Messages} for given field name
-     */
-    Messages forField(String fieldName);
-
-    /**
-     * Gets map of field name to messages for that field.
-     *
-     * @return map of field name to {@code Messages}
-     */
-    Map<String, Messages> forFields();
-
-    /**
-     * Adds informational message.
-     *
-     * @param key message key
-     * @see Severity.INFO
-     */
-    void addInformation(String key);
-
-    /**
-     * Adds informational message.
-     *
-     * @param key message key
-     * @param arguments message arguments
-     * @see Severity.INFO
-     */
-    void addInformation(String key, String... arguments);
-
-    /**
-     * Adds warning message.
-     *
-     * @param key message key
-     * @see Severity.WARN
-     */
-    void addWarning(String key);
-
-    /**
-     * Adds warning message.
-     *
-     * @param key message key
-     * @param arguments message arguments
-     * @see Severity.WARN
-     */
-    void addWarning(String key, String... arguments);
-
-    /**
-     * Adds error message.
-     *
-     * @param key message key
-     * @see Severity.ERROR
-     */
-    void addError(String key);
-
-    /**
-     * Adds error message.
-     *
-     * @param key message key
-     * @param arguments message arguments
-     * @see Severity.ERROR
-     */
-    void addError(String key, String... arguments);
-
-    /**
-     * Adds message.
-     *
-     * @param severity message severity
-     * @param key message key
-     */
-    void add(Severity severity, String key);
-
-    /**
-     * Adds request-scoped message.
-     *
-     * @param severity message severity
-     * @param key message key
-     * @param arguments message arguments
-     */
-    void add(Severity severity, String key, String... arguments);
-
-    /**
-     * Gets set of severities for which this {@code Messages} instance has messages. Not recursive.
-     *
-     * @return unmodifiable set of {@link Severity} sorted from least to most severe
-     */
-    Set<Severity> getSeverities();
-
-    /**
-     * Gets message strings for the given severity. Not recursive.
-     *
-     * @param severity message severity
-     * @return unmodifiable list of messages
-     */
-    List<String> forSeverity(Severity severity);
-
-    /**
-     * Gets error message strings for this {@code Messages} instance. Not recursive.
-     *
-     * @return unmodifiable list of messages
-     */
-    List<String> getErrors();
-
-    /**
-     * Gets error message strings for this {@code Messages} instance. Not recursive.
-     *
-     * @return unmodifiable list of messages
-     */
-    List<String> getWarnings();
-
-    /**
-     * Gets informational message strings for this {@code Messages} instance. Not recursive.
-     *
-     * @return unmodifiable list of messages
-     */
-    List<String> getInformation();
-
-    /**
-     * Returns true if this or a nested {@code Messages} instance has error messages.
-     *
-     * @see Severity.ERROR
-     */
-    boolean hasErrors();
-
-    /**
-     * Returns true if this or a nested {@code Messages} instance has warning messages.
-     *
-     * @see Severity.WARN
-     */
-    boolean hasWarnings();
-
-    /**
-     * Returns true if this or a nested {@code Messages} instance has informational messages.
-     *
-     * @see Severity.INFO
-     */
-    boolean hasInformation();
-
-    /**
-     * Returns true if this and all nested {@code Messages} instances have no messages.
-     */
-    boolean isEmpty();
-
-    /**
-     * Returns true if this and all nested {@code Messages} instances have no messages for the given severity.
-     *
-     * @param severity message severity
-     */
-    boolean isEmpty(Severity severity);
-}
\ No newline at end of file
diff --git a/api/src/main/java/org/apache/struts2/ResultNames.java b/api/src/main/java/org/apache/struts2/ResultNames.java
deleted file mode 100644
index fd5955c..0000000
--- a/api/src/main/java/org/apache/struts2/ResultNames.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2;
-
-/**
- * Commonly used result names returned by action methods.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public final class ResultNames {
-
-    private ResultNames() {}
-
-    /**
-     * The action executed successfully.
-     */
-    public static final String SUCCESS = "success";
-
-    /**
-     * The action requires more input, i.e.&nbsp;a validation error occurred.
-     */
-    public static final String INPUT = "input";
-
-    /**
-     * The action requires the user to log in before executing.
-     */
-    public static final String LOGIN = "login";
-
-    /**
-     * The action execution failed irrecoverably.
-     */
-    public static final String ERROR = "error";
-
-    /**
-     * The action executed successfully, but do not execute a result.
-     */
-    public static final String NONE = "none";
-}
diff --git a/api/src/main/java/org/apache/struts2/servlet/ParameterAware.java b/api/src/main/java/org/apache/struts2/servlet/ParameterAware.java
deleted file mode 100644
index df705fb..0000000
--- a/api/src/main/java/org/apache/struts2/servlet/ParameterAware.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.servlet;
-
-import java.util.Map;
-
-/**
- * Implemented by actions which need direct access to the request parameters.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface ParameterAware {
-
-    /**
-     * Sets parameters.
-     *
-     * @param parameters map of parameter name to parameter values
-     */
-    void setParameters(Map<String, String[]> parameters);
-}
diff --git a/api/src/main/java/org/apache/struts2/servlet/ServletRequestAware.java b/api/src/main/java/org/apache/struts2/servlet/ServletRequestAware.java
deleted file mode 100644
index cf1a44c..0000000
--- a/api/src/main/java/org/apache/struts2/servlet/ServletRequestAware.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.servlet;
-
-import javax.servlet.http.HttpServletRequest;
-
-/**
- * Implemented by actions which need direct access to the servlet request.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface ServletRequestAware {
-
-    /**
-     * Sets the servlet request.
-     *
-     * @param request servlet request.
-     */
-    void setServletRequest(HttpServletRequest request);
-}
diff --git a/api/src/main/java/org/apache/struts2/servlet/ServletResponseAware.java b/api/src/main/java/org/apache/struts2/servlet/ServletResponseAware.java
deleted file mode 100644
index c36726f..0000000
--- a/api/src/main/java/org/apache/struts2/servlet/ServletResponseAware.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.servlet;
-
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * Implemented by actions which need direct access to the servlet response.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface ServletResponseAware {
-
-    /**
-     * Sets the servlet response.
-     *
-     * @param response servlet response
-     */
-    void setServletResponse(HttpServletResponse response);
-}
diff --git a/api/src/main/java/org/apache/struts2/spi/ActionContext.java b/api/src/main/java/org/apache/struts2/spi/ActionContext.java
deleted file mode 100644
index 5546fa4..0000000
--- a/api/src/main/java/org/apache/struts2/spi/ActionContext.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.spi;
-
-import java.lang.reflect.Method;
-
-/**
- * Context of an action execution.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface ActionContext {
-
-    /**
-     * Gets action instance.
-     */
-    Object getAction();
-
-    /**
-     * Gets action method.
-     */
-    Method getMethod();
-
-    /**
-     * Gets action name.
-     */
-    String getActionName();
-
-    /**
-     * Gets the path for the action's namespace.
-     */
-    String getNamespacePath();
-
-    /**
-     * Gets the {@link Result} instance for the action.
-     *
-     * @return {@link Result} instance or {@code null} if we don't have a result yet.
-     */
-    Result getResult();
-
-    /**
-     * Adds a result interceptor for the action. Enables executing code before and after a result, executing an
-     * alternate result, etc.
-     */
-    void addResultInterceptor(Result interceptor);
-
-    /**
-     * Gets context of action which chained to us.
-     *
-     * @return context of previous action or {@code null} if this is the first action in the chain
-     */
-    ActionContext getPrevious();
-
-    /**
-     * Gets context of action which this action chained to.
-     *
-     * @return context of next action or {@code null} if we haven't chained to another action yet or this is the last
-     *  action in the chain.
-     */
-    ActionContext getNext();
-}
diff --git a/api/src/main/java/org/apache/struts2/spi/RequestContext.java b/api/src/main/java/org/apache/struts2/spi/RequestContext.java
deleted file mode 100644
index c08b08a..0000000
--- a/api/src/main/java/org/apache/struts2/spi/RequestContext.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.spi;
-
-import org.apache.struts2.Messages;
-
-import javax.servlet.ServletContext;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-/**
- * Request context. A single request may span multiple actions with action chaining.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface RequestContext {
-
-    /**
-     * Gets context of the currently executing action.
-     *
-     * @return current action context
-     */
-    ActionContext getActionContext();
-
-    /**
-     * Convenience method.&nbsp;Equivalent to {@code getActionContext().getAction()}.
-     *
-     * @return currently executing action
-     */
-    Object getAction();
-
-    /**
-     * Gets map of request parameters.
-     */
-    Map<String, String[]> getParameterMap();
-
-    /**
-     * Gets map of request attributes.
-     */
-    Map<String, Object> getAttributeMap();
-
-    /**
-     * Gets map of session attributes.
-     */
-    Map<String, Object> getSessionMap();
-
-    /**
-     * Gets map of application (servlet context) attributes.
-     */
-    Map<String, Object> getApplicationMap();
-
-    /**
-     * Finds cookies with the given name,
-     */
-    List<Cookie> findCookiesForName(String name);
-
-    /**
-     * Gets locale.
-     */
-    Locale getLocale();
-
-    /**
-     * Sets locale. Stores the locale in the session for future requests.
-     */
-    void setLocale(Locale locale);
-
-    /**
-     * Gets messages.
-     */
-    Messages getMessages();
-
-    /**
-     * Gets the servlet request.
-     */
-    HttpServletRequest getServletRequest();
-
-    /**
-     * Gets the servlet response.
-     */
-    HttpServletResponse getServletResponse();
-
-    /**
-     * Gets the servlet context.
-     */
-    ServletContext getServletContext();
-
-    /**
-     * Gets the value stack.
-     */
-    ValueStack getValueStack();
-
-    /**
-     * Invokes the next interceptor or the action method if no more interceptors remain.
-     *
-     * @return result name
-     * @throws IllegalStateException if already invoked or called from the action
-     */
-    String proceed() throws Exception;
-}
diff --git a/api/src/main/java/org/apache/struts2/spi/RequestContextAware.java b/api/src/main/java/org/apache/struts2/spi/RequestContextAware.java
deleted file mode 100644
index 342599b..0000000
--- a/api/src/main/java/org/apache/struts2/spi/RequestContextAware.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.spi;
-
-import org.apache.struts2.spi.RequestContext;
-
-/**
- * Implemented by actions that need access to the current {@link org.apache.struts2.spi.RequestContext}. Use
- * judiciously.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface RequestContextAware {
-
-    /**
-     * Sets {@link org.apache.struts2.spi.RequestContext}.
-     *
-     * @param requestContext
-     */
-    void setRequestContext(RequestContext requestContext);
-}
diff --git a/api/src/main/java/org/apache/struts2/spi/Result.java b/api/src/main/java/org/apache/struts2/spi/Result.java
deleted file mode 100644
index 07913cc..0000000
--- a/api/src/main/java/org/apache/struts2/spi/Result.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.spi;
-
-import org.apache.struts2.spi.RequestContext;
-
-/**
- * The result of an action request. Struts creates a new {@code Result} instance for each request.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface Result {
-
-    /**
-     * Executes result.
-     *
-     * @param requestContext
-     */
-    void execute(RequestContext requestContext) throws Exception;
-}
diff --git a/api/src/main/java/org/apache/struts2/spi/ValueStack.java b/api/src/main/java/org/apache/struts2/spi/ValueStack.java
deleted file mode 100644
index bd61922..0000000
--- a/api/src/main/java/org/apache/struts2/spi/ValueStack.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.spi;
-
-/**
- * A central fixture of the Struts framework, the {@code ValueStack} is a stack which contains the actions
- * which have executed in addition to other objects. Users can get and set values on the stack using expressions. The
- * {@code ValueStack} will search down the stack starting with the most recent objects until it finds an object to
- * which the expression can apply.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface ValueStack extends Iterable<Object> {
-
-    /**
-     * Gets the top, most recent object from the stack without changing the stack.
-     *
-     * @return the top object
-     */
-    Object peek();
-
-    /**
-     * Removes the top, most recent object from the stack.
-     *
-     * @return the top object
-     */
-    Object pop();
-
-    /**
-     * Pushes an object onto the stack.
-     *
-     * @param o
-     */
-    void push(Object o);
-
-    /**
-     * Creates a shallow copy of this stack.
-     *
-     * @return a new stack which contains the same objects as this one
-     */
-    ValueStack clone();
-
-    /**
-     * Queries the stack. Starts with the top, most recent object. If the expression can apply to the object, this
-     * method returns the result of evaluating the expression. If the expression does not apply, this method moves
-     * down the stack to the next object and repeats. Returns {@code null} if the expression doesn't apply to any
-     * objects.
-     *
-     * @param expression
-     * @return the evaluation of the expression against the first applicable object in the stack
-     */
-    Object get(String expression);
-
-    /**
-     * Queries the stack and converts the result to the specified type. Starts with the top, most recent object. If
-     * the expression can apply to the object, this method returns the result of evaluating the expression converted
-     * to the specified type. If the expression does not apply, this method moves down the stack to the next object
-     * and repeats. Returns {@code null} if the expression doesn't apply to any objects.
-     *
-     * @param expression
-     * @param asType the type to convert the result to
-     * @return the evaluation of the expression against the first applicable object in the stack converted to the
-     *  specified type
-     */
-    <T> T get(String expression, Class<T> asType);
-
-    /**
-     * Queries the stack and converts the result to a {@code String}. Starts with the top, most recent object. If the
-     * expression can apply to the object, this method returns the result of evaluating the expression converted to a
-     * {@code String}. If the expression does not apply, this method moves down the stack to the next object and
-     * repeats. Returns {@code null} if the expression doesn't apply to any objects.
-     *
-     * @param expression
-     * @return the evaluation of the expression against the first applicable object in the stack converted to a {@code
-     *  String}
-     */
-    String getString(String expression);
-
-    /**
-     * Sets a value on an object from the stack. This method starts at the top, most recent object. If the expression
-     * applies to that object, this methods sets the given value on that object using the expression and converting
-     * the type as necessary. If the expression does not apply, this method moves to the next object and repeats.
-     *
-     * @param expression
-     * @param value
-     */
-    void set(String expression, Object value);
-
-    /**
-     * Returns the number of object on the stack.
-     *
-     * @return size of stack
-     */
-    int size();
-}
diff --git a/api/src/main/resources/LICENSE.txt b/api/src/main/resources/LICENSE.txt
deleted file mode 100644
index dd5b3a5..0000000
--- a/api/src/main/resources/LICENSE.txt
+++ /dev/null
@@ -1,174 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
diff --git a/apps/blank/pom.xml b/apps/blank/pom.xml
index 9aeb186..cfc4218 100644
--- a/apps/blank/pom.xml
+++ b/apps/blank/pom.xml
@@ -1,11 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-apps</artifactId>
-        <version>2.0.5</version>
+        <version>2.0.14</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-blank</artifactId>
@@ -13,9 +12,9 @@
     <name>Blank Webapp</name>
 
     <scm>
-       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/apps/blank/</connection>
-       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/apps/blank/</developerConnection>
-       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/apps/blank/</url>
+       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/apps/blank</connection>
+       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/apps/blank</developerConnection>
+       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/tags/STRUTS_2_0_14/apps/blank</url>
     </scm>
 
     <dependencies>
@@ -47,18 +46,11 @@
         <plugins>
             <plugin>
                 <groupId>org.mortbay.jetty</groupId>
-                <artifactId>maven-jetty6-plugin</artifactId>
+                <artifactId>maven-jetty-plugin</artifactId>
+                <version>6.0.1</version>
                 <configuration>
                     <scanIntervalSeconds>10</scanIntervalSeconds>
                 </configuration>
-                <dependencies>
-                    <dependency>
-                        <groupId>org.apache.geronimo.specs</groupId>
-                        <artifactId>geronimo-j2ee_1.4_spec</artifactId>
-                        <version>1.0</version>
-                        <scope>provided</scope>
-                    </dependency>
-                </dependencies>
             </plugin>
         </plugins>
     </build>
diff --git a/apps/blank/src/main/resources/struts.xml b/apps/blank/src/main/resources/struts.xml
index fd51dd5..03f4f9b 100644
--- a/apps/blank/src/main/resources/struts.xml
+++ b/apps/blank/src/main/resources/struts.xml
@@ -6,7 +6,7 @@
 <struts>
 
     <constant name="struts.enable.DynamicMethodInvocation" value="false" />
-    <constant name="struts.devMode" value="true" />
+    <constant name="struts.devMode" value="false" />
 
     <include file="example.xml"/>
 
diff --git a/apps/mailreader/pom.xml b/apps/mailreader/pom.xml
index c797a66..cc13cdd 100644
--- a/apps/mailreader/pom.xml
+++ b/apps/mailreader/pom.xml
@@ -1,11 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
       <groupId>org.apache.struts</groupId>
       <artifactId>struts2-apps</artifactId>
-      <version>2.0.5</version>
+      <version>2.0.14</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-mailreader</artifactId>
@@ -13,13 +12,13 @@
     <name>Starter Webapp</name>
 
     <scm>
-       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/apps/mailreader/</connection>
-       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/apps/mailreader/</developerConnection>
-       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/apps/mailreader/</url>
+       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/apps/mailreader</connection>
+       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/apps/mailreader</developerConnection>
+       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/tags/STRUTS_2_0_14/apps/mailreader</url>
     </scm>
 
     <dependencies>
-    
+
         <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
@@ -31,14 +30,8 @@
            <artifactId>struts-mailreader-dao</artifactId>
            <version>1.3.5</version>
         </dependency>
-        <dependency>
-            <groupId>org.apache.struts</groupId>
-            <artifactId>struts2-spring-plugin</artifactId>
-            <version>${pom.version}</version>
-        </dependency>
-
     </dependencies>
-    
+
     <build>
         <resources>
             <resource>
diff --git a/apps/mailreader/src/main/java/applicationContext.xml b/apps/mailreader/src/main/java/applicationContext.xml
deleted file mode 100644
index b98e1d8..0000000
--- a/apps/mailreader/src/main/java/applicationContext.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
-
-<beans default-autowire="autodetect">
-    <!-- add your spring beans here -->
-</beans>
\ No newline at end of file
diff --git a/apps/mailreader/src/main/java/mailreader2/Logon-validation.xml b/apps/mailreader/src/main/java/mailreader2/Login-validation.xml
similarity index 100%
rename from apps/mailreader/src/main/java/mailreader2/Logon-validation.xml
rename to apps/mailreader/src/main/java/mailreader2/Login-validation.xml
diff --git a/apps/mailreader/src/main/java/mailreader2/MailreaderSupport.java b/apps/mailreader/src/main/java/mailreader2/MailreaderSupport.java
index 1886d02..50ca23a 100644
--- a/apps/mailreader/src/main/java/mailreader2/MailreaderSupport.java
+++ b/apps/mailreader/src/main/java/mailreader2/MailreaderSupport.java
@@ -32,8 +32,6 @@
 import org.apache.struts.apps.mailreader.dao.UserDatabase;
 import org.apache.struts.apps.mailreader.dao.impl.memory.MemorySubscription;
 import org.apache.struts.apps.mailreader.dao.impl.memory.MemoryUser;
-import org.springframework.beans.BeanUtils;
-
 import java.util.Map;
 
 /**
@@ -63,6 +61,28 @@
         return Constants.CANCEL;
     }
 
+    /**
+     * Convenience method to copy User properties.
+     **/
+    protected void copyUser(User source, User target) {
+      if ((source==null) || (target==null)) return;
+      target.setFromAddress(source.getFromAddress());
+      target.setFullName(source.getFullName());
+      target.setPassword(source.getPassword());
+      target.setReplyToAddress(source.getReplyToAddress());
+    }
+
+    /**
+     * Convenience method to copy Subscription properties.
+     **/
+    protected void copySubscription(Subscription source, Subscription target) {
+      if ((source==null) || (target==null)) return;
+      target.setAutoConnect(source.getAutoConnect());
+      target.setPassword(source.getPassword());
+      target.setType(source.getType());
+      target.setUsername(source.getUsername());
+    }
+
 
     // ---- ApplicationAware ----
 
@@ -435,7 +455,7 @@
         input.setPassword(_password);
         User user = createUser(_username, _password);
         if (null != user) {
-            BeanUtils.copyProperties(input,user);
+            copyUser(input,user);
             setUser(user);
         }
     }
@@ -532,7 +552,7 @@
         Subscription input = getSubscription();
         Subscription sub = createSubscription(host);
         if (null != sub) {
-            BeanUtils.copyProperties(input, sub);
+            copySubscription(input, sub);
             setSubscription(sub);
             setHost(sub.getHost());
         }
diff --git a/apps/mailreader/src/main/java/struts.xml b/apps/mailreader/src/main/java/struts.xml
index f9e6dad..e0cbeb5 100644
--- a/apps/mailreader/src/main/java/struts.xml
+++ b/apps/mailreader/src/main/java/struts.xml
@@ -6,9 +6,8 @@
 <struts>

 

     <constant name="struts.action.extension" value="do" />

-    <constant name="struts.devMode" value="false" />

+    <constant name="struts.devMode" value="true" />

     <constant name="struts.enable.DynamicMethodInvocation" value="false" />

-    <constant name="struts.objectFactory" value="spring" />

 

     <include file="mailreader-default.xml"/>

 

diff --git a/apps/mailreader/src/main/webapp/Footer.jsp b/apps/mailreader/src/main/webapp/Footer.jsp
index 2b3b86c..56d80bb 100644
--- a/apps/mailreader/src/main/webapp/Footer.jsp
+++ b/apps/mailreader/src/main/webapp/Footer.jsp
@@ -2,5 +2,5 @@
 <hr/>
 
 <p>
-    <a href="<s:url action="Welcome" />"><s:text name="index.title"/></a>
+    <a href="<s:url action="Welcome"  includeParams="none"/>"><s:text name="index.title"/></a>
 </p>
diff --git a/apps/mailreader/src/main/webapp/Login.jsp b/apps/mailreader/src/main/webapp/Login.jsp
index 42796c7..86db095 100644
--- a/apps/mailreader/src/main/webapp/Login.jsp
+++ b/apps/mailreader/src/main/webapp/Login.jsp
@@ -9,14 +9,17 @@
           type="text/css"/>
 </head>
 
-<body onLoad="self.focus();document.Login.username.focus()">
+<body onload="self.focus();document.Login.username.focus()">
 
 <s:actionerror />
+<s:text name="doesntexist" />
 <s:form action="Login" validate="true">
     <s:textfield key="username" />
 
     <s:password key="password" showPassword="true"/>
 
+    <s:textfield name="doesntexist" />
+
     <s:submit key="button.save"/>
 
     <s:reset key="button.reset"/>
diff --git a/apps/mailreader/src/main/webapp/MainMenu.jsp b/apps/mailreader/src/main/webapp/MainMenu.jsp
index bf2f044..b532140 100644
--- a/apps/mailreader/src/main/webapp/MainMenu.jsp
+++ b/apps/mailreader/src/main/webapp/MainMenu.jsp
@@ -20,6 +20,7 @@
     <li><a href="<s:url action="Logout"/>">
         <s:text name="mainMenu.logout"/>
     </a>
+    </li>
 </ul>
 </body>
 </html>
diff --git a/apps/mailreader/src/main/webapp/Registration.jsp b/apps/mailreader/src/main/webapp/Registration.jsp
index 6883c42..8840124 100644
--- a/apps/mailreader/src/main/webapp/Registration.jsp
+++ b/apps/mailreader/src/main/webapp/Registration.jsp
@@ -14,7 +14,7 @@
           type="text/css"/>
 </head>
 
-<body onLoad="self.focus();document.Registration_save_username.focus()">
+<body onload="self.focus();document.Registration_save_username.focus()">
 
 <s:actionerror/>
 <s:form action="Registration_save" validate="false">
@@ -28,7 +28,7 @@
         <s:hidden name="username"/>
     </s:else>
 
-    <s:password key="password"/>
+    <s:password key="password" showPassword="true"/>
     <s:password key="password2"/>
     <s:textfield key="user.fullName"/>
     <s:textfield key="user.fromAddress"/>
diff --git a/apps/mailreader/src/main/webapp/Subscription.jsp b/apps/mailreader/src/main/webapp/Subscription.jsp
index 11f38f9..67323cc 100644
--- a/apps/mailreader/src/main/webapp/Subscription.jsp
+++ b/apps/mailreader/src/main/webapp/Subscription.jsp
@@ -13,11 +13,11 @@
     <s:if test="task=='Delete'">
         <title><s:text name="subscription.title.delete"/></title>
     </s:if>
-    <link href="<s:url value="/css/mailreader.css"/>" rel="stylesheet"
+    <link href="<s:url value="/css/mailreader.css" includeParams="none"/>" rel="stylesheet"
           type="text/css"/>
 </head>
 
-<body onLoad="self.focus();document.Subscription.username.focus()">
+<body onload="self.focus();document.Subscription.username.focus()">
 
 <s:actionerror/>
 <s:form action="Subscription_save" validate="true">
diff --git a/apps/mailreader/src/main/webapp/WEB-INF/web.xml b/apps/mailreader/src/main/webapp/WEB-INF/web.xml
index 7257132..0772ab2 100644
--- a/apps/mailreader/src/main/webapp/WEB-INF/web.xml
+++ b/apps/mailreader/src/main/webapp/WEB-INF/web.xml
@@ -4,11 +4,6 @@
 
     <display-name>Struts 2 Mailreader</display-name>
 
-    <context-param>
-        <param-name>contextConfigLocation</param-name>
-        <param-value>classpath*:applicationContext*.xml</param-value>
-    </context-param>
-
     <filter>
         <filter-name>Struts2</filter-name>
         <filter-class>
@@ -18,22 +13,16 @@
 
     <filter-mapping>
         <filter-name>Struts2</filter-name>
-        <url-pattern>/*</url-pattern>
+        <url-pattern>*.do</url-pattern>
     </filter-mapping>
 
-    <listener>
-        <listener-class>
-            org.springframework.web.context.ContextLoaderListener
-        </listener-class>
-    </listener>
-
     <!-- Application Listener for Mailreader database -->
     <listener>
         <listener-class>
             mailreader2.ApplicationListener
         </listener-class>
     </listener>
-       
+
     <welcome-file-list>
         <welcome-file>index.html</welcome-file>
     </welcome-file-list>
diff --git a/apps/mailreader/src/main/webapp/Welcome.jsp b/apps/mailreader/src/main/webapp/Welcome.jsp
index 6a57cc2..0ce3e54 100644
--- a/apps/mailreader/src/main/webapp/Welcome.jsp
+++ b/apps/mailreader/src/main/webapp/Welcome.jsp
@@ -44,13 +44,12 @@
 
 <hr/>
 
-<p><s:i18n name="alternate">
+<p><s:i18n name="alternate"><a href="http://struts.apache.org/">
     <img src="<s:text name="struts.logo.path"/>"
-         alt="<s:text name="struts.logo.alt"/>"/>
+         alt="<s:text name="struts.logo.alt"/>" border="0px"/>
+</a>
 </s:i18n></p>
 
-<p><a href="<s:url action="Tour" />"><s:text name="index.tour"/></a></p>
-
 </body>
 </html>
 
diff --git a/apps/mailreader/src/main/webapp/tour.html b/apps/mailreader/src/main/webapp/tour.html
index d7a656d..8da3513 100644
--- a/apps/mailreader/src/main/webapp/tour.html
+++ b/apps/mailreader/src/main/webapp/tour.html
@@ -182,36 +182,36 @@
 
   &lt;display-name>Struts 2 MailReader&lt;/display-name>
 
-  <strong>&lt;filter>
-    &lt;filter-name>struts2&lt;/filter-name>
-    &lt;filter-class>
+  <strong>&lt;filter&gt;
+    &lt;filter-name&gt;struts2&lt;/filter-name&gt;
+    &lt;filter-class&gt;
       org.apache.struts2.dispatcher.FilterDispatcher
-    &lt;/filter-class>
-   &lt;/filter></strong>
+    &lt;/filter-class&gt;
+   &lt;/filter&gt;</strong>
 
-  &lt;filter-mapping>
-    &lt;filter-name><strong>struts2</strong>&lt;/filter-name>
-    &lt;url-pattern>/*&lt;/url-pattern>
-  &lt;/filter-mapping>
+  &lt;filter-mapping&gt;
+    &lt;filter-name&gt;<strong>struts2</strong>&lt;/filter-name&gt;
+    &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
+  &lt;/filter-mapping&gt;
 
-  &lt;listener>
-    &lt;listener-class>
+  &lt;listener&gt;
+    &lt;listener-class&gt;
       org.springframework.web.context.ContextLoaderListener
-    &lt;/listener-class>
-  &lt;/listener>
+    &lt;/listener-class&gt;
+  &lt;/listener&gt;
 
-  &lt;!-- Application Listener for MailReader database -->
-  &lt;listener>
-    &lt;listener-class>
+  &lt;!-- Application Listener for MailReader database --&gt;
+  &lt;listener&gt;
+    &lt;listener-class&gt;
       mailreader2.ApplicationListener
-    &lt;/listener-class>
-  &lt;/listener>
+    &lt;/listener-class&gt;
+  &lt;/listener&gt;
 
-  &lt;welcome-file-list>
-    &lt;welcome-file>index.html&lt;/welcome-file>
-  &lt;/welcome-file-list>
+  &lt;welcome-file-list&gt;
+    &lt;welcome-file&gt;index.html&lt;/welcome-file&gt;
+  &lt;/welcome-file-list&gt;
 
-  &lt;/web-app></code></pre>
+  &lt;/web-app&gt;</code></pre>
 <hr/>
 
 <p>
@@ -281,13 +281,13 @@
 
 <hr/>
 <h5>MailReader's index.html</h5>
-<pre><code>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-&lt;html>&lt;head>
-  &lt;META HTTP-EQUIV="Refresh" CONTENT="0;<strong>URL=Welcome.do</strong>">
-  &lt;/head>
-  &lt;body>
-    &lt;p>Loading ...&lt;/p>
-&lt;/body>&lt;/html></code></pre>
+<pre><code>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&gt;
+&lt;html&gt;&lt;head&gt;
+  &lt;META HTTP-EQUIV="Refresh" CONTENT="0;<strong>URL=Welcome.do</strong>"&gt;
+  &lt;/head&gt;
+  &lt;body&gt;
+    &lt;p&gt;Loading ...&lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;</code></pre>
 <hr/>
 
 <p>
@@ -820,7 +820,7 @@
 </p>
 
 <hr/>
-<pre><code>&lt;#if (actionErrors?exists && actionErrors?size > 0)>
+<pre><code>&lt;#if (actionErrors?exists &amp;&amp; actionErrors?size > 0)>
   &lt;ul>
     &lt;#list actionErrors as error>
       &lt;li>&lt;span class="errorMessage">${error}&lt;/span>&lt;/li>
@@ -837,7 +837,7 @@
 </p>
 
 <hr/>
-<pre><code>&lt;#if (actionErrors?exists && actionErrors?size > 0)>
+<pre><code>&lt;#if (actionErrors?exists &amp;&amp; actionErrors?size > 0)>
   <strong>&lt;table></strong>
     &lt;#list actionErrors as error>
       <strong>&lt;tr>&lt;td></strong>&lt;span class="errorMessage">${error}&lt;/span><strong>&lt;/td>&lt;/tr></strong>
@@ -1064,7 +1064,7 @@
 <pre><code>public User <strong>findUser</strong>(String username, String password)
   throws <strong>ExpiredPasswordException</strong> {
   User user = <strong>getDatabase().findUser(username)</strong>;
-  if ((user != null) && !user.getPassword().equals(password)) {
+  if ((user != null) &amp;&amp; !user.getPassword().equals(password)) {
     user = null;
   }
   if (user == null) {
@@ -1427,7 +1427,7 @@
   public String <strong>intercept</strong>(ActionInvocation actionInvocation) throws Exception {
     Map session = actionInvocation.getInvocationContext().getSession();
     User user = (User) session.get(Constants.USER_KEY);
-    boolean isAuthenticated = (null!=user) && (null!=user.getDatabase());
+    boolean isAuthenticated = (null!=user) &amp;&amp; (null!=user.getDatabase());
     if (<strong>isAuthenticated</strong>) {
       return actionInvocation.invoke();
     }
diff --git a/apps/pom.xml b/apps/pom.xml
index bd8c6ae..6ddea61 100644
--- a/apps/pom.xml
+++ b/apps/pom.xml
@@ -1,31 +1,9 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/* 
- * Copyright 2005-2006 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.
- *
- * $Id$
- */
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-parent</artifactId>
-        <version>2.0.5</version>
+        <version>2.0.14</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-apps</artifactId>
@@ -37,11 +15,11 @@
         <module>portlet</module>
         <module>showcase</module>
     </modules>
-    
+
     <scm>
-       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/apps/</connection>
-       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/apps/</developerConnection>
-       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/apps/</url>
+       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/apps</connection>
+       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/apps</developerConnection>
+       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/tags/STRUTS_2_0_14/apps</url>
     </scm>
 
      <distributionManagement>
@@ -50,7 +28,7 @@
             <url>scp://people.apache.org/www/struts.apache.org/struts2/apps</url>
         </site>
     </distributionManagement>
-    
+
     <profiles>
         <profile>
             <id>hostedqa</id>
@@ -105,14 +83,10 @@
                                 </goals>
                                 <configuration>
                                     <tasks>
-                                        <taskdef resource="hostedqatasks" classpathref="maven.plugin.classpath"/>
-                                        <upload file="${project.build.directory}/${project.build.finalName}.war"
-                                                account="struts" email="${email}"
-                                                password="${password}" resourceId="${resourceId}"/>
+                                        <taskdef resource="hostedqatasks" classpathref="maven.plugin.classpath" />
+                                        <upload file="${project.build.directory}/${project.build.finalName}.war" account="struts" email="${email}" password="${password}" resourceId="${resourceId}" />
 
-                                        <playsuite suiteId="${suiteId}" clientConfigs="${clientConfigs}" appConfigs="${appConfigs}" account="struts"
-                                                   email="${email}"
-                                                   password="${password}"/>
+                                        <playsuite suiteId="${suiteId}" clientConfigs="${clientConfigs}" appConfigs="${appConfigs}" account="struts" email="${email}" password="${password}" />
                                     </tasks>
                                 </configuration>
                             </execution>
@@ -135,6 +109,7 @@
             <plugin>
                 <groupId>org.codehaus.cargo</groupId>
                 <artifactId>cargo-maven2-plugin</artifactId>
+                <version>0.3.1</version>
                 <configuration>
                     <container>
                         <containerId>tomcat5x</containerId>
@@ -156,13 +131,11 @@
                         <phase>process-sources</phase>
                         <configuration>
                             <tasks>
-                                <copy todir="${project.build.directory}/${pom.artifactId}/WEB-INF/src/java"
-                                      failonerror="false">
-                                    <fileset dir="${basedir}/src/main/java"/>
+                                <copy todir="${project.build.directory}/${pom.artifactId}/WEB-INF/src/java" failonerror="false">
+                                    <fileset dir="${basedir}/src/main/java" />
                                 </copy>
-                                <copy todir="${project.build.directory}/${pom.artifactId}/WEB-INF/src/java"
-                                      failonerror="false">
-                                    <fileset dir="${basedir}/src/main/resources"/>
+                                <copy todir="${project.build.directory}/${pom.artifactId}/WEB-INF/src/java" failonerror="false">
+                                    <fileset dir="${basedir}/src/main/resources" />
                                 </copy>
                             </tasks>
                         </configuration>
@@ -173,9 +146,9 @@
                 </executions>
             </plugin>
         </plugins>
-        
+
         <finalName>${pom.artifactId}</finalName>
-              
+
     </build>
 
     <dependencies>
@@ -193,5 +166,5 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
-    
+
 </project>
diff --git a/apps/portlet/pom.xml b/apps/portlet/pom.xml
index 0588590..8cf601f 100644
--- a/apps/portlet/pom.xml
+++ b/apps/portlet/pom.xml
@@ -1,11 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
       <groupId>org.apache.struts</groupId>
       <artifactId>struts2-apps</artifactId>
-      <version>2.0.5</version>
+      <version>2.0.14</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-portlet</artifactId>
@@ -13,9 +12,9 @@
     <name>Portlet Webapp</name>
 
     <scm>
-       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/apps/portlet/</connection>
-       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/apps/portlet/</developerConnection>
-       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/apps/portlet/</url>
+       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/apps/portlet</connection>
+       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/apps/portlet</developerConnection>
+       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/tags/STRUTS_2_0_14/apps/portlet</url>
     </scm>
 
     <dependencies>
@@ -29,7 +28,13 @@
             <groupId>org.apache.struts</groupId>
             <artifactId>struts2-spring-plugin</artifactId>
             <version>${pom.version}</version>
-        </dependency>      
+<exclusions>
+<exclusion>
+           <groupId>javax.servlet</groupId>
+           <artifactId>servlet-api</artifactId>
+</exclusion>
+</exclusions>
+        </dependency>
         <dependency>
             <groupId>org.apache.struts</groupId>
             <artifactId>struts2-core</artifactId>
@@ -51,20 +56,25 @@
             <artifactId>commons-digester</artifactId>
             <version>1.8</version>
         </dependency>
-
-
-        <dependency>
-           <groupId>javax.servlet</groupId>
-           <artifactId>servlet-api</artifactId>
-           <version>2.4</version>
-           <scope>provided</scope>
-        </dependency>
         <dependency>
             <groupId>commons-lang</groupId>
             <artifactId>commons-lang</artifactId>
-            <version>2.0</version>
+            <version>2.1</version>
         </dependency>
-
-
+    <dependency>
+      <groupId>commons-fileupload</groupId>
+      <artifactId>commons-fileupload</artifactId>
+      <version>1.1.1</version>
+    </dependency>
+    <dependency>
+      <groupId>commons-collections</groupId>
+      <artifactId>commons-collections</artifactId>
+      <version>3.1</version>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+      <version>1.2.12</version>
+    </dependency>
     </dependencies>
 </project>
diff --git a/apps/portlet/src/main/java/org/apache/struts2/portlet/example/FormExample.java b/apps/portlet/src/main/java/org/apache/struts2/portlet/example/FormExample.java
index 4a5360a..36d2796 100644
--- a/apps/portlet/src/main/java/org/apache/struts2/portlet/example/FormExample.java
+++ b/apps/portlet/src/main/java/org/apache/struts2/portlet/example/FormExample.java
@@ -44,4 +44,7 @@
     public void setLastName(String lastName) {
         this.lastName = lastName;
     }
+    public String displayResult() {
+    	return "displayResult";
+    }
 }
diff --git a/api/src/main/java/org/apache/struts2/Validatable.java b/apps/portlet/src/main/java/org/apache/struts2/portlet/example/FormExampleModelDriven.java
similarity index 65%
copy from api/src/main/java/org/apache/struts2/Validatable.java
copy to apps/portlet/src/main/java/org/apache/struts2/portlet/example/FormExampleModelDriven.java
index 1d59ddd..1eee98b 100644
--- a/api/src/main/java/org/apache/struts2/Validatable.java
+++ b/apps/portlet/src/main/java/org/apache/struts2/portlet/example/FormExampleModelDriven.java
@@ -1,37 +1,37 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2;
-
-import org.apache.struts2.MessageAware;
-
-/**
- * Implemented by actions which wish to execute some validation logic before their action method. Useful for
- * cross-field validations.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface Validatable extends MessageAware {
-
-    /**
-     * Validates input. Executes before action method.
-     */
-    public void validate();
-}
+/*

+ * $Id: FormExample.java 471756 2006-11-06 15:01:43Z husted $

+ *

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you 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.

+ */

+package org.apache.struts2.portlet.example;

+

+import org.apache.struts2.portlet.example.model.Name;

+

+import com.opensymphony.xwork2.ActionSupport;

+import com.opensymphony.xwork2.ModelDriven;

+

+/**

+ */

+public class FormExampleModelDriven extends ActionSupport implements ModelDriven<Name> {

+    

+	private Name name = new Name();

+

+	public Name getModel() {

+		return name;

+	}

+}

diff --git a/apps/portlet/src/main/java/org/apache/struts2/portlet/example/fileupload/FileUploadAction.java b/apps/portlet/src/main/java/org/apache/struts2/portlet/example/fileupload/FileUploadAction.java
new file mode 100644
index 0000000..c021714
--- /dev/null
+++ b/apps/portlet/src/main/java/org/apache/struts2/portlet/example/fileupload/FileUploadAction.java
@@ -0,0 +1,81 @@
+/*

+ * $Id: $

+ *

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you 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.

+ */

+package org.apache.struts2.portlet.example.fileupload;

+

+import java.io.File;

+

+import org.apache.struts2.dispatcher.DefaultActionSupport;

+

+/**

+ * File Upload example's action. <code>FileUploadAction</code>

+ *

+ */

+public class FileUploadAction extends DefaultActionSupport {

+

+    private static final long serialVersionUID = 5156288255337069381L;

+

+    private String contentType;

+    private File upload;

+    private String fileName;

+    private String caption;

+

+    // since we are using <s:file name="upload" .../> the file name will be

+    // obtained through getter/setter of <file-tag-name>FileName

+    public String getUploadFileName() {

+        return fileName;

+    }

+    public void setUploadFileName(String fileName) {

+        this.fileName = fileName;

+    }

+

+

+    // since we are using <s:file name="upload" ... /> the content type will be

+    // obtained through getter/setter of <file-tag-name>ContentType

+    public String getUploadContentType() {

+        return contentType;

+    }

+    public void setUploadContentType(String contentType) {

+        this.contentType = contentType;

+    }

+

+

+    // since we are using <s:file name="upload" ... /> the File itself will be

+    // obtained through getter/setter of <file-tag-name>

+    public File getUpload() {

+        return upload;

+    }

+    public void setUpload(File upload) {

+        this.upload = upload;

+    }

+

+

+    public String getCaption() {

+        return caption;

+    }

+    public void setCaption(String caption) {

+        this.caption = caption;

+    }

+

+    public String upload() throws Exception  {

+        return SUCCESS;

+    }

+

+}

diff --git a/apps/portlet/src/main/java/org/apache/struts2/portlet/example/model/Name.java b/apps/portlet/src/main/java/org/apache/struts2/portlet/example/model/Name.java
new file mode 100644
index 0000000..1e59e11
--- /dev/null
+++ b/apps/portlet/src/main/java/org/apache/struts2/portlet/example/model/Name.java
@@ -0,0 +1,18 @@
+package org.apache.struts2.portlet.example.model;

+

+public class Name {

+	private String firstName;

+	private String lastName;

+	public String getFirstName() {

+		return firstName;

+	}

+	public void setFirstName(String firstName) {

+		this.firstName = firstName;

+	}

+	public String getLastName() {

+		return lastName;

+	}

+	public void setLastName(String lastName) {

+		this.lastName = lastName;

+	}

+}

diff --git a/apps/portlet/src/main/resources/struts-edit.xml b/apps/portlet/src/main/resources/struts-edit.xml
new file mode 100644
index 0000000..73ec598
--- /dev/null
+++ b/apps/portlet/src/main/resources/struts-edit.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!DOCTYPE struts PUBLIC

+    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

+    "http://struts.apache.org/dtds/struts-2.0.dtd">

+

+<struts>	

+	<package name="edit" extends="struts-portlet-default"

+		namespace="/edit">

+		<action name="index"

+			class="com.opensymphony.xwork2.ActionSupport">

+			<result name="success">/WEB-INF/edit/index.jsp</result>

+		</action>

+		<action name="test"

+			class="com.opensymphony.xwork2.ActionSupport">

+			<result name="success">/WEB-INF/edit/test.jsp</result>

+		</action>

+		<action name="formExampleEdit"

+			class="org.apache.struts2.portlet.example.FormExample" method="input">

+			<result name="input">

+				/WEB-INF/edit/formExampleInput.jsp

+			</result>

+		</action>

+

+		<action name="processFormExampleEdit"

+			class="org.apache.struts2.portlet.example.FormExample">

+			<result name="input">

+				/WEB-INF/edit/formExampleInput.jsp

+			</result>

+			<result name="success">

+				/edit/processFormExampleForward.action?firstName=${firstName}&amp;lastName=${lastName}

+			</result>

+		</action>

+

+		<action name="processFormExampleForward"

+			class="org.apache.struts2.portlet.example.FormExample">

+			<result name="success">

+				/WEB-INF/edit/formExample.jsp

+			</result>

+		</action>

+	</package>

+

+	<package name="editTest" extends="edit" namespace="/edit/dummy/test">

+		<action name="testAction"

+			class="com.opensymphony.xwork2.ActionSupport">

+			<result name="success">/WEB-INF/edit/namespaceTest.jsp</result>

+		</action>

+	</package>

+</struts>
\ No newline at end of file
diff --git a/apps/portlet/src/main/resources/struts-help.xml b/apps/portlet/src/main/resources/struts-help.xml
new file mode 100644
index 0000000..742a8d2
--- /dev/null
+++ b/apps/portlet/src/main/resources/struts-help.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!DOCTYPE struts PUBLIC

+    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

+    "http://struts.apache.org/dtds/struts-2.0.dtd">

+

+<struts>

+	<package name="help" extends="struts-portlet-default"

+		namespace="/help">

+		<action name="index"

+			class="com.opensymphony.xwork2.ActionSupport">

+			<result name="success">/WEB-INF/help/index.jsp</result>

+		</action>

+	</package>

+</struts>
\ No newline at end of file
diff --git a/apps/portlet/src/main/resources/struts-view.xml b/apps/portlet/src/main/resources/struts-view.xml
new file mode 100644
index 0000000..2fa0b21
--- /dev/null
+++ b/apps/portlet/src/main/resources/struts-view.xml
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8" ?>

+<!DOCTYPE struts PUBLIC

+    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

+    "http://struts.apache.org/dtds/struts-2.0.dtd">

+

+<struts>

+	<package name="view" extends="struts-portlet-default"

+		namespace="/view">

+		<action name="index"

+			class="com.opensymphony.xwork2.ActionSupport">

+			<result name="success">/WEB-INF/view/index.jsp</result>

+		</action>

+

+		<action name="formExample"

+			class="org.apache.struts2.portlet.example.FormExample" method="input">

+			<result name="input">

+				/WEB-INF/view/formExampleInput.jsp

+			</result>

+		</action>

+

+		<action name="processFormExample"

+			class="org.apache.struts2.portlet.example.FormExample">

+			<result name="input">

+				/WEB-INF/view/formExampleInput.jsp

+			</result>

+			<result name="success">

+				/WEB-INF/view/formExample.jsp

+			</result>

+		</action>

+		

+		<action name="formExamplePrg" class="org.apache.struts2.portlet.example.FormExample">

+			<result name="input">

+				/WEB-INF/view/formExampleInputPrg.jsp

+			</result>

+			<result name="success" type="redirectAction">

+				<param name="actionName">formExamplePrg</param>

+				<param name="method">displayResult</param>

+				<param name="firstName">${firstName}</param>

+				<param name="lastName">${lastName}</param>

+			</result>

+			<result name="displayResult">

+				/WEB-INF/view/formExample.jsp

+			</result>

+		</action>

+		

+		<action name="formExampleModelDriven"

+			class="org.apache.struts2.portlet.example.FormExampleModelDriven">

+			<result name="input">

+				/WEB-INF/view/formExampleInputModelDriven.jsp

+			</result>

+			<result name="success">

+				/WEB-INF/view/formExample.jsp

+			</result>

+		</action>

+

+		<action name="validationExample"

+			class="org.apache.struts2.portlet.example.FormExample" method="input">

+			<result name="input">

+				/WEB-INF/view/formExampleInputValidation.jsp

+			</result>

+		</action>

+

+		<action name="processValidationExample"

+			class="org.apache.struts2.portlet.example.FormExample">

+			<result name="success">

+				/WEB-INF/view/formExample.jsp

+			</result>

+			<result name="input">

+				/WEB-INF/view/formExampleInputValidation.jsp

+			</result>

+		</action>

+		

+		<action name="fileUpload" class="org.apache.struts2.portlet.example.fileupload.FileUploadAction">

+			<result name="input">

+				/WEB-INF/view/fileUpload.jsp

+			</result>

+			<result name="success">

+				/WEB-INF/view/fileUploadSuccess.jsp

+			</result>

+		</action>

+

+		<action name="tokenExample"

+			class="com.opensymphony.xwork2.ActionSupport" method="input">

+			<result name="input">

+				/WEB-INF/view/tokenExampleInput.jsp

+			</result>

+		</action>

+

+		<action name="processTokenExample"

+			class="com.opensymphony.xwork2.ActionSupport">

+			<result name="input">

+				/WEB-INF/view/tokenExampleInput.jsp

+			</result>

+			<result name="invalid.token">

+				/WEB-INF/view/tokenExampleInput.jsp

+			</result>

+			<result name="success">

+				/WEB-INF/view/tokenExample.jsp

+			</result>

+			<interceptor-ref name="portletDefaultStackWithToken" />

+		</action>

+

+		<action name="springExample" class="springAction">

+			<result name="success">

+				/WEB-INF/view/springExample.jsp

+			</result>

+		</action>

+

+		<action name="freeMarkerExample"

+			class="com.opensymphony.xwork2.ActionSupport" method="input">

+			<result type="freemarker" name="input">

+				/WEB-INF/view/freeMarkerExampleInput.ftl

+			</result>

+		</action>

+

+		<action name="processFreeMarkerExample"

+			class="org.apache.struts2.portlet.example.FormExample">

+			<result name="success">/view/processFreeMarkerView.action?firstName=${firstName}&amp;lastName=${lastName}</result>

+		</action>

+		

+		<action name="processFreeMarkerView" class="org.apache.struts2.portlet.example.FormExample">

+			<result type="freemarker" name="success">/WEB-INF/view/freeMarkerExample.ftl</result>

+		</action>

+		

+		<action name="velocityHelloWorld" class="com.opensymphony.xwork2.ActionSupport">

+			<result type="velocity" name="success">/WEB-INF/view/helloWorld.vm</result>

+		</action>

+

+	</package>

+</struts>

diff --git a/apps/portlet/src/main/resources/struts.xml b/apps/portlet/src/main/resources/struts.xml
index 001f60a..f348c9f 100644
--- a/apps/portlet/src/main/resources/struts.xml
+++ b/apps/portlet/src/main/resources/struts.xml
@@ -1,161 +1,11 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE xwork PUBLIC
-    "-//OpenSymphony Group//XWork 1.1.1//EN"
-    "http://www.opensymphony.com/xwork/xwork-1.1.1.dtd">
-<xwork>
-	<include file="struts-portlet-default.xml" />
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE struts PUBLIC
+    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
+    "http://struts.apache.org/dtds/struts-2.0.dtd">
 
-	<package name="view" extends="struts-portlet-default"
-		namespace="/view">
-		<action name="index"
-			class="com.opensymphony.xwork2.ActionSupport">
-			<result name="success">/WEB-INF/view/index.jsp</result>
-		</action>
-
-		<action name="formExample"
-			class="org.apache.struts2.portlet.example.FormExample" method="input">
-			<result name="input">
-				/WEB-INF/view/formExampleInput.jsp
-			</result>
-		</action>
-
-		<action name="processFormExample"
-			class="org.apache.struts2.portlet.example.FormExample">
-			<result name="input">
-				/WEB-INF/view/formExampleInput.jsp
-			</result>
-			<result name="success">
-				/WEB-INF/view/formExample.jsp
-			</result>
-		</action>
-
-		<action name="validationExample"
-			class="org.apache.struts2.portlet.example.FormExample" method="input">
-			<result name="input">
-				/WEB-INF/view/formExampleInputValidation.jsp
-			</result>
-		</action>
-
-		<action name="processValidationExample"
-			class="org.apache.struts2.portlet.example.FormExample">
-			<result name="success">
-				/WEB-INF/view/formExample.jsp
-			</result>
-			<result name="input">
-				/WEB-INF/view/formExampleInputValidation.jsp
-			</result>
-			<interceptor-ref name="validationWorkflowStack" />
-		</action>
-
-		<action name="tokenExample"
-			class="com.opensymphony.xwork2.ActionSupport" method="input">
-			<result name="input">
-				/WEB-INF/view/tokenExampleInput.jsp
-			</result>
-		</action>
-
-		<action name="processTokenExample"
-			class="com.opensymphony.xwork2.ActionSupport">
-			<result name="input">
-				/WEB-INF/view/tokenExampleInput.jsp
-			</result>
-			<result name="invalid.token">
-				/WEB-INF/view/tokenExampleInput.jsp
-			</result>
-			<result name="success">
-				/WEB-INF/view/tokenExample.jsp
-			</result>
-			<interceptor-ref name="token" />
-			<interceptor-ref name="defaultStack" />
-		</action>
-
-		<action name="springExample" class="springAction">
-			<result name="success">
-				/WEB-INF/view/springExample.jsp
-			</result>
-		</action>
-
-		<action name="ajaxExample"
-			class="com.opensymphony.xwork2.ActionSupport">
-			<result name="success">
-				/WEB-INF/view/ajaxExample.jsp
-			</result>
-		</action>
-
-		<action name="ajaxData"
-			class="com.opensymphony.xwork2.ActionSupport">
-			<result name="success">/WEB-INF/view/ajaxData.jsp</result>
-		</action>
-
-		<action name="freeMarkerExample"
-			class="com.opensymphony.xwork2.ActionSupport" method="input">
-			<result type="freemarker" name="input">
-				/WEB-INF/view/freeMarkerExampleInput.ftl
-			</result>
-		</action>
-
-		<action name="processFreeMarkerExample"
-			class="org.apache.struts2.portlet.example.FormExample">
-			<result name="success">/view/processFreeMarkerView.action?firstName=${firstName}&amp;lastName=${lastName}</result>
-		</action>
-		
-		<action name="processFreeMarkerView" class="org.apache.struts2.portlet.example.FormExample">
-			<result type="freemarker" name="success">/WEB-INF/view/freeMarkerExample.ftl</result>
-		</action>
-		
-		<action name="velocityHelloWorld" class="com.opensymphony.xwork2.ActionSupport">
-			<result type="velocity" name="success">/WEB-INF/view/helloWorld.vm</result>
-		</action>
-
-	</package>
-
-	<package name="edit" extends="struts-portlet-default"
-		namespace="/edit">
-		<action name="index"
-			class="com.opensymphony.xwork2.ActionSupport">
-			<result name="success">/WEB-INF/edit/index.jsp</result>
-		</action>
-		<action name="test"
-			class="com.opensymphony.xwork2.ActionSupport">
-			<result name="success">/WEB-INF/edit/test.jsp</result>
-		</action>
-		<action name="formExampleEdit"
-			class="org.apache.struts2.portlet.example.FormExample" method="input">
-			<result name="input">
-				/WEB-INF/edit/formExampleInput.jsp
-			</result>
-		</action>
-
-		<action name="processFormExampleEdit"
-			class="org.apache.struts2.portlet.example.FormExample">
-			<result name="input">
-				/WEB-INF/edtt/formExampleInput.jsp
-			</result>
-			<result name="success">
-				/edit/processFormExampleForward.action?firstName=${firstName}&amp;lastName=${lastName}
-			</result>
-		</action>
-
-		<action name="processFormExampleForward"
-			class="org.apache.struts2.portlet.example.FormExample">
-			<result name="success">
-				/WEB-INF/edit/formExample.jsp
-			</result>
-		</action>
-	</package>
-
-	<package name="editTest" extends="edit" namespace="/edit/dummy/test">
-		<action name="testAction"
-			class="com.opensymphony.xwork2.ActionSupport">
-			<result name="success">/WEB-INF/edit/namespaceTest.jsp</result>
-		</action>
-	</package>
-
-	<package name="help" extends="struts-portlet-default"
-		namespace="/help">
-		<action name="index"
-			class="com.opensymphony.xwork2.ActionSupport">
-			<result name="success">/WEB-INF/help/index.jsp</result>
-		</action>
-	</package>
-</xwork>
+<struts>
+	<include file="struts-portlet-default.xml"/>
+	<include file="struts-view.xml"/>
+	<include file="struts-edit.xml"/>
+	<include file="struts-help.xml"/>
+</struts>
diff --git a/apps/portlet/src/main/resources/validators.xml b/apps/portlet/src/main/resources/validators.xml
index 4c06d8b..a47094f 100644
--- a/apps/portlet/src/main/resources/validators.xml
+++ b/apps/portlet/src/main/resources/validators.xml
@@ -1,3 +1,6 @@
+<!DOCTYPE validators PUBLIC
+        "-//OpenSymphony Group//XWork Validator Config 1.0//EN"
+        "http://www.opensymphony.com/xwork/xwork-validator-config-1.0.dtd">
 <validators>
     <validator name="required" class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/>
     <validator name="requiredstring" class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/>
diff --git a/apps/portlet/src/main/webapp/WEB-INF/portlet.xml b/apps/portlet/src/main/webapp/WEB-INF/portlet.xml
index 1d18966..91e7c1e 100644
--- a/apps/portlet/src/main/webapp/WEB-INF/portlet.xml
+++ b/apps/portlet/src/main/webapp/WEB-INF/portlet.xml
@@ -1,118 +1,132 @@
-<portlet-app version="1.0" xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" id="struts-portlet">
-  <portlet id="StrutsPortlet">
-    <description xml:lang="EN">Struts Test Portlet</description>
-    <portlet-name>StrutsPortlet</portlet-name>
-    <display-name xml:lang="EN">Struts Test Portlet</display-name>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<portlet-app
+    version="1.0"
+    xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
+    id="struts-portlet">
+
+    <portlet id="StrutsPortlet">
+        <description xml:lang="EN">Struts Test Portlet</description>
+        <portlet-name>StrutsPortlet</portlet-name>
+        <display-name xml:lang="EN">Struts Test Portlet</display-name>
     
-    <portlet-class>org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher</portlet-class>
+        <portlet-class>org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher</portlet-class>
 
-    <init-param>
-		<!-- The view mode namespace. Maps to a namespace in the xwork config file -->
-		<name>viewNamespace</name>
-		<value>/view</value>
-	</init-param>
-    <init-param>
-		<!-- The default action to invoke in view mode -->
-		<name>defaultViewAction</name>
-		<value>index</value>
-	</init-param>
-	<init-param>
-		<!-- The view mode namespace. Maps to a namespace in the xwork config file -->
-		<name>editNamespace</name>
-		<value>/edit</value>
-	</init-param>
-    <init-param>
-		<!-- The default action to invoke in view mode -->
-		<name>defaultEditAction</name>
-		<value>index</value>
-	</init-param>
-	<init-param>
-		<!-- The view mode namespace. Maps to a namespace in the xwork config file -->
-		<name>helpNamespace</name>
-		<value>/help</value>
-	</init-param>
-    <init-param>
-		<!-- The default action to invoke in view mode -->
-		<name>defaultHelpAction</name>
-		<value>index</value>
-	</init-param>
+        <!-- The view mode namespace. Maps to a namespace in the Struts 2 config file. -->
+        <init-param>
+            <name>viewNamespace</name>
+            <value>/view</value>
+        </init-param>
+
+        <!-- The default action to invoke in view mode. -->
+        <init-param>
+            <name>defaultViewAction</name>
+            <value>index</value>
+        </init-param>
+
+        <!-- The edit mode namespace. Maps to a namespace in the Struts 2 config file. -->
+        <init-param>
+            <name>editNamespace</name>
+            <value>/edit</value>
+        </init-param>
+
+        <!-- The default action to invoke in edit mode. -->
+        <init-param>
+            <name>defaultEditAction</name>
+            <value>index</value>
+        </init-param>
+
+        <!-- The help mode namespace. Maps to a namespace in the Struts 2 config file. -->
+        <init-param>
+            <name>helpNamespace</name>
+            <value>/help</value>
+        </init-param>
+
+        <!-- The default action to invoke in help mode. -->
+        <init-param>
+            <name>defaultHelpAction</name>
+            <value>index</value>
+        </init-param>
     
+        <expiration-cache>0</expiration-cache>
 
-    
-    <expiration-cache>0</expiration-cache>
+        <supports>
+            <mime-type>text/html</mime-type>
+            <portlet-mode>edit</portlet-mode>
+            <portlet-mode>help</portlet-mode>
+			<portlet-mode>view</portlet-mode>
+        </supports>
 
-    <supports>
-      <mime-type>text/html</mime-type>
-      <portlet-mode>edit</portlet-mode>
-      <portlet-mode>help</portlet-mode>
-    </supports>
+        <supported-locale>en</supported-locale>
 
-    <supported-locale>en</supported-locale>
-
-    <portlet-info>
-      <title>My StrutsPortlet portlet</title>
-      <short-title>SP</short-title>
-      <keywords>struts,portlet</keywords>
-    </portlet-info>
-  </portlet>
+        <portlet-info>
+            <title>My StrutsPortlet portlet</title>
+            <short-title>SP</short-title>
+            <keywords>struts,portlet</keywords>
+        </portlet-info>
+    </portlet>
   
-  <portlet id="StrutsPortlet2">
-    <description xml:lang="EN">Struts Test Portlet2</description>
-    <portlet-name>StrutsPortlet2</portlet-name>
-    <display-name xml:lang="EN">Struts Test Portlet2</display-name>
+    <portlet id="StrutsPortlet2">
+        <description xml:lang="EN">Struts Test Portlet2</description>
+        <portlet-name>StrutsPortlet2</portlet-name>
+        <display-name xml:lang="EN">Struts Test Portlet2</display-name>
     
-    <portlet-class>org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher</portlet-class>
+        <portlet-class>org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher</portlet-class>
 
-    <init-param>
-		<!-- The view mode namespace. Maps to a namespace in the xwork config file -->
-		<name>viewNamespace</name>
-		<value>/view</value>
-	</init-param>
-    <init-param>
-		<!-- The default action to invoke in view mode -->
-		<name>defaultViewAction</name>
-		<value>index</value>
-	</init-param>
-	<init-param>
-		<!-- The view mode namespace. Maps to a namespace in the xwork config file -->
-		<name>editNamespace</name>
-		<value>/edit</value>
-	</init-param>
-    <init-param>
-		<!-- The default action to invoke in view mode -->
-		<name>defaultEditAction</name>
-		<value>index</value>
-	</init-param>
-	<init-param>
-		<!-- The view mode namespace. Maps to a namespace in the xwork config file -->
-		<name>helpNamespace</name>
-		<value>/help</value>
-	</init-param>
-    <init-param>
-		<!-- The default action to invoke in view mode -->
-		<name>defaultHelpAction</name>
-		<value>index</value>
-	</init-param>
-    
+        <!-- The view mode namespace. Maps to a namespace in the Struts 2 config file. -->
+        <init-param>
+            <name>viewNamespace</name>
+            <value>/view</value>
+        </init-param>
 
-    
-    <expiration-cache>0</expiration-cache>
+        <!-- The default action to invoke in view mode. -->
+        <init-param>
+            <name>defaultViewAction</name>
+            <value>index</value>
+        </init-param>
 
-    <supports>
-      <mime-type>text/html</mime-type>
-      <portlet-mode>edit</portlet-mode>
-      <portlet-mode>help</portlet-mode>
-    </supports>
+        <!-- The edit mode namespace. Maps to a namespace in the Struts 2 config file. -->
+        <init-param>
+            <name>editNamespace</name>
+            <value>/edit</value>
+        </init-param>
 
-    <supported-locale>en</supported-locale>
+        <!-- The default action to invoke in edit mode. -->
+        <init-param>
+            <name>defaultEditAction</name>
+            <value>index</value>
+        </init-param>
 
-    <portlet-info>
-      <title>My StrutsPortlet portlet2</title>
-      <short-title>SP2</short-title>
-      <keywords>struts,portlet</keywords>
-    </portlet-info>
-  </portlet>
+        <!-- The help mode namespace. Maps to a namespace in the Struts 2 config file. -->
+        <init-param>
+            <name>helpNamespace</name>
+            <value>/help</value>
+        </init-param>
+
+        <!-- The default action to invoke in help mode. -->
+        <init-param>
+            <name>defaultHelpAction</name>
+            <value>index</value>
+        </init-param>
+
+        <expiration-cache>0</expiration-cache>
+
+        <supports>
+            <mime-type>text/html</mime-type>
+            <portlet-mode>edit</portlet-mode>
+            <portlet-mode>help</portlet-mode>
+			<portlet-mode>view</portlet-mode>
+        </supports>
+
+        <supported-locale>en</supported-locale>
+
+        <portlet-info>
+            <title>My StrutsPortlet portlet2</title>
+            <short-title>SP2</short-title>
+            <keywords>struts,portlet</keywords>
+        </portlet-info>
+    </portlet>
 
 </portlet-app>
diff --git a/apps/portlet/src/main/webapp/WEB-INF/view/fileUpload.jsp b/apps/portlet/src/main/webapp/WEB-INF/view/fileUpload.jsp
new file mode 100644
index 0000000..bf702bd
--- /dev/null
+++ b/apps/portlet/src/main/webapp/WEB-INF/view/fileUpload.jsp
@@ -0,0 +1,13 @@
+<%@ taglib prefix="s" uri="/struts-tags" %>

+

+    <h1>Fileupload sample</h1>

+

+	<s:actionerror />

+	<s:fielderror />

+    <s:form action="fileUpload" method="POST" enctype="multipart/form-data">

+        <s:file name="upload" label="File"/>

+        <s:textfield name="caption" label="Caption"/>

+        <s:submit />

+    </s:form>

+

+

diff --git a/apps/portlet/src/main/webapp/WEB-INF/view/fileUploadSuccess.jsp b/apps/portlet/src/main/webapp/WEB-INF/view/fileUploadSuccess.jsp
new file mode 100644
index 0000000..3c0259f
--- /dev/null
+++ b/apps/portlet/src/main/webapp/WEB-INF/view/fileUploadSuccess.jsp
@@ -0,0 +1,14 @@
+<%@ taglib prefix="s" uri="/struts-tags" %>

+

+<h1>Fileupload sample</h1>

+

+<p>

+    <ul>

+        <li>ContentType: <s:property value="uploadContentType" /></li>

+        <li>FileName: <s:property value="uploadFileName" /></li>

+        <li>File: <s:property value="upload" /></li>

+        <li>Caption:<s:property value="caption" /></li>

+    </ul>

+</p>

+

+

diff --git a/apps/portlet/src/main/webapp/WEB-INF/view/formExampleInputModelDriven.jsp b/apps/portlet/src/main/webapp/WEB-INF/view/formExampleInputModelDriven.jsp
new file mode 100644
index 0000000..bbb852f
--- /dev/null
+++ b/apps/portlet/src/main/webapp/WEB-INF/view/formExampleInputModelDriven.jsp
@@ -0,0 +1,8 @@
+<%@ taglib prefix="s" uri="/struts-tags" %>

+

+<H2>Input your name</H2>

+<s:form action="formExampleModelDriven" method="POST">

+    <s:textfield label="First name" name="firstName" value="%{firstName}"/>

+    <s:textfield label="Last name" name="lastName" value="%{lastName}"/>

+    <s:submit value="Submit the form"/>

+</s:form>

diff --git a/apps/portlet/src/main/webapp/WEB-INF/view/formExampleInputPrg.jsp b/apps/portlet/src/main/webapp/WEB-INF/view/formExampleInputPrg.jsp
new file mode 100644
index 0000000..aaada25
--- /dev/null
+++ b/apps/portlet/src/main/webapp/WEB-INF/view/formExampleInputPrg.jsp
@@ -0,0 +1,8 @@
+<%@ taglib prefix="s" uri="/struts-tags" %>

+

+<H2>Input your name</H2>

+<s:form action="formExamplePrg" method="POST">

+    <s:textfield label="First name" name="firstName" value="%{firstName}"/>

+    <s:textfield label="Last name" name="lastName" value="%{lastName}"/>

+    <s:submit value="Submit the form"/>

+</s:form>

diff --git a/apps/portlet/src/main/webapp/WEB-INF/view/index.jsp b/apps/portlet/src/main/webapp/WEB-INF/view/index.jsp
index 5686c2e..d7ad467 100644
--- a/apps/portlet/src/main/webapp/WEB-INF/view/index.jsp
+++ b/apps/portlet/src/main/webapp/WEB-INF/view/index.jsp
@@ -4,10 +4,12 @@
 Here you'll find examples of what is possible with the Struts Portlet integration framework.
 <ul>
 <li><a href="<s:url action="formExample"/>">A simple form</a></li>
+<li><a href="<s:url action="formExamplePrg" method="input"/>">Form example with proper PRG</a></li>
+<li><a href="<s:url action="formExampleModelDriven" method="input"/>">Model driven example</li>
 <li><a href="<s:url action="validationExample"/>">Validation</a></li>
 <li><a href="<s:url action="tokenExample"/>">Token</a></li>
 <li><a href="<s:url action="springExample"/>">Spring integration</a></li>
-<li><a href="<s:url action="ajaxExample"/>">Ajax</a></li>
+<li><a href="<s:url action="fileUpload" method="input"/>">File upload</li>
 <li><a href="<s:url action="freeMarkerExample"/>">FreeMarker</a></li>
 <li><a href="<s:url action="velocityHelloWorld"/>">Velocity</a></li>
 <li><a href="<s:url action="index" portletMode="edit"/>">Go to edit mode and see what's there</a></li>
diff --git a/apps/portlet/src/main/webapp/WEB-INF/web.xml b/apps/portlet/src/main/webapp/WEB-INF/web.xml
index 62ba4e4..4b64cb5 100644
--- a/apps/portlet/src/main/webapp/WEB-INF/web.xml
+++ b/apps/portlet/src/main/webapp/WEB-INF/web.xml
@@ -1,49 +1,30 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<!DOCTYPE web-app
+    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+    "http://java.sun.com/dtd/web-app_2_3.dtd">
+
 <web-app id="StrutsPortlet">
-	<!-- Uncomment/comment this if you need/don't need Spring support -->
-	<context-param>
-		<param-name>contextConfigLocation</param-name>
-		<param-value>/WEB-INF/applicationContext*.xml</param-value>
-	</context-param>
-	<filter id="filterdispatcher">
-		<filter-name>action2</filter-name>
-		<filter-class>
-			org.apache.struts2.dispatcher.FilterDispatcher
-		</filter-class>
-	</filter>
 
-	<filter-mapping>
-		<filter-name>action2</filter-name>
-		<url-pattern>/*</url-pattern>
-	</filter-mapping>
-    
+    <!-- Uncomment/comment this if you need/don't need Spring support -->
+    <context-param>
+        <param-name>contextConfigLocation</param-name>
+        <param-value>/WEB-INF/applicationContext*.xml</param-value>
+    </context-param>
+
+    <filter id="filterdispatcher">
+        <filter-name>Struts2</filter-name>
+        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
+    </filter>
+
+    <filter-mapping>
+        <filter-name>Struts2</filter-name>
+        <url-pattern>/*</url-pattern>
+    </filter-mapping>
+
     <listener>
-		<listener-class>
-			org.springframework.web.context.ContextLoaderListener
-		</listener-class>
-	</listener>
-	<listener>
-		<listener-class>
-			org.apache.struts2.portlet.context.ServletContextHolderListener
-		</listener-class>
-	</listener>
+        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
+    </listener>
 
 
-	<servlet id="preparator">
-		<servlet-name>preparator</servlet-name>
-		<servlet-class>
-			org.apache.struts2.portlet.context.PreparatorServlet
-		</servlet-class>
-	</servlet>
-	<servlet id="dwr">
-		<servlet-name>dwr</servlet-name>
-		<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
-	</servlet>
-
-	<servlet-mapping>
-		<servlet-name>dwr</servlet-name>
-		<url-pattern>/dwr/*</url-pattern>
-	</servlet-mapping>
-
 </web-app>
diff --git a/apps/showcase/pom.xml b/apps/showcase/pom.xml
index dbfae99..f24c0b8 100644
--- a/apps/showcase/pom.xml
+++ b/apps/showcase/pom.xml
@@ -1,11 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-apps</artifactId>
-        <version>2.0.5</version>
+        <version>2.0.14</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-showcase</artifactId>
@@ -13,11 +12,11 @@
     <name>Showcase Webapp</name>
 
     <scm>
-       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/apps/showcase/</connection>
-       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/apps/showcase/</developerConnection>
-       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/apps/showcase/</url>
+       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/apps/showcase</connection>
+       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/apps/showcase</developerConnection>
+       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/tags/STRUTS_2_0_14/apps/showcase</url>
     </scm>
-    
+
 
     <profiles>
         <profile>
@@ -31,7 +30,7 @@
         </profile>
     </profiles>
     <dependencies>
-        
+
         <dependency>
             <groupId>org.apache.struts</groupId>
             <artifactId>struts2-struts1-plugin</artifactId>
@@ -55,7 +54,7 @@
             <artifactId>struts2-sitemesh-plugin</artifactId>
             <version>${pom.version}</version>
         </dependency>
-        
+
         <dependency>
             <groupId>org.apache.struts</groupId>
             <artifactId>struts2-tiles-plugin</artifactId>
@@ -63,9 +62,10 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.struts</groupId>
-            <artifactId>struts2-continuations-plugin</artifactId>
-            <version>${pom.version}</version>
+            <groupId>org.apache.tiles</groupId>
+            <artifactId>tiles-jsp</artifactId>
+            <version>2.0.4</version>
+            <scope>runtime</scope>
         </dependency>
 
         <dependency>
@@ -79,14 +79,14 @@
             <artifactId>struts2-spring-plugin</artifactId>
             <version>${pom.version}</version>
         </dependency>
- 
+
         <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.4</version>
            <scope>provided</scope>
         </dependency>
-        
+
         <!-- Velocity -->
         <dependency>
             <groupId>velocity</groupId>
@@ -137,9 +137,9 @@
          <version>1.1.1</version>
      </dependency>
 
- 
+
     </dependencies>
-    
+
     <build>
         <plugins>
             <plugin>
diff --git a/apps/showcase/quickstart.xml b/apps/showcase/quickstart.xml
deleted file mode 100644
index 6bb5a90..0000000
--- a/apps/showcase/quickstart.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<configuration>
-    <!--
-    QuickStart can be used to extend other QuickStart configurations.
-    This is great for applications that have multiple "editions" and
-    extend upon a base webapp or evven just a base set of classes.
-    -->
-    <!--<extendsConfig>../path/to/quickstart.xml</extendsConfig>-->
-
-    <!--
-    QuickStart supports reading your IDEA module configuration and
-    using the libraries there. This is especially useful for maven
-    users who don't have a single directory in their project that
-    contains all the libraries they need.
-    -->
-    <ideaConfig>../../../xwork/xwork.iml,../../core/struts2-core.iml,struts2-showcase.iml</ideaConfig>
-
-    <!-- The context in which to deploy the web application -->
-    <context>/showcase</context>
-
-    <!-- The port in which to deploy the web application -->
-    <port>8080</port>
-
-    <!--
-    The libs directories can be a jar, a directory of jars, or even
-    a directory of directories (searched recursively)
-    <libs>
-        <dir>../../lib</dir>
-    </libs>
-    -->
-
-    <!--
-    Optional: the location where your source files are. If this is
-    not included, the auto-recompiling feature of QuickStart will
-    not be enabled. You may wish to do this anyway, as this feature
-    has been known to cause strange side effects. If you don't
-    specify your sources, you must specify where your classes are by
-    using the classDirs and libs elements
-    <sources>
-        <dir>src/main/java</dir>
-    </sources>
-    -->
-
-    <!--
-    The classDirs directories can be a jar or a directory of classes.
-    The WEB-INF/classes directory for each webDir (below) will automatically
-    be added if it exists.
-    -->
-    <classDirs>
-        <dir>src/main/resources</dir>
-        <dir>target/classes</dir>
-        <dir>../../core/target/classes</dir>
-    </classDirs>
-
-    <!--
-    You can specify one or more directories where your webapp files
-    are located. This is useful if you have your project split up in
-    unique ways. You can also specify the path that the directory is
-    mapped to, relative to the context.
-    -->
-    <webDirs>
-        <webDir>
-            <path>/</path>
-            <dir>src/main/webapp</dir>
-        </webDir>
-    </webDirs>
-</configuration>
diff --git a/apps/showcase/src/main/java/org/apache/struts2/showcase/Guess.java b/apps/showcase/src/main/java/org/apache/struts2/showcase/Guess.java
deleted file mode 100644
index c5b6e48..0000000
--- a/apps/showcase/src/main/java/org/apache/struts2/showcase/Guess.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.showcase;
-
-import java.util.Random;
-
-import com.opensymphony.xwork2.Action;
-import com.opensymphony.xwork2.ActionSupport;
-import com.opensymphony.xwork2.Preparable;
-import com.uwyn.rife.continuations.ContinuableObject;
-
-// START SNIPPET: example
-public class Guess extends ActionSupport implements Preparable, ContinuableObject {
-    int guess;
-
-    public void prepare() throws Exception {
-        // We clear the error message state before the action.
-        // That is because with continuations, the original (or cloned) action is being
-        //  executed, which will still have the old errors and potentially cause problems,
-        //  such as with the workflow interceptor
-        clearErrorsAndMessages();
-    }
-
-    public String execute() throws Exception {
-        int answer = new Random().nextInt(100) + 1;
-        int tries = 5;
-
-        while (answer != guess && tries > 0) {
-            pause(Action.SUCCESS);
-
-            if (guess > answer) {
-                addFieldError("guess", "Too high!");
-            } else if (guess < answer) {
-                addFieldError("guess", "Too low!");
-            }
-
-            tries--;
-        }
-
-        if (answer == guess) {
-            addActionMessage("You got it!");
-        } else {
-            addActionMessage("You ran out of tries, the answer was " + answer);
-        }
-
-        return Action.SUCCESS;
-    }
-
-    public void setGuess(int guess) {
-        this.guess = guess;
-    }
-}
-// END SNIPPET: example
diff --git a/apps/showcase/src/main/java/org/apache/struts2/showcase/source/ViewSourceAction.java b/apps/showcase/src/main/java/org/apache/struts2/showcase/source/ViewSourceAction.java
index ea546c9..80d5c98 100644
--- a/apps/showcase/src/main/java/org/apache/struts2/showcase/source/ViewSourceAction.java
+++ b/apps/showcase/src/main/java/org/apache/struts2/showcase/source/ViewSourceAction.java
@@ -57,7 +57,7 @@
 
     public String execute() throws MalformedURLException, IOException {
 
-        if (page != null) {
+        if (page != null && page.trim().length() > 0) {
 
             InputStream in = ClassLoaderUtil.getResourceAsStream(page.substring(page.indexOf("//")+1), getClass());
             page = page.replace("//", "/");
@@ -70,18 +70,26 @@
                 }
             }
             pageLines = read(in, -1);
+
+            if (in != null) {
+                in.close();
+            }
         }
 
-        if (className != null) {
-            className = "/"+className.replace('.', '/') + ".java";
+        if (className != null && className.trim().length() > 0) {
+            className = "/" + className.replace('.', '/') + ".java";
             InputStream in = getClass().getResourceAsStream(className);
             if (in == null) {
                 in = servletContext.getResourceAsStream("/WEB-INF/src"+className);
             }
             classLines = read(in, -1);
+
+            if (in != null) {
+                in.close();
+            }
         }
 
-        if (config != null) {
+        if (config != null && config.trim().length() > 0) {
             int pos = config.lastIndexOf(':');
             configLine = Integer.parseInt(config.substring(pos+1));
             config = config.substring(0, pos).replace("//", "/");
@@ -118,8 +126,6 @@
         this.padding = padding;
     }
 
-
-
     /**
      * @return the classLines
      */
@@ -215,6 +221,4 @@
     public void setServletContext(ServletContext arg0) {
         this.servletContext = arg0;
     }
-
-
 }
diff --git a/apps/showcase/src/main/resources/NOTICE.txt b/apps/showcase/src/main/resources/NOTICE.txt
index cd13ec4..28aacd4 100644
--- a/apps/showcase/src/main/resources/NOTICE.txt
+++ b/apps/showcase/src/main/resources/NOTICE.txt
@@ -2,4 +2,5 @@
 Copyright 2000-2007 The Apache Software Foundation
 
 This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
\ No newline at end of file
+The Apache Software Foundation (http://www.apache.org/).
+Nifty Corners (http://www.html.it/articoli/nifty/index.html).
diff --git a/apps/showcase/src/main/resources/org/apache/struts2/showcase/validation/FieldValidatorsExampleAction-submitClientSideValidationExample-validation.xml b/apps/showcase/src/main/resources/org/apache/struts2/showcase/validation/FieldValidatorsExampleAction-submitClientSideValidationExample-validation.xml
index 215a7c9..ab6eabd 100644
--- a/apps/showcase/src/main/resources/org/apache/struts2/showcase/validation/FieldValidatorsExampleAction-submitClientSideValidationExample-validation.xml
+++ b/apps/showcase/src/main/resources/org/apache/struts2/showcase/validation/FieldValidatorsExampleAction-submitClientSideValidationExample-validation.xml
@@ -1,73 +1,73 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
 <!DOCTYPE validators PUBLIC
-  		"-//OpenSymphony Group//XWork Validator 1.0//EN" 
-  		"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
-  		
-<!-- START SNIPPET: fieldValidatorsExample -->  		
-  		
+      "-//OpenSymphony Group//XWork Validator 1.0//EN"
+      "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
+
+<!-- START SNIPPET: fieldValidatorsExample -->
+
 <validators>
-	<field name="requiredValidatorField">
-		<field-validator type="required">
-			<message><![CDATA[ required ]]></message>
-		</field-validator>
-	</field>
-	<field name="requiredStringValidatorField">
-		<field-validator type="requiredstring">
-			<param name="trim">true</param>
+  <field name="requiredValidatorField">
+    <field-validator type="required">
+      <message><![CDATA[ required ]]></message>
+    </field-validator>
+  </field>
+  <field name="requiredStringValidatorField">
+    <field-validator type="requiredstring">
+      <param name="trim">true</param>
             <message key="i18n.nothing.here"><![CDATA[ required and must be string ]]></message>
-		</field-validator>
-	</field>
-	<field name="requiredStringValidatorField">
-		<field-validator type="requiredstring">
-			<param name="trim">true</param>
+    </field-validator>
+  </field>
+  <field name="requiredStringValidatorField">
+    <field-validator type="requiredstring">
+      <param name="trim">true</param>
             <message key="i18n.requiredstring"><![CDATA[ required and must be string ]]></message>
-		</field-validator>
-	</field>
-	<field name="integerValidatorField">
-		<field-validator type="int">
-			<param name="min">1</param>
-			<param name="max">10</param>
-			<message><![CDATA[ must be integer min 1 max 10 if supplied ]]></message>
-		</field-validator>
-	</field>
-	<field name="dateValidatorField">
-		<field-validator type="date">
-			<param name="min">01/01/1990</param>
-			<param name="max">01/01/2000</param>
-			<message><![CDATA[ must be a min 01-01-1990 max 01-01-2000 if supplied ]]></message>
-		</field-validator>
-	</field>
-	<field name="emailValidatorField">
-		<field-validator type="email">
-			<message><![CDATA[ must be a valid email if supplied ]]></message>
-		</field-validator>
-	</field>
-	<field name="urlValidatorField">
-		<field-validator type="url">
-			<message><![CDATA[ must be a valid url if supplied ]]></message>
-		</field-validator>
-	</field>
-	<field name="stringLengthValidatorField">
-		<field-validator type="stringlength">
-			<param name="maxLength">4</param>
-			<param name="minLength">2</param>
-			<param name="trim">true</param>
-			<message><![CDATA[ must be a String of a specific greater than 1 less than 5 if specified ]]></message>
-		</field-validator>
-	</field>
-	<field name="regexValidatorField">
-		<field-validator type="regex">
-			<param name="expression">.*\.txt</param>
-			<message><![CDATA[ regexValidatorField must match a regexp (.*\.txt) if specified ]]></message>
-		</field-validator>
-	</field>
-	<field name="fieldExpressionValidatorField">
-		<field-validator type="fieldexpression">
-			<param name="expression">(fieldExpressionValidatorField == requiredValidatorField)</param>
-			<message><![CDATA[ must be the same as the Required Validator Field if specified ]]></message>
-		</field-validator>
-	</field>
+    </field-validator>
+  </field>
+  <field name="integerValidatorField">
+    <field-validator type="int">
+      <param name="min">1</param>
+      <param name="max">10</param>
+      <message><![CDATA[ must be integer min 1 max 10 if supplied ]]></message>
+    </field-validator>
+  </field>
+  <field name="dateValidatorField">
+    <field-validator type="date">
+      <param name="min">01/01/1990</param>
+      <param name="max">01/01/2000</param>
+      <message><![CDATA[ must be a min 01/01/1990 max 01/01/2000 if supplied ]]></message>
+    </field-validator>
+  </field>
+  <field name="emailValidatorField">
+    <field-validator type="email">
+      <message><![CDATA[ must be a valid email if supplied ]]></message>
+    </field-validator>
+  </field>
+  <field name="urlValidatorField">
+    <field-validator type="url">
+      <message><![CDATA[ must be a valid url if supplied ]]></message>
+    </field-validator>
+  </field>
+  <field name="stringLengthValidatorField">
+    <field-validator type="stringlength">
+      <param name="maxLength">4</param>
+      <param name="minLength">2</param>
+      <param name="trim">true</param>
+      <message><![CDATA[ must be a String of a specific greater than 1 less than 5 if specified ]]></message>
+    </field-validator>
+  </field>
+  <field name="regexValidatorField">
+    <field-validator type="regex">
+      <param name="expression">.*\.txt</param>
+      <message><![CDATA[ regexValidatorField must match a regexp (.*\.txt) if specified ]]></message>
+    </field-validator>
+  </field>
+  <field name="fieldExpressionValidatorField">
+    <field-validator type="fieldexpression">
+      <param name="expression">(fieldExpressionValidatorField == requiredValidatorField)</param>
+      <message><![CDATA[ must be the same as the Required Validator Field if specified ]]></message>
+    </field-validator>
+  </field>
 </validators>
 
 <!-- END SNIPPET: fieldValidatorsExample -->
diff --git a/apps/showcase/src/main/resources/struts-continuations.xml b/apps/showcase/src/main/resources/struts-continuations.xml
deleted file mode 100644
index dc806e3..0000000
--- a/apps/showcase/src/main/resources/struts-continuations.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE struts PUBLIC
-    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
-    "http://struts.apache.org/dtds/struts-2.0.dtd">
-<struts>
-    <package name="continuations" extends="struts-default" namespace="/continuations">
-        <action name="guess" class="org.apache.struts2.showcase.Guess">
-            <result type="freemarker">guess.ftl</result>
-        </action>
-    </package>
-</struts>
diff --git a/apps/showcase/src/main/resources/struts-filedownload.xml b/apps/showcase/src/main/resources/struts-filedownload.xml
index a88d2a2..3442ef8 100644
--- a/apps/showcase/src/main/resources/struts-filedownload.xml
+++ b/apps/showcase/src/main/resources/struts-filedownload.xml
@@ -10,7 +10,7 @@
         <default-action-ref name="download"/>
 
         <action name="download" class="org.apache.struts2.showcase.filedownload.FileDownloadAction">
-            <param name="inputPath">\images\struts.gif</param>
+            <param name="inputPath">/images/struts.gif</param>
 			<result name="success" type="stream">
                 <param name="contentType">image/gif</param>
                 <param name="inputName">inputStream</param>
@@ -20,7 +20,7 @@
         </action>
 
         <action name="download2" class="org.apache.struts2.showcase.filedownload.FileDownloadAction">
-            <param name="inputPath">\images\struts-gif.zip</param>
+            <param name="inputPath">/images/struts-gif.zip</param>
             <result name="success" type="stream">
                 <param name="contentType">application/zip</param>
                 <param name="inputName">inputStream</param>
diff --git a/apps/showcase/src/main/resources/struts-integration.xml b/apps/showcase/src/main/resources/struts-integration.xml
index 66f28d2..4d7b3dc 100644
--- a/apps/showcase/src/main/resources/struts-integration.xml
+++ b/apps/showcase/src/main/resources/struts-integration.xml
@@ -30,7 +30,7 @@
 	    <default-interceptor-ref name="integration" />
 	    <default-action-ref name="editGangster" />
 	    
-	    <!-- Diplay entry page that uses Model-Driven technique -->
+	    <!-- Display entry page that uses Model-Driven technique -->
 		<action name="editGangster" class="org.apache.struts2.s1.Struts1Action">
 	    	<param name="className">org.apache.struts2.showcase.integration.EditGangsterAction</param>
 			<result>modelDriven.jsp</result>
diff --git a/apps/showcase/src/main/resources/struts-tiles.xml b/apps/showcase/src/main/resources/struts-tiles.xml
index 178f9ed..e49a5fa 100644
--- a/apps/showcase/src/main/resources/struts-tiles.xml
+++ b/apps/showcase/src/main/resources/struts-tiles.xml
@@ -17,6 +17,10 @@
             <result type="tiles">showcase.freemarker</result>
         </action>
 
+        <action name="freemarkerLayout">
+            <result type="tiles">showcase.freemarkerLayout</result>
+        </action>
+
         <action name="sanity">
             <result type="redirect">/tiles/layout.jsp</result>
             <result type="redirect" name="success">/tiles/layout.jsp</result>
diff --git a/apps/showcase/src/main/resources/struts.properties b/apps/showcase/src/main/resources/struts.properties
deleted file mode 100644
index e89a61f..0000000
--- a/apps/showcase/src/main/resources/struts.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-struts.i18n.reload=true
-struts.devMode = true
-struts.configuration.xml.reload=true
-struts.continuations.package=org.apache.struts2.showcase
-struts.custom.i18n.resources=globalMessages
-#struts.action.extension=jspa
-struts.url.http.port = 8080
-struts.freemarker.manager.classname=customFreemarkerManager
-struts.serve.static=true
-struts.serve.static.browserCache=false
-struts.codebehind.defaultPackage=person
\ No newline at end of file
diff --git a/apps/showcase/src/main/resources/struts.xml b/apps/showcase/src/main/resources/struts.xml
index b2db05c..8f1cf52 100644
--- a/apps/showcase/src/main/resources/struts.xml
+++ b/apps/showcase/src/main/resources/struts.xml
@@ -7,16 +7,27 @@
 <!-- START SNIPPET: xworkSample -->
 <struts>
 
+    <!-- Some or all of these can be flipped to true for debugging -->
+    <constant name="struts.i18n.reload" value="false" />
+    <constant name="struts.devMode" value="false" />
+    <constant name="struts.configuration.xml.reload" value="false" />
+    <constant name="struts.custom.i18n.resources" value="globalMessages" />
+
+    <constant name="struts.codebehind.defaultPackage" value="person" />
+    <constant name="struts.freemarker.manager.classname" value="customFreemarkerManager" />
+    <constant name="struts.serve.static" value="true" />
+    <constant name="struts.serve.static.browserCache" value="false" />
+
     <include file="struts-chat.xml" />
-    
+
     <include file="struts-hangman.xml" />
-    
+
     <include file="struts-continuations.xml"/>
 
     <include file="struts-tags.xml"/>
-    
+
     <include file="struts-validation.xml" />
-    
+
     <include file="struts-actionchaining.xml" />
 
     <include file="struts-ajax.xml" />
@@ -26,19 +37,19 @@
     <include file="struts-person.xml" />
 
     <include file="struts-wait.xml" />
-	
+
     <include file="struts-jsf.xml" />
 
     <include file="struts-token.xml" />
-    
+
     <include file="struts-model-driven.xml" />
-    
+
     <include file="struts-integration.xml" />
-    
+
     <include file="struts-filedownload.xml" />
-    
+
     <include file="struts-conversion.xml" />
-    
+
     <include file="struts-freemarker.xml" />
 
     <include file="struts-tiles.xml" />
@@ -48,17 +59,17 @@
     <package name="default" extends="struts-default">
         <interceptors>
             <interceptor-stack name="crudStack">
-            	<interceptor-ref name="checkbox" />
+              <interceptor-ref name="checkbox" />
                 <interceptor-ref name="params" />
-				<interceptor-ref name="static-params" />
+        <interceptor-ref name="static-params" />
                 <interceptor-ref name="defaultStack" />
             </interceptor-stack>
         </interceptors>
-		
+
         <action name="showcase">
             <result>showcase.jsp</result>
         </action>
-        
+
         <action name="viewSource" class="org.apache.struts2.showcase.source.ViewSourceAction">
             <result>viewSource.jsp</result>
         </action>
@@ -99,7 +110,7 @@
             <interceptor-ref name="basicStack"/>
         </action>
         <action name="edit-*" class="org.apache.struts2.showcase.action.EmployeeAction">
-			<param name="empId">{1}</param>
+      <param name="empId">{1}</param>
             <result>/empmanager/editEmployee.jsp</result>
             <interceptor-ref name="crudStack"><param name="validation.excludeMethods">execute</param></interceptor-ref>
         </action>
diff --git a/apps/showcase/src/main/webapp/WEB-INF/decorators/main.jsp b/apps/showcase/src/main/webapp/WEB-INF/decorators/main.jsp
index 0e15e48..ca47952 100644
--- a/apps/showcase/src/main/webapp/WEB-INF/decorators/main.jsp
+++ b/apps/showcase/src/main/webapp/WEB-INF/decorators/main.jsp
@@ -5,7 +5,7 @@
     response.setHeader("Pragma", "no-cache");
     response.setHeader("Cache-Control", "no-cache");
     response.setDateHeader("Expires", 0);
-    
+
     // Calculate the view sources url
     String sourceUrl = request.getContextPath()+"/viewSource.action";
     com.opensymphony.xwork2.ActionInvocation inv = com.opensymphony.xwork2.ActionContext.getContext().getActionInvocation();
@@ -14,9 +14,9 @@
         com.opensymphony.xwork2.util.location.Location loc = inv.getProxy().getConfig().getLocation();
         sourceUrl += "?config="+(loc != null ? loc.getURI()+":"+loc.getLineNumber() : "");
         sourceUrl += "&className="+inv.getProxy().getConfig().getClassName();
-        
+
         if (inv.getResult() != null && inv.getResult() instanceof org.apache.struts2.dispatcher.StrutsResultSupport) {
-	        sourceUrl += "&page="+mapping.getNamespace()+"/"+((org.apache.struts2.dispatcher.StrutsResultSupport)inv.getResult()).getLastFinalLocation();
+          sourceUrl += "&page="+mapping.getNamespace()+"/"+((org.apache.struts2.dispatcher.StrutsResultSupport)inv.getResult()).getLastFinalLocation();
         }
     } else {
         sourceUrl += "?page="+request.getServletPath();
@@ -104,11 +104,11 @@
 
     </div><!-- end content -->
 
-	<div>
-    	<p>
-    		<a href="<%=sourceUrl %>">View Sources</a>
-    	</p>
-	</div>
+  <div>
+      <p>
+        <a href="<%=sourceUrl %>">View Sources</a>
+      </p>
+  </div>
     <div id="footer" class="clearfix">
         <p>Copyright &copy; 2003-<s:property value="#dateAction.now.year + 1900" /> The Apache Software Foundation.</p>
     </div><!-- end footer -->
diff --git a/apps/showcase/src/main/webapp/WEB-INF/tiles.xml b/apps/showcase/src/main/webapp/WEB-INF/tiles.xml
index b58dd06..38664fe 100644
--- a/apps/showcase/src/main/webapp/WEB-INF/tiles.xml
+++ b/apps/showcase/src/main/webapp/WEB-INF/tiles.xml
@@ -28,15 +28,21 @@
 <tiles-definitions>
 
     <definition name="showcase.index" template="/tiles/layout.jsp">
-        <put name="title" value="Tiles Showcase"/>
-        <put name="header" value="/tiles/header.jsp"/>
-        <put name="body" value="/tiles/body.jsp"/>
+        <put-attribute name="title" value="Tiles Showcase"/>
+        <put-attribute name="header" value="/tiles/header.jsp"/>
+        <put-attribute name="body" value="/tiles/body.jsp"/>
     </definition>
 
     <definition name="showcase.freemarker" template="/tiles/layout.jsp">
-        <put name="title" value="Tiles/Freemarker Showcase"/>
-        <put name="header" value="/tiles/header.jsp"/>
-        <put name="body" value="/tiles/body.ftl"/>
+        <put-attribute name="title" value="Tiles/Freemarker Showcase"/>
+        <put-attribute name="header" value="/tiles/header.jsp"/>
+        <put-attribute name="body" value="/tiles/body.ftl"/>
+    </definition>
+
+    <definition name="showcase.freemarkerLayout" template="/tiles/layout.ftl">
+        <put-attribute name="title" value="Tiles/Freemarker Showcase"/>
+        <put-attribute name="header" value="/tiles/header.jsp"/>
+        <put-attribute name="body" value="/tiles/body.ftl"/>
     </definition>
 
 </tiles-definitions>
diff --git a/apps/showcase/src/main/webapp/WEB-INF/web.xml b/apps/showcase/src/main/webapp/WEB-INF/web.xml
index 321fe0c..e33323b 100644
--- a/apps/showcase/src/main/webapp/WEB-INF/web.xml
+++ b/apps/showcase/src/main/webapp/WEB-INF/web.xml
@@ -5,11 +5,6 @@
 	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 
     <display-name>Struts Showcase Application</display-name>
-
-    <context-param>
-        <param-name>org.apache.tiles.CONTAINER_FACTORY</param-name>
-        <param-value>org.apache.struts2.tiles.StrutsTilesContainerFactory</param-value>
-    </context-param>
 	
     <filter>
         <filter-name>struts-cleanup</filter-name>
@@ -57,7 +52,7 @@
 
     <listener>
         <listener-class>
-            org.apache.tiles.listener.TilesListener
+            org.apache.struts2.tiles.StrutsTilesListener
         </listener-class>
     </listener>
     
@@ -85,6 +80,12 @@
 	    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
     	<load-on-startup>1</load-on-startup>
   	</servlet>
+  		<servlet>
+    	<servlet-name>JspSupportServlet</servlet-name>
+    	<servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class>
+    	<load-on-startup>1</load-on-startup>
+  	</servlet>
+
 
   	<!-- JavaServer Faces Servlet Mapping, not called directly -->
     	<servlet-mapping>
diff --git a/apps/showcase/src/main/webapp/ajax/autocompleter/index.jsp b/apps/showcase/src/main/webapp/ajax/autocompleter/index.jsp
index c7303fe..b17c2b5 100644
--- a/apps/showcase/src/main/webapp/ajax/autocompleter/index.jsp
+++ b/apps/showcase/src/main/webapp/ajax/autocompleter/index.jsp
@@ -24,7 +24,7 @@
 
 Reload on type (loadOnTextChange="true"), after 3 characters (loadMinimumCout="3", it is "3" by default), without the down arrow button (showDownArrow="false")
 <br/>
-<s:autocompleter theme="ajax" indicator="indicator" href="%{jsonList}" cssStyle="width: 200px;" autoComplete="false" loadOnTextChange="true" loadMinimumCount="3" showDownArrow="false"/>
+<s:autocompleter name="state" theme="ajax" indicator="indicator" href="%{jsonList}" cssStyle="width: 200px;" autoComplete="false" loadOnTextChange="true" loadMinimumCount="3" showDownArrow="false"/>
 <img id="indicator" src="${pageContext.request.contextPath}/images/indicator.gif" alt="Loading..." style="display:none"/>
 
 <br/>
diff --git a/apps/showcase/src/main/webapp/ajax/index.jsp b/apps/showcase/src/main/webapp/ajax/index.jsp
index 037ce21..4434c4b 100644
--- a/apps/showcase/src/main/webapp/ajax/index.jsp
+++ b/apps/showcase/src/main/webapp/ajax/index.jsp
@@ -15,9 +15,9 @@
     <li><a href="remotediv">Remote div tag</a></li>
     <li><a href="remotelink">Remote link tag</a></li>
     <li><a href="tabbedpanel">Tabbed panel</a></li>
-    <li><a href="widgets">Widgets </a> (may not work in all browsers!) 
+    <li><a href="widgets">Widgets </a> (may not work in all browsers!)
         see the <a href="http://www.dojotoolkit.org">dojo website</a> for more information</li>
-    <li>(broken) <a href="remoteforms">Remote forms</a></li>
+    <li><a href="remoteforms">Remote forms</a></li>
 </ul>
 </body>
 </html>
diff --git a/apps/showcase/src/main/webapp/continuations/guess.ftl b/apps/showcase/src/main/webapp/continuations/guess.ftl
deleted file mode 100644
index 453b0b9..0000000
--- a/apps/showcase/src/main/webapp/continuations/guess.ftl
+++ /dev/null
@@ -1,18 +0,0 @@
-<!-- START SNIPPET: example -->
-<html>
-<head>
-    <title></title>
-</head>
-
-<body>
-<#list actionMessages as msg>
-    ${msg}
-</#list>
-
-<@s.form action="guess" method="post">
-    <@s.textfield label="Guess" name="guess"/>
-    <@s.submit value="Guess"/>
-</@s.form>
-</body>
-</html>
-<!-- END SNIPPET: example -->
diff --git a/apps/showcase/src/main/webapp/showcase.jsp b/apps/showcase/src/main/webapp/showcase.jsp
index cb029ab..4597926 100644
--- a/apps/showcase/src/main/webapp/showcase.jsp
+++ b/apps/showcase/src/main/webapp/showcase.jsp
@@ -1,6 +1,6 @@
-<%-- 
+<%--
     showcase.jsp
-    
+
     @version $Date$ $Id$
 --%>
 
@@ -32,7 +32,7 @@
     <p>
     <%-- THIS LIST IS MAINTAINED IN WEB-INF/decorators/main.jsp TO CREATE THE MENU BAR -- EDIT THERE AND COPY HERE --%>
     <ul>
-        <li><a href="<s:url value="/showcase.jsp"/>">Home</a></li>        
+        <li><a href="<s:url value="/showcase.jsp"/>">Home</a></li>
         <li><a href="<s:url value="/ajax/index.jsp" />">Ajax Theme for Struts Tags</a></li>
         <li><a href="<s:url value="/chat/index.jsp"/>">Ajax Chat</a>
         <li><a href="<s:url action="actionChain1!input" namespace="/actionchaining"  includeParams="none" />">Action Chaining</a></li>
@@ -52,15 +52,6 @@
         <li><a href="<s:url value="/validation/index.jsp"/>">Validation</a></li>
         <li class="last"><a href="<s:url value="/help.jsp"/>">Help</a></li>
      </ul>
-
-    <h2>Sandbox</h2>
-    <p>
-        These examples are under development and may not be fully operational.
-    </p>
-    <ul>
-        <li><a href="<s:url action="guess" namespace="/continuations" />">Continuations</a></li>
-    </ul>
-
 </p>
 
 </body>
diff --git a/apps/showcase/src/main/webapp/tiles/body.jsp b/apps/showcase/src/main/webapp/tiles/body.jsp
index 1105722..da89efd 100644
--- a/apps/showcase/src/main/webapp/tiles/body.jsp
+++ b/apps/showcase/src/main/webapp/tiles/body.jsp
@@ -10,6 +10,9 @@
         <li>
             <a href="freemarker.action">View FreeMarker Example</a>
         </li>
+        <li>
+            <a href="freemarkerLayout.action">View Example with a FreeMarker Layout</a>
+        </li>
     </ul>
 
 </div>
\ No newline at end of file
diff --git a/apps/showcase/src/main/webapp/tiles/layout.ftl b/apps/showcase/src/main/webapp/tiles/layout.ftl
new file mode 100644
index 0000000..010d560
--- /dev/null
+++ b/apps/showcase/src/main/webapp/tiles/layout.ftl
@@ -0,0 +1,12 @@
+<#assign tiles=JspTaglibs["http://tiles.apache.org/tags-tiles"]>
+<@tiles.importAttribute name="title" scope="request"/>
+<html>
+    <head><title><@tiles.getAsString name="title"/></title></head>
+<body>
+    <@tiles.insertAttribute name="header"/>
+    <p id="body">
+        <@tiles.insertAttribute name="body"/>
+    </p>
+	<p>Notice that this is a layout made in FreeMarker</p>
+</body>
+</html>
diff --git a/apps/showcase/src/main/webapp/tiles/layout.jsp b/apps/showcase/src/main/webapp/tiles/layout.jsp
index 3162ffb..9caca11 100644
--- a/apps/showcase/src/main/webapp/tiles/layout.jsp
+++ b/apps/showcase/src/main/webapp/tiles/layout.jsp
@@ -1,4 +1,4 @@
-<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
+<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
 
 <%-- Show usage; Used in Header --%>
@@ -6,10 +6,12 @@
 <html>
     <head><title><tiles:getAsString name="title"/></title></head>
 <body>
-    <tiles:attribute name="header"/>
+    <tiles:insertAttribute name="header"/>
 
     <p id="body">
-        <tiles:attribute name="body"/>
+        <tiles:insertAttribute name="body"/>
     </p>
+
+	<p>Notice that this is a layout made in JSP</p>
 </body>
 </html>
diff --git a/apps/showcase/src/main/webapp/validation/index.jsp b/apps/showcase/src/main/webapp/validation/index.jsp
index fa38630..36f92b9 100644
--- a/apps/showcase/src/main/webapp/validation/index.jsp
+++ b/apps/showcase/src/main/webapp/validation/index.jsp
@@ -13,7 +13,7 @@
     </head>
     <body>
         <h1>Validation Examples</h1>
-        
+
         <s:url id="quizBasic" namespace="/validation" action="quizBasic" method="input"/>
         <s:url id="quizClient" namespace="/validation" action="quizClient" method="input"/>
         <s:url id="quizClientCss" namespace="/validation" action="quizClientCss" method="input"/>
@@ -24,13 +24,13 @@
         <s:url id="clientSideValidationUrl" action="clientSideValidationExample" namespace="/validation" />
         <s:url id="backToShowcase" action="showcase" namespace="/" />
         <s:url id="storeMessageAcrossRequestExample" value="/validation/storeErrorsAcrossRequestExample.jsp" />
-        
+
         <ul>
             <li><s:a href="%{fieldValidatorUrl}">Field Validators</s:a></li>
             <li><s:a href="%{clientSideValidationUrl}">Field Validators with client-side JavaScript</s:a></li>
             <li><s:a href="%{nonFieldValidatorUrl}">Non Field Validator</s:a></li>
             <li><s:a href="%{storeMessageAcrossRequestExample}">Store across request using MessageStoreInterceptor (Example)</s:a></li>
-            <li>(broken) <s:a href="%{quizAjax}">Validation (ajax)</s:a></li>
+            <li><s:a href="%{quizAjax}">Validation (ajax)</s:a></li>
             <li><s:a href="%{quizBasic}">Validation (basic)</s:a></li>
             <li><s:a href="%{quizClient}">Validation (client)</s:a></li>
             <li><s:a href="%{quizClientCss}">Validation (client using css_xhtml theme)</s:a></li>
diff --git a/assembly/pom.xml b/assembly/pom.xml
index da562f5..3081428 100644
--- a/assembly/pom.xml
+++ b/assembly/pom.xml
@@ -1,26 +1,4 @@
-<?xml version="1.0"?>
-<!--
-/* 
- * Copyright 2005-2006 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.
- *
- * $Id$
- */
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-assembly</artifactId>
@@ -33,14 +11,13 @@
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-parent</artifactId>
-        <version>2.0.5</version>
+        <version>2.0.14</version>
     </parent>
 
     <scm>
-        <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/assembly</connection>
-        <developerConnection>
-            scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/assembly</developerConnection>
-        <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/assembly</url>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/assembly</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/assembly</developerConnection>
+        <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/tags/STRUTS_2_0_14/assembly</url>
     </scm>
 
     <build>
@@ -100,10 +77,10 @@
                         <configuration>
                             <artifactItems>
                                 <artifactItem>
-                                    <groupId>opensymphony</groupId>
+                                    <groupId>com.opensymphony</groupId>
                                     <artifactId>xwork</artifactId>
                                     <classifier>javadoc</classifier>
-                                    <version>2.0.0</version>
+                                    <version>2.0.7</version>
                                 </artifactItem>
                             </artifactItems>
                             <outputDirectory>${project.build.directory}/xwork-apidocs</outputDirectory>
@@ -119,12 +96,9 @@
                         <phase>process-resources</phase>
                         <configuration>
                             <tasks>
-                                <mkdir dir="${project.build.directory}/cwiki"/>
-                                <get src="http://struts.apache.org/2.x/docs.zip"
-                                     dest="${project.build.directory}/docs.zip"
-                                     ignoreerrors="false"/>
-                                <unzip src="${project.build.directory}/docs.zip"
-                                     dest="${project.build.directory}/cwiki"/>
+                                <mkdir dir="${project.build.directory}/cwiki" />
+                                <get src="http://struts.apache.org/2.x/docs.zip" dest="${project.build.directory}/docs.zip" ignoreerrors="false" />
+                                <unzip src="${project.build.directory}/docs.zip" dest="${project.build.directory}/cwiki" />
                             </tasks>
                         </configuration>
                         <goals>
@@ -135,13 +109,26 @@
             </plugin>
             <plugin>
                 <artifactId>maven-assembly-plugin</artifactId>
-                <version>2.0.1</version>
+                <version>2.2-beta-1</version>
+                <executions>
+                    <execution>
+                        <id>make-assembly</id>
+                        <phase>package</phase>
+                        <goals>
+                             <goal>attached</goal>
+                        </goals>
+                    </execution>
+                </executions>
                 <configuration>
                     <descriptors>
                         <descriptor>src/main/assembly/all.xml</descriptor>
                         <descriptor>src/main/assembly/lib.xml</descriptor>
+<!--
+                        <descriptor>src/main/assembly/lib-jdk14.xml</descriptor>
+-->
                         <descriptor>src/main/assembly/apps.xml</descriptor>
                         <descriptor>src/main/assembly/src.xml</descriptor>
+                        <descriptor>src/main/assembly/docs.xml</descriptor>
                     </descriptors>
                     <finalName>struts-${version}</finalName>
                     <outputDirectory>target/assembly/out</outputDirectory>
@@ -155,12 +142,13 @@
 
         <dependency>
             <groupId>org.apache.struts</groupId>
-            <artifactId>struts2-api</artifactId>
+            <artifactId>struts2-core</artifactId>
             <version>${version}</version>
         </dependency>
+
         <dependency>
             <groupId>org.apache.struts</groupId>
-            <artifactId>struts2-core</artifactId>
+            <artifactId>struts2-codebehind-plugin</artifactId>
             <version>${version}</version>
         </dependency>
 
@@ -192,38 +180,50 @@
             <groupId>org.apache.struts</groupId>
             <artifactId>struts2-pell-multipart-plugin</artifactId>
             <version>${version}</version>
-        </dependency> 
+        </dependency>
 
         <dependency>
             <groupId>org.apache.struts</groupId>
             <artifactId>struts2-plexus-plugin</artifactId>
             <version>${version}</version>
-        </dependency> 
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.struts</groupId>
+            <artifactId>struts2-spring-plugin</artifactId>
+            <version>${version}</version>
+        </dependency>
 
         <dependency>
             <groupId>org.apache.struts</groupId>
             <artifactId>struts2-sitegraph-plugin</artifactId>
             <version>${version}</version>
-        </dependency> 
+        </dependency>
 
         <dependency>
             <groupId>org.apache.struts</groupId>
             <artifactId>struts2-sitemesh-plugin</artifactId>
             <version>${version}</version>
-        </dependency> 
+        </dependency>
 
         <dependency>
             <groupId>org.apache.struts</groupId>
             <artifactId>struts2-struts1-plugin</artifactId>
             <version>${version}</version>
-        </dependency> 
+        </dependency>
 
         <dependency>
             <groupId>org.apache.struts</groupId>
             <artifactId>struts2-tiles-plugin</artifactId>
             <version>${version}</version>
-        </dependency> 
+        </dependency>
 
+        <dependency>
+            <groupId>org.apache.tiles</groupId>
+            <artifactId>tiles-jsp</artifactId>
+            <version>2.0.4</version>
+            <scope>runtime</scope>
+        </dependency>
 
         <!-- Include optional dependencies -->
         <dependency>
@@ -377,7 +377,7 @@
         <dependency>
             <groupId>org.codehaus.plexus</groupId>
             <artifactId>plexus-container-default</artifactId>
-            <version>1.0-alpha-10-SNAPSHOT</version>
+            <version>1.0-alpha-10</version>
             <scope>provided</scope>
         </dependency>
 
@@ -416,7 +416,7 @@
             <version>1.2.8</version>
             <scope>provided</scope>
         </dependency>
-        
+
 
         <dependency>
             <groupId>myfaces</groupId>
@@ -425,13 +425,6 @@
             <scope>provided</scope>
         </dependency>
 
-      <dependency>
-         <groupId>org.rifers</groupId>
-         <artifactId>rife-continuations</artifactId>
-         <version>0.0.2</version>
-         <scope>provided</scope>
-     </dependency>
- 
         <!-- Exclude transitive dependencies -->
         <dependency>
             <groupId>javax.servlet</groupId>
@@ -442,4 +435,4 @@
 
     </dependencies>
 
-</project>
+</project>
\ No newline at end of file
diff --git a/assembly/src/main/assembly/all.xml b/assembly/src/main/assembly/all.xml
index b1acea5..b5769ba 100644
--- a/assembly/src/main/assembly/all.xml
+++ b/assembly/src/main/assembly/all.xml
@@ -27,6 +27,12 @@
     <dependencySet>
       <outputDirectory>lib</outputDirectory>
       <scope>runtime</scope>
+      <excludes>
+        <exclude>net.sf.retrotranslator:retrotranslator-runtime</exclude>
+        <exclude>backport-util-concurrent:backport-util-concurrent</exclude>
+        <exclude>junit:junit</exclude>
+        <exclude>*:jdk14</exclude>
+      </excludes>
     </dependencySet>
   </dependencySets>
   <fileSets>
@@ -58,10 +64,10 @@
         <directory>../target/site</directory>
         <outputDirectory>docs</outputDirectory>
       </fileSet>
-      <fileSet>
+      <!--fileSet>
         <directory>../api/target/site</directory>
         <outputDirectory>docs/struts2-api</outputDirectory>
-      </fileSet>
+      </fileSet-->
       <fileSet>
         <directory>../core/target/site</directory>
         <outputDirectory>docs/struts2-core</outputDirectory>
@@ -81,6 +87,10 @@
       </fileSet>
       -->
       <fileSet>
+        <directory>../plugins/codebehind/target/site</directory>
+        <outputDirectory>docs/struts2-plugins/struts2-codebehind-plugin</outputDirectory>
+      </fileSet>
+      <fileSet>
         <directory>../plugins/config-browser/target/site</directory>
         <outputDirectory>docs/struts2-plugins/struts2-config-browser-plugin</outputDirectory>
       </fileSet>
@@ -113,6 +123,10 @@
         <outputDirectory>docs/struts2-plugins/struts2-sitegraph-plugin</outputDirectory>
       </fileSet>
       <fileSet>
+        <directory>../plugins/spring/target/site</directory>
+        <outputDirectory>docs/struts2-plugins/struts2-spring-plugin</outputDirectory>
+      </fileSet>
+      <fileSet>
         <directory>../plugins/sitemesh/target/site</directory>
         <outputDirectory>docs/struts2-plugins/struts2-sitemesh-plugin</outputDirectory>
       </fileSet>
@@ -130,14 +144,14 @@
         <include>src/</include>
       </includes>
     </fileSet>
-      <fileSet>
+      <!--fileSet>
         <directory>../api</directory>
         <outputDirectory>src/api</outputDirectory>
         <includes>
           <include>pom.xml</include>
           <include>src/</include>
         </includes>
-      </fileSet>
+      </fileSet-->
     <fileSet>
       <directory>../apps</directory>
       <outputDirectory>src/apps</outputDirectory>
@@ -186,5 +200,13 @@
         <include>src/</include>
       </includes>
    </fileSet>
+    <fileSet>
+      <directory>../plugins</directory>
+      <outputDirectory>src/plugins</outputDirectory>
+      <excludes>
+        <exclude>*/target/**</exclude>
+        <exclude>target/**</exclude>
+      </excludes>
+    </fileSet>
   </fileSets>
 </assembly>
diff --git a/assembly/src/main/assembly/docs.xml b/assembly/src/main/assembly/docs.xml
new file mode 100644
index 0000000..acf2a63
--- /dev/null
+++ b/assembly/src/main/assembly/docs.xml
@@ -0,0 +1,116 @@
+<!--
+/*
+ * $Id: docs.xml 651587 2008-04-25 12:15:09Z hermanns $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+
+<assembly>
+  <id>docs</id>
+  <formats>
+    <format>zip</format>
+  </formats>
+  <fileSets>
+
+    <!-- Include the XWork Javadoc in the assembly -->
+    <fileSet>
+      <directory>target/xwork-apidocs</directory>
+      <outputDirectory>docs/xwork-apidocs</outputDirectory>
+    </fileSet>
+
+      <!-- Include the website in the assembly -->
+      <fileSet>
+        <directory>../target/site</directory>
+        <outputDirectory>docs</outputDirectory>
+      </fileSet>
+      <fileSet>
+        <directory>../api/target/site</directory>
+        <outputDirectory>docs/struts2-api</outputDirectory>
+      </fileSet>
+      <fileSet>
+        <directory>../core/target/site</directory>
+        <outputDirectory>docs/struts2-core</outputDirectory>
+      </fileSet>
+
+      <!-- Include the Confluence docs in the assembly -->
+      <fileSet>
+        <directory>target/cwiki</directory>
+        <outputDirectory>docs</outputDirectory>
+      </fileSet>
+
+      <!-- Plugins -->
+      <fileSet>
+        <directory>../plugins/codebehind/target/site</directory>
+        <outputDirectory>docs/struts2-plugins/struts2-codebehind-plugin</outputDirectory>
+      </fileSet>
+      <fileSet>
+        <directory>../plugins/config-browser/target/site</directory>
+        <outputDirectory>docs/struts2-plugins/struts2-config-browser-plugin</outputDirectory>
+      </fileSet>
+      <fileSet>
+        <directory>../plugins/jasperreports/target/site</directory>
+        <outputDirectory>docs/struts2-plugins/struts2-jasperreports-plugin</outputDirectory>
+      </fileSet>
+      <fileSet>
+        <directory>../plugins/jfreechart/target/site</directory>
+        <outputDirectory>docs/struts2-plugins/struts2-jfreechart-plugin</outputDirectory>
+      </fileSet>
+      <fileSet>
+        <directory>../plugins/jsf/target/site</directory>
+        <outputDirectory>docs/struts2-plugins/struts2-jsf-plugin</outputDirectory>
+      </fileSet>
+      <fileSet>
+        <directory>../plugins/jsf/target/site</directory>
+        <outputDirectory>docs/struts2-plugins/struts2-junit-plugin</outputDirectory>
+      </fileSet>
+      <fileSet>
+        <directory>../plugins/pell-multipart/target/site</directory>
+        <outputDirectory>docs/struts2-plugins/struts2-pell-multipart-plugin</outputDirectory>
+      </fileSet>
+      <fileSet>
+        <directory>../plugins/plexus/target/site</directory>
+        <outputDirectory>docs/struts2-plugins/struts2-plexus-plugin</outputDirectory>
+      </fileSet>
+      <fileSet>
+        <directory>../plugins/sitegraph/target/site</directory>
+        <outputDirectory>docs/struts2-plugins/struts2-sitegraph-plugin</outputDirectory>
+      </fileSet>
+      <fileSet>
+        <directory>../plugins/sitemesh/target/site</directory>
+        <outputDirectory>docs/struts2-plugins/struts2-sitemesh-plugin</outputDirectory>
+      </fileSet>
+      <fileSet>
+        <directory>../plugins/spring/target/site</directory>
+        <outputDirectory>docs/struts2-plugins/struts2-spring-plugin</outputDirectory>
+      </fileSet>
+      <fileSet>
+        <directory>../plugins/struts1/target/site</directory>
+        <outputDirectory>docs/struts2-plugins/struts2-struts1-plugin</outputDirectory>
+      </fileSet>
+      <fileSet>
+        <directory>../plugins/tiles/target/site</directory>
+        <outputDirectory>docs/struts2-plugins/struts2-testng-plugin</outputDirectory>
+      </fileSet>
+      <fileSet>
+        <directory>../plugins/tiles/target/site</directory>
+        <outputDirectory>docs/struts2-plugins/struts2-tiles-plugin</outputDirectory>
+      </fileSet>
+
+  </fileSets>
+</assembly>
diff --git a/assembly/src/main/assembly/lib-jdk14.xml b/assembly/src/main/assembly/lib-jdk14.xml
new file mode 100644
index 0000000..5efca3c
--- /dev/null
+++ b/assembly/src/main/assembly/lib-jdk14.xml
@@ -0,0 +1,58 @@
+<!--
+/*
+ * $Id: lib-jdk14.xml 615299 2008-01-25 18:26:44Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+
+<assembly>
+  <id>lib-jdk14</id>
+  <formats>
+    <format>zip</format>
+  </formats>
+  <dependencySets>
+    <dependencySet useTransitiveFiltering="true">
+      <outputDirectory>jdk14</outputDirectory>
+      <outputFileNameMapping>${artifactId}-${version}.${extension}</outputFileNameMapping>
+      <includes>
+        <include>net.sf.retrotranslator:retrotranslator-runtime</include>
+        <include>backport-util-concurrent:backport-util-concurrent</include>
+      </includes>
+    </dependencySet>
+    <dependencySet>
+      <useTransitiveFiltering>true</useTransitiveFiltering>
+      <outputDirectory>jdk14</outputDirectory>
+      <outputFileNameMapping>${artifactId}-${version}-jdk14.${extension}</outputFileNameMapping>
+      <includes>
+        <include>org.apache.struts:*:jar:jdk14</include>
+        <include>com.opensymphony:xwork:jar:jdk14</include>
+      </includes>
+    </dependencySet>
+  </dependencySets>
+  <fileSets>
+    <fileSet>
+        <directory>src/main/resources/backport</directory>
+        <outputDirectory></outputDirectory>
+      <includes>
+        <include>*LICENSE*</include>
+        <include>NOTICE*</include>
+      </includes>
+    </fileSet>
+  </fileSets>
+</assembly>
diff --git a/assembly/src/main/assembly/lib.xml b/assembly/src/main/assembly/lib.xml
index d3107d1..2f0f94b 100644
--- a/assembly/src/main/assembly/lib.xml
+++ b/assembly/src/main/assembly/lib.xml
@@ -27,6 +27,12 @@
     <dependencySet>
       <outputDirectory>lib</outputDirectory>
       <scope>runtime</scope>
+      <excludes>
+        <exclude>net.sf.retrotranslator:retrotranslator-runtime</exclude>
+        <exclude>backport-util-concurrent:backport-util-concurrent</exclude>
+        <exclude>junit:junit</exclude>
+        <exclude>*:jdk14</exclude>
+      </excludes>
     </dependencySet>
   </dependencySets>
   <fileSets>
diff --git a/assembly/src/main/assembly/src.xml b/assembly/src/main/assembly/src.xml
index c4c5fed..fc32152 100644
--- a/assembly/src/main/assembly/src.xml
+++ b/assembly/src/main/assembly/src.xml
@@ -47,7 +47,6 @@
               <include>README*</include>
               <include>LICENSE*</include>
               <include>NOTICE*</include>
-              <include>build.xml</include>
           </includes>
       </fileSet>
 
@@ -60,14 +59,14 @@
           <include>src/</include>
         </includes>
       </fileSet>
-        <fileSet>
+        <!--fileSet>
           <directory>../api</directory>
           <outputDirectory>src/api</outputDirectory>
           <includes>
             <include>pom.xml</include>
             <include>src/</include>
           </includes>
-        </fileSet>
+        </fileSet-->
       <fileSet>
         <directory>../apps</directory>
         <outputDirectory>src/apps</outputDirectory>
diff --git a/api/src/main/resources/NOTICE.txt b/assembly/src/main/resources/backport/NOTICE.txt
similarity index 72%
rename from api/src/main/resources/NOTICE.txt
rename to assembly/src/main/resources/backport/NOTICE.txt
index cd13ec4..f7abb21 100644
--- a/api/src/main/resources/NOTICE.txt
+++ b/assembly/src/main/resources/backport/NOTICE.txt
@@ -2,4 +2,6 @@
 Copyright 2000-2007 The Apache Software Foundation
 
 This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
\ No newline at end of file
+The Apache Software Foundation (http://www.apache.org/).
+Retrotranslator (http://retrotranslator.sourceforge.net/).
+
diff --git a/assembly/src/main/resources/backport/RETROTRANSLATOR-LICENSE.txt b/assembly/src/main/resources/backport/RETROTRANSLATOR-LICENSE.txt
new file mode 100644
index 0000000..c2a8559
--- /dev/null
+++ b/assembly/src/main/resources/backport/RETROTRANSLATOR-LICENSE.txt
@@ -0,0 +1,29 @@
+ Retrotranslator: a Java bytecode transformer that translates Java classes
+ compiled with JDK 5.0 into classes that can be run on JVM 1.4.
+
+ Copyright (c) 2005, 2006 Taras Puchko
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holders nor the names of its
+    contributors may be used to endorse or promote products derived from
+    this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/backport/retrotranslator-runtime-1.2.0.jar b/backport/retrotranslator-runtime-1.2.0.jar
deleted file mode 100644
index 9ed5d07..0000000
--- a/backport/retrotranslator-runtime-1.2.0.jar
+++ /dev/null
Binary files differ
diff --git a/backport/retrotranslator-runtime-1.2.2.jar b/backport/retrotranslator-runtime-1.2.2.jar
new file mode 100644
index 0000000..0dd542f
--- /dev/null
+++ b/backport/retrotranslator-runtime-1.2.2.jar
Binary files differ
diff --git a/backport/retrotranslator-transformer-1.2.0.jar b/backport/retrotranslator-transformer-1.2.0.jar
deleted file mode 100644
index 726c9ca..0000000
--- a/backport/retrotranslator-transformer-1.2.0.jar
+++ /dev/null
Binary files differ
diff --git a/backport/retrotranslator-transformer-1.2.2.jar b/backport/retrotranslator-transformer-1.2.2.jar
new file mode 100644
index 0000000..c89e7ed
--- /dev/null
+++ b/backport/retrotranslator-transformer-1.2.2.jar
Binary files differ
diff --git a/backport/translate.bat b/backport/translate.bat
index 4e2df09..542b379 100644
--- a/backport/translate.bat
+++ b/backport/translate.bat
@@ -1,3 +1,2 @@
-java -jar retrotranslator-transformer-1.2.0.jar -advanced -srcjar ../lib/struts2-core-2.0.4.jar -destjar struts2-core-j4-2.0.4.jar 

-java -jar retrotranslator-transformer-1.2.0.jar -advanced -srcjar ../lib/struts2-api-2.0.4.jar -destjar struts2-api-j4-2.0.4.jar 

-java -jar retrotranslator-transformer-1.2.0.jar -advanced -srcjar ../lib/xwork-2.0.0.jar -destjar xwork-j4-2.0.0.jar 

+java -jar retrotranslator-transformer-1.2.2.jar -advanced -srcjar ../lib/struts2-core-2.0.14.jar -destjar struts2-core-j4-2.0.14.jar

+java -jar retrotranslator-transformer-1.2.2.jar -advanced -srcjar ../lib/xwork-2.0.7.jar -destjar xwork-j4-2.0.7.jar

diff --git a/backport/translate.sh b/backport/translate.sh
new file mode 100755
index 0000000..28ff70e
--- /dev/null
+++ b/backport/translate.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+java -jar retrotranslator-transformer-1.2.2.jar -advanced -srcjar ../lib/struts2-core-2.0.14.jar -destjar struts2-core-j4-2.0.14.jar
+java -jar retrotranslator-transformer-1.2.2.jar -advanced -srcjar ../lib/xwork-2.0.7.jar -destjar xwork-j4-2.0.7.jar 
diff --git a/core/pom.xml b/core/pom.xml
index 5278ace..b318380 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -1,11 +1,32 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-parent</artifactId>
-        <version>2.0.5</version>
+        <version>2.0.14</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-core</artifactId>
@@ -13,16 +34,16 @@
     <name>Struts 2 Core</name>
 
     <scm>
-       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/core/</connection>
-       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/core/</developerConnection>
-       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/core/</url>
+       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/core</connection>
+       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/core</developerConnection>
+       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/tags/STRUTS_2_0_14/core</url>
     </scm>
 
     <build>
         <plugins>
-        	<plugin>
+            <plugin>
                 <artifactId>maven-dependency-plugin</artifactId>
-                <version>2.0-alpha-1-SNAPSHOT</version>
+                <version>2.0-alpha-4</version>
                 <executions>
                     <execution>
                         <id>unpack-xwork</id>
@@ -31,25 +52,25 @@
                             <goal>unpack</goal>
                         </goals>
                         <configuration>
-		                    <artifactItems>
-		                        <artifactItem>
-		                            <groupId>opensymphony</groupId>
-		                            <artifactId>xwork</artifactId>
-		                            <version>2.0.0</version>
-		                            <classifier>sources</classifier>
-		                        </artifactItem>
-		                    </artifactItems>
-		                    <outputDirectory>${project.build.directory}/xwork-sources</outputDirectory>
-		                </configuration>
+                            <artifactItems>
+                                <artifactItem>
+                                    <groupId>com.opensymphony</groupId>
+                                    <artifactId>xwork</artifactId>
+                                    <version>2.0.7</version>
+                                    <classifier>sources</classifier>
+                                </artifactItem>
+                            </artifactItems>
+                            <outputDirectory>${project.build.directory}/xwork-sources</outputDirectory>
+                        </configuration>
                     </execution>
-				</executions>
+                </executions>
             </plugin>
             <plugin>
                 <groupId>org.apache.myfaces.tobago</groupId>
                 <artifactId>maven-apt-plugin</artifactId>
                 <configuration>
                     <A>uri=/struts-tags,tlibVersion=2.2.3,jspVersion=1.2,shortName=s,displayName="Struts Tags",
-                    outFile=${basedir}/src/main/resources/META-INF/struts-tags.tld,
+                    outFile=${basedir}/target/classes/META-INF/struts-tags.tld,
                     description="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 validation and internationalization features;
@@ -75,14 +96,14 @@
                             <goal>execute</goal>
                         </goals>
                 </execution>
-				</executions>
+                </executions>
             </plugin>
         </plugins>
     </build>
 
     <reporting>
         <plugins>
-        	<plugin>
+            <plugin>
                 <artifactId>maven-javadoc-plugin</artifactId>
                 <version>2.2</version>
                 <configuration>
@@ -107,73 +128,30 @@
                     </links>
                 </configuration>
             </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>rat-maven-plugin</artifactId>
+                <version>1.0-alpha-2</version>
+                <configuration>
+                    <includes>
+                        <include>pom.xml</include>
+                        <include>src/**</include>
+                    </includes>
+                    <excludes>
+                        <exclude>src/test/resources/org/apache/struts2/views/jsp/ui/*</exclude>
+                        <exclude>src/main/etc/**</exclude>
+                        <exclude>src/main/resources/org/apache/struts2/static/dojo/src/**</exclude>
+                        <exclude>src/main/resources/org/apache/struts2/static/dojo/*</exclude>
+                        <exclude>src/main/resources/org/apache/struts2/static/niftycorners/**</exclude>
+                        <exclude>src/test/resources/org/apache/struts2/interceptor/validation/*</exclude>
+                        <exclude>src/site/resources/tags/**</exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
         </plugins>
     </reporting>
 
     <profiles>
-     	<profile>
-	    	<!--
-	    		Run the translator for Java 1.4 compatiblity
-
-	    		Sample:
-	    		$ cd struts/struts2/
-	    		$ mvn clean install -Papps,j4 -Djava14.jar=$JAVA_HOME/../Classes/classes.jar
-
-	    	 -->
-	      <id>j4</id>
-	      <build>
-	        <plugins>
-	          <plugin>
-	            <groupId>org.codehaus.mojo</groupId>
-	            <artifactId>retrotranslator-maven-plugin</artifactId>
-	            <executions>
-	              <execution>
-	                <id>retrotranslate</id>
-	              </execution>
-	            </executions>
-	          </plugin>
-	          <plugin>
-	            <artifactId>maven-jar-plugin</artifactId>
-	            <executions>
-	              <execution>
-	                <id>create-j4-jar</id>
-	                <goals><goal>jar</goal></goals>
-	                <configuration>
-	                  <classesDirectory>${project.build.directory}/classes-retro</classesDirectory>
-	                  <classifier>j4</classifier>
-	                  <archive>
-	                    <manifestEntries>
-	                      <Extension-Name>${project.artifactId}-j4</Extension-Name>
-	                      <Specification-Vendor>${project.organization.name}</Specification-Vendor>
-	                      <Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
-	                      <Implementation-Title>${project.description}</Implementation-Title>
-	                      <Implementation-Version>${project.version}</Implementation-Version>
-	                      <Revision>${scm.revision}</Revision>
-	                    </manifestEntries>
-	                   </archive>
-	                </configuration>
-	              </execution>
-	            </executions>
-	          </plugin>
-	        </plugins>
-	      </build>
-	       <dependencies>
-	        <dependency>
-	          <groupId>sun.jdk</groupId>
-	          <artifactId>rt</artifactId>
-	          <version>1.4.0</version>
-	          <scope>system</scope>
-	          <!-- path to rt.jar (on OSX, it's classes.jar) -->
-	          <systemPath>${java14.jar}</systemPath>
-	        </dependency>
-	        <dependency>
-	          <groupId>net.sf.retrotranslator</groupId>
-	          <artifactId>retrotranslator-runtime</artifactId>
-	          <version>1.0.8</version>
-	        </dependency>
-	      </dependencies>
-	    </profile>
-
         <profile>
             <id>alljars</id>
             <build>
@@ -250,15 +228,9 @@
 
     <dependencies>
         <dependency>
-            <groupId>opensymphony</groupId>
+            <groupId>com.opensymphony</groupId>
             <artifactId>xwork</artifactId>
-            <version>2.0.0</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.struts</groupId>
-            <artifactId>struts2-api</artifactId>
-            <version>${pom.version}</version>
+            <version>2.0.7</version>
         </dependency>
 
         <dependency>
@@ -282,9 +254,9 @@
         </dependency>
 
         <dependency>
-            <groupId>ognl</groupId>
+            <groupId>opensymphony</groupId>
             <artifactId>ognl</artifactId>
-            <version>2.6.9</version>
+            <version>2.6.11</version>
         </dependency>
 
         <dependency>
@@ -467,10 +439,11 @@
         <dependency>
             <groupId>org.apache.struts</groupId>
             <artifactId>struts-annotations</artifactId>
-            <version>1.0-SNAPSHOT</version>
+            <scope>compile</scope>
+            <version>1.0.2</version>
             <optional>true</optional>
         </dependency>
 
-        
+
     </dependencies>
 </project>
diff --git a/core/src/main/java/org/apache/struts2/StrutsConstants.java b/core/src/main/java/org/apache/struts2/StrutsConstants.java
index 651e025..41c7665 100644
--- a/core/src/main/java/org/apache/struts2/StrutsConstants.java
+++ b/core/src/main/java/org/apache/struts2/StrutsConstants.java
@@ -76,6 +76,9 @@
     /** The org.apache.struts2.views.freemarker.FreemarkerManager implementation class */
     public static final String STRUTS_FREEMARKER_MANAGER_CLASSNAME = "struts.freemarker.manager.classname";
 
+    /** Cache Freemarker templates */
+    public static final String STRUTS_FREEMARKER_TEMPLATES_CACHE = "struts.freemarker.templatesCache";
+
     /** org.apache.struts2.views.velocity.VelocityManager implementation class */
     public static final String STRUTS_VELOCITY_MANAGER_CLASSNAME = "struts.velocity.manager.classname";
 
@@ -147,4 +150,11 @@
     public static final String STRUTS_XWORKCONVERTER = "struts.xworkConverter";
 
     public static final String STRUTS_ALWAYS_SELECT_FULL_NAMESPACE = "struts.mapper.alwaysSelectFullNamespace";
+
+    /** XWork default text provider */
+    public static final String STRUTS_XWORKTEXTPROVIDER = "struts.xworkTextProvider";
+
+    /** The name of the parameter to create when mapping an id (used by some action mappers) */
+	public static final String STRUTS_ID_PARAMETER_NAME = "struts.mapper.idParameterName";
+
 }
diff --git a/core/src/main/java/org/apache/struts2/components/AbstractRemoteCallUIBean.java b/core/src/main/java/org/apache/struts2/components/AbstractRemoteCallUIBean.java
index 96339e4..ad03769 100644
--- a/core/src/main/java/org/apache/struts2/components/AbstractRemoteCallUIBean.java
+++ b/core/src/main/java/org/apache/struts2/components/AbstractRemoteCallUIBean.java
@@ -49,6 +49,7 @@
     protected String notifyTopics;
     protected String showErrorTransportText;
     protected String indicator;
+    protected String showLoadingText;
 
     public AbstractRemoteCallUIBean(ValueStack stack, HttpServletRequest request,
             HttpServletResponse response) {
@@ -59,7 +60,7 @@
         super.evaluateExtraParams();
 
         if (href != null)
-            addParameter("href", findString(href));
+             addParameter("href", ensureAttributeSafelyNotEscaped(findString(href)));
         if (errorText != null)
             addParameter("errorText", findString(errorText));
         if (loadingText != null)
@@ -86,6 +87,8 @@
             addParameter("showErrorTransportText", findValue(showErrorTransportText, Boolean.class));
         else
             addParameter("showErrorTransportText", true);
+        if (showLoadingText != null)
+            addParameter("showLoadingText", findString(showLoadingText));
     }
 
 
@@ -165,4 +168,8 @@
         this.indicator = indicator;
     }
 
+    @StrutsTagAttribute(description="Show loading text on targets", type="Boolean", defaultValue="true")
+    public void setShowLoadingText(String showLoadingText) {
+        this.showLoadingText = showLoadingText;
+    }
 }
diff --git a/core/src/main/java/org/apache/struts2/components/ActionError.java b/core/src/main/java/org/apache/struts2/components/ActionError.java
index de34caf..e76106a 100644
--- a/core/src/main/java/org/apache/struts2/components/ActionError.java
+++ b/core/src/main/java/org/apache/struts2/components/ActionError.java
@@ -41,7 +41,7 @@
  * <!-- START SNIPPET: example -->
  *
  *    &lt;s:actionerror /&gt;
- *    &lt;s:form .... &gt;>
+ *    &lt;s:form .... &gt;
  *       ....
  *    &lt;/s:form&gt;
  *
diff --git a/core/src/main/java/org/apache/struts2/components/Anchor.java b/core/src/main/java/org/apache/struts2/components/Anchor.java
index 1020d13..e0bc6b4 100644
--- a/core/src/main/java/org/apache/struts2/components/Anchor.java
+++ b/core/src/main/java/org/apache/struts2/components/Anchor.java
@@ -71,6 +71,7 @@
  * 'listenTopics' comma separated list of topics names, that will trigger a request
  * 'indicator' element to be shown while the request executing
  * 'showErrorTransportText': whether errors should be displayed (on 'targets')</p>
+ * 'showLoadingText' show loading text on targets</p>
  * 'notifyTopics' comma separated list of topics names, that will be published. Three parameters are passed:<p/>
  * <ul>
  *      <li>data: html or json object when type='load' or type='error'</li>
diff --git a/core/src/main/java/org/apache/struts2/components/Autocompleter.java b/core/src/main/java/org/apache/struts2/components/Autocompleter.java
index 6cb4dfe..71ef014 100644
--- a/core/src/main/java/org/apache/struts2/components/Autocompleter.java
+++ b/core/src/main/java/org/apache/struts2/components/Autocompleter.java
@@ -29,18 +29,10 @@
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
+ * <!-- START SNIPPET: javadoc -->
  * <p>The autocomplete tag is a combobox that can autocomplete text entered on the input box.
  * When used on the "simple" theme, the autocompleter can be used like the ComboBox.
- * When used on the "ajax" theme, the list can be retieved from an action. This action must
- * return a JSON list in the format:</p>
- * <pre>
- * [
- *   ["Text 1","Value1"],
- *   ["Text 2","Value2"],
- *   ["Text 3","Value3"]
- * ]
- * </pre>
- * <!-- START SNIPPET: ajaxJavadoc -->
+ * When used on the "ajax" theme, the list can be retieved from an action. </p>
  * <B>THE FOLLOWING IS ONLY VALID WHEN AJAX IS CONFIGURED</B>
  * <ul>
  *      <li>href</li>
@@ -70,15 +62,27 @@
  * 'showErrorTransportText': whether errors should be displayed (on 'targets')<p/>
  * 'loadOnTextChange' options will be reloaded everytime a character is typed on the textbox<p/>
  * 'loadMinimumCount' minimum number of characters that will force the content to be loaded<p/>
- * 'showDownError' show or hide the down arrow button
+ * 'showDownError' show or hide the down arrow button<p/>
  * 'searchType' how the search must be performed, options are: "startstring", "startword" and "substring"<p/>
+ * 'keyName' name of the field to which the selected key will be assigned<p/>
+ * 'iconPath' path of icon used for the dropdown<p/>
+ * 'templateCssPath' path to css file used to customize Dojo's widget<p/>
+ * 'dataFieldName' name of the field to be used as the list in the returned JSON string<p/>
  * 'notifyTopics' comma separated list of topics names, that will be published. Three parameters are passed:<p/>
  * <ul>
  *      <li>data: selected value when type='valuechanged'</li>
  *      <li>type: 'before' before the request is made, 'valuechanged' when selection changes, 'load' when the request succeeds, or 'error' when it fails</li>
  *      <li>request: request javascript object, when type='load' or type='error'</li>
  * <ul>
- *
+ *<!-- END SNIPPET: javadoc -->
+ *<!-- START SNIPPET: example -->
+ *<p>Autocompleter that gets its list from an action:</p>
+ *&lt;s:autocompleter name="test"  href="%{jsonList}" autoComplete="false"/&gt;
+ *<br/>
+ **<p>Autocompleter that uses a list:</p>
+ *&lt;s:autocompleter name="test"  list="{'apple','banana','grape','pear'}" autoComplete="false"/&gt;
+ *<br/>
+ *<!-- END SNIPPET: example -->
  */
 @StrutsTag(name="autocompleter", tldTagClass="org.apache.struts2.views.jsp.ui.AutocompleterTag", description="Renders a combobox with autocomplete and AJAX capabilities")
 public class Autocompleter extends ComboBox {
@@ -101,7 +105,12 @@
     protected String loadOnTextChange;
     protected String loadMinimumCount;
     protected String showDownArrow;
-
+    protected String templateCssPath;
+    protected String iconPath;
+    protected String keyName;
+    protected String dataFieldName;
+    protected String resultsLimit;
+    
     public Autocompleter(ValueStack stack, HttpServletRequest request,
             HttpServletResponse response) {
         super(stack, request, response);
@@ -159,11 +168,23 @@
             addParameter("showDownArrow", findValue(showDownArrow, Boolean.class));
         else
             addParameter("showDownArrow", Boolean.TRUE);
-        //get the key value
-        if(name != null) {
-            String keyNameExpr = "%{" + name + "Key}";
-            addParameter("key", findString(keyNameExpr));
+        if(templateCssPath != null)
+            addParameter("templateCssPath", findString(templateCssPath));
+        if(iconPath != null)
+            addParameter("iconPath", findString(iconPath));
+        if(dataFieldName != null)
+            addParameter("dataFieldName", findString(dataFieldName));
+        if(keyName != null)
+            addParameter("keyName", findString(keyName));
+        else {
+            keyName = name + "Key";
+            addParameter("keyName", findString(keyName));
         }
+        
+        String keyNameExpr = "%{" + keyName + "}";
+        addParameter("key", findString(keyNameExpr));
+        if(resultsLimit != null)
+            addParameter("searchLimit", findString(resultsLimit));
     }
 
     protected Object findListValue() {
@@ -256,4 +277,29 @@
     public void setList(String list) {
         super.setList(list);
     }
+    
+    @StrutsTagAttribute(description="Template css path")
+    public void setTemplateCssPath(String templateCssPath) {
+        this.templateCssPath = templateCssPath;
+    }
+    
+    @StrutsTagAttribute(description="Path to icon used for the dropdown")
+    public void setIconPath(String iconPath) {
+        this.iconPath = iconPath;
+    }
+    
+    @StrutsTagAttribute(description="Name of the field to which the selected key will be assigned")
+    public void setKeyName(String keyName) {
+       this.keyName = keyName;
+    }
+
+    @StrutsTagAttribute(description="Name of the field in the returned JSON object that contains the data array", defaultValue="Value specified in 'name'")
+    public void setDataFieldName(String dataFieldName) {
+        this.dataFieldName = dataFieldName;
+    }
+
+    @StrutsTagAttribute(description="Limit how many results are shown as autocompletion options", defaultValue="30")
+    public void setResultsLimit(String resultsLimit) {
+        this.resultsLimit = resultsLimit;
+    }
 }
diff --git a/core/src/main/java/org/apache/struts2/components/Component.java b/core/src/main/java/org/apache/struts2/components/Component.java
index cf54300..b00103a 100644
--- a/core/src/main/java/org/apache/struts2/components/Component.java
+++ b/core/src/main/java/org/apache/struts2/components/Component.java
@@ -23,8 +23,8 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.io.Writer;
-import java.util.HashMap;
 import java.util.Iterator;
+import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Stack;
 
@@ -65,12 +65,12 @@
      */
     public Component(ValueStack stack) {
         this.stack = stack;
-        this.parameters = new HashMap();
+        this.parameters = new LinkedHashMap();
         getComponentStack().push(this);
     }
 
     /**
-     * Get's the name of this component.
+     * Gets the name of this component.
      * @return the name of this component.
      */
     private String getComponentName() {
@@ -87,7 +87,7 @@
     }
     
     /**
-     * Get's the OGNL value stack assoicated with this component.
+     * Gets the OGNL value stack assoicated with this component.
      * @return the OGNL value stack assoicated with this component.
      */
     public ValueStack getStack() {
@@ -95,7 +95,7 @@
     }
 
     /**
-     * Get's the component stack of this component.
+     * Gets the component stack of this component.
      * @return the component stack of this component, never <tt>null</tt>.
      */
     public Stack getComponentStack() {
@@ -215,7 +215,7 @@
     }
 
     /**
-     * Constructs?a <code>RuntimeException</code> based on the given information.
+     * Constructs a <code>RuntimeException</code> based on the given information.
      * <p/>
      * A message is constructed and logged at ERROR level before being returned
      * as a <code>RuntimeException</code>.
@@ -323,7 +323,7 @@
         }
     }
 
-    /**
+	/**
      * Renders an action URL by consulting the {@link org.apache.struts2.dispatcher.mapper.ActionMapper}.
      * @param action      the action
      * @param namespace   the namespace
@@ -336,14 +336,38 @@
      * @param encodeResult    should the url be encoded
      * @return the action url.
      */
+	 @Deprecated
     protected String determineActionURL(String action, String namespace, String method,
                                         HttpServletRequest req, HttpServletResponse res, Map parameters, String scheme,
                                         boolean includeContext, boolean encodeResult) {
+        return determineActionURL(action, namespace, method, req, res, parameters, scheme, includeContext, encodeResult, false, true);
+    }
+
+    /**
+     * Renders an action URL by consulting the {@link org.apache.struts2.dispatcher.mapper.ActionMapper}.
+     * @param action      the action
+     * @param namespace   the namespace
+     * @param method      the method
+     * @param req         HTTP request
+     * @param res         HTTP response
+     * @param parameters  parameters
+     * @param scheme      http or https
+     * @param includeContext  should the context path be included or not
+     * @param encodeResult    should the url be encoded
+	 * @param forceAddSchemeHostAndPort    should the scheme host and port be added to the url no matter what
+	 * @param escapeAmp    should the ampersands used separate parameters be escaped or not
+     * @return the action url.
+     */
+    protected String determineActionURL(String action, String namespace, String method,
+                                        HttpServletRequest req, HttpServletResponse res, Map parameters, String scheme,
+                                        boolean includeContext, boolean encodeResult, boolean forceAddSchemeHostAndPort,
+                                        boolean escapeAmp) {
         String finalAction = findString(action);
+        String finalMethod = method != null ? findString(method) : method;
         String finalNamespace = determineNamespace(namespace, getStack(), req);
-        ActionMapping mapping = new ActionMapping(finalAction, finalNamespace, method, parameters);
+        ActionMapping mapping = new ActionMapping(finalAction, finalNamespace, finalMethod, parameters);
         String uri = actionMapper.getUriFromActionMapping(mapping);
-        return UrlHelper.buildUrl(uri, req, res, parameters, scheme, includeContext, encodeResult);
+        return UrlHelper.buildUrl(uri, req, res, parameters, scheme, includeContext, encodeResult, forceAddSchemeHostAndPort, escapeAmp);
     }
 
     /**
@@ -407,7 +431,7 @@
     }
 
     /**
-     * Get's the parameters.
+     * Gets the parameters.
      * @return the parameters. Is never <tt>null</tt>.
      */
     public Map getParameters() {
@@ -415,7 +439,7 @@
     }
 
     /**
-     * Add's all the given parameters to this componenets own parameters.
+     * Adds all the given parameters to this component's own parameters.
      * @param params the parameters to add.
      */
     public void addAllParameters(Map params) {
@@ -423,9 +447,9 @@
     }
 
     /**
-     * Add's the given key and value to this components own parameter.
+     * Adds the given key and value to this component's own parameter.
      * <p/>
-     * If the provided key is <tt>null</tt> nothing happends.
+     * If the provided key is <tt>null</tt> nothing happens.
      * If the provided value is <tt>null</tt> any existing parameter with
      * the given key name is removed.
      * @param key  the key of the new parameter to add.
@@ -444,7 +468,7 @@
     }
 
     /**
-     * Get's the id for referencing element.
+     * Gets the id for referencing element.
      * @return the id for referencing element.
      */
     public String getId() {
@@ -465,5 +489,4 @@
     public boolean usesBody() {
         return false;
     }
-
 }
diff --git a/core/src/main/java/org/apache/struts2/components/DateTimePicker.java b/core/src/main/java/org/apache/struts2/components/DateTimePicker.java
index f4c7bd6..6e0af6c 100644
--- a/core/src/main/java/org/apache/struts2/components/DateTimePicker.java
+++ b/core/src/main/java/org/apache/struts2/components/DateTimePicker.java
@@ -21,7 +21,9 @@
 package org.apache.struts2.components;
 
 import java.text.ParseException;
+import java.text.MessageFormat;
 import java.text.SimpleDateFormat;
+import java.util.Calendar;
 import java.util.Date;
 
 import javax.servlet.http.HttpServletRequest;
@@ -43,51 +45,53 @@
  * A stand-alone DateTimePicker widget that makes it easy to select a date/time, or increment by week, month,
  * and/or year.
  * </p>
- * Dates attributes passed in the `RFC 3339` format:
  *
- * Renders date/time picker element.</p>
- * Format supported by this component are:-
+ * <p>
+ * It is possible to customize the user-visible formatting with either the
+ * 'formatLength' (long, short, medium or full) or 'displayFormat' attributes. By defaulty current
+ * locale will be used.</p>
+ * </p>
+ * 
+ * Syntax supported by 'displayFormat' is (http://www.unicode.org/reports/tr35/tr35-4.html#Date_Format_Patterns):-
  * <table border="1">
  *   <tr>
  *      <td>Format</td>
  *      <td>Description</td>
  *   </tr>
  *   <tr>
- *      <td>#dd</td>
- *      <td>Display day in two digits format</td>
+ *      <td>d</td>
+ *      <td>Day of the month</td>
  *   </tr>
  *   <tr>
- *      <td>#d</td>
- *      <td>Try to display day in one digit format, if cannot use 2 digit format</td>
+ *      <td>D</td>
+ *      <td>Day of year</td>
  *   </tr>
  *   <tr>
- *      <td>#MM</td>
- *      <td>Display month in two digits format</td>
+ *      <td>M</td>
+ *      <td>Month - Use one or two for the numerical month, three for the abbreviation, or four for the full name, or 5 for the narrow name.</td>
  *   </tr>
  *   <tr>
- *      <td>#M</td>
- *      <td>Try to display month in one digits format, if cannot use 2 digit format</td>
+ *      <td>h</td>
+ *      <td>Hour [1-12].</td>
  *   </tr>
  *   <tr>
- *      <td>#yyyy</td>
- *      <td>Display year in four digits format</td>
+ *      <td>H</td>
+ *      <td>Hour [0-23].</td>
  *   </tr>
  *   <tr>
- *      <td>#yy</td>
- *      <td>Display the last two digits of the yaer</td>
+ *      <td>m</td>
+ *      <td>Minute. Use one or two for zero padding.</td>
  *   </tr>
  *   <tr>
- *      <td>#y</td>
- *      <td>Display the last digits of the year</td>
+ *      <td>s</td>
+ *      <td>Second. Use one or two for zero padding.</td>
  *   </tr>
  * </table>
  * 
  * <p>
- * It is possible to customize the user-visible formatting with either the
- * formatLength or displayFormat attributes. The value sent to the server is
+ * The value sent to the server is
  * typically a locale-independent value in a hidden field as defined by the name
- * attribute. RFC3339 representation is used by default, but other options are
- * available with saveFormat
+ * attribute. RFC3339 representation is the format used.
  * </p>
  *
  * <p/>
@@ -102,7 +106,7 @@
  * Example 1:
  *     &lt;s:datetimepicker name="order.date" label="Order Date" /&gt;
  * Example 2:
- *     &lt;s:datetimepicker name="delivery.date" label="Delivery Date" format="#yyyy-#MM-#dd"  /&gt;
+ *     &lt;s:datetimepicker name="delivery.date" label="Delivery Date" format="yyyy-MM-dd"  /&gt;
  *
  * <!-- END SNIPPET: expl1 -->
  * </pre>
@@ -127,8 +131,10 @@
 public class DateTimePicker extends UIBean {
 
     final public static String TEMPLATE = "datetimepicker";
-    final private static SimpleDateFormat RFC3399_FORMAT = new SimpleDateFormat(
-    "yyyy-MM-dd'T'HH:mm:ss");
+//  Backported changes from s2 trunk (r657936)
+//    final private static SimpleDateFormat RFC3339_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
+	final private static String RFC3339_FORMAT = "yyyy-MM-dd'T'HH:mm:ss";
+    final private static String RFC3339_PATTERN = "{0,date," + RFC3339_FORMAT + "}";
     final protected static Log LOG = LogFactory.getLog(DateTimePicker.class);
     
     protected String iconPath;
@@ -146,6 +152,7 @@
     protected String staticDisplay;
     protected String dayWidth;
     protected String language;
+    protected String templateCssPath;
 
     public DateTimePicker(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
         super(stack, request, response);
@@ -177,7 +184,7 @@
         if(value != null)
             addParameter("value", findString(value));
         if(iconPath != null)
-            addParameter("iconPath", iconPath);
+            addParameter("iconPath", findString(iconPath));
         if(formatLength != null)
             addParameter("formatLength", findString(formatLength));
         if(displayFormat != null)
@@ -191,7 +198,9 @@
             addParameter("type", findString(type));
         else
             addParameter("type", "date");
-
+        if(templateCssPath != null)
+            addParameter("templateCssPath", findString(templateCssPath));
+        
         // format the value to RFC 3399
         if(parameters.containsKey("value")) {
             parameters.put("nameValue", format(parameters.get("value")));
@@ -258,7 +267,7 @@
         this.formatLength = formatLength;
     }
 
-    @StrutsTagAttribute(description=" Path to icon used for the dropdown")
+    @StrutsTagAttribute(description="Path to icon used for the dropdown")
     public void setIconPath(String iconPath) {
         this.iconPath = iconPath;
     }
@@ -279,25 +288,32 @@
         this.toggleType = toggleType;
     }
     
+    @StrutsTagAttribute(description="Template css path")
+    public void setTemplateCssPath(String templateCssPath) {
+        this.templateCssPath = templateCssPath;
+    }
+    
     private String format(Object obj) {
         if(obj == null)
             return null;
 
         if(obj instanceof Date) {
-            return RFC3399_FORMAT.format((Date) obj);
+            return MessageFormat.format(RFC3339_PATTERN, (Date) obj);
+        } else if(obj instanceof Calendar) {
+            return MessageFormat.format(RFC3339_PATTERN, ((Calendar) obj).getTime());
         } else {
             // try to parse a date
             String dateStr = obj.toString();
             if(dateStr.equalsIgnoreCase("today"))
-                return  RFC3399_FORMAT.format(new Date());
+                return MessageFormat.format(RFC3339_PATTERN, new Date());
 
             try {
                 Date date = null;
                 if(this.displayFormat != null) {
                     SimpleDateFormat format = new SimpleDateFormat(
-                            this.displayFormat);
+                            (String) getParameters().get("displayFormat"));
                     date = format.parse(dateStr);
-                    return RFC3399_FORMAT.format(date);
+                    return MessageFormat.format(RFC3339_PATTERN, date);
                 } else {
                     // last resource to assume already in correct/default format
                     return dateStr;
diff --git a/core/src/main/java/org/apache/struts2/components/Div.java b/core/src/main/java/org/apache/struts2/components/Div.java
index a779fc6..189e4b4 100644
--- a/core/src/main/java/org/apache/struts2/components/Div.java
+++ b/core/src/main/java/org/apache/struts2/components/Div.java
@@ -69,14 +69,16 @@
  * 'formFilter' is the name of a function which will be used to filter the fields that will be
  * seralized. This function takes as a parameter the element and returns true if the element
  * should be included.<p/>
- * 'updateFreq' sets(in milliseconds) the update interval.
- * 'autoStart' if set to true(true by default) starts the timer automatically
- * 'startTimerListenTopics' is a comma-separated list of topics used to start the timer
- * 'stopTimerListenTopics' is a comma-separated list of topics used to stop the timer
- * 'listenTopics' comma separated list of topics names, that will trigger a request
- * 'indicator' element to be shown while the request executing
+ * 'updateFreq' sets(in milliseconds) the update interval.<p/>
+ * 'autoStart' if set to true(true by default) starts the timer automatically<p/>
+ * 'startTimerListenTopics' is a comma-separated list of topics used to start the timer<p/>
+ * 'stopTimerListenTopics' is a comma-separated list of topics used to stop the timer<p/>
+ * 'listenTopics' comma separated list of topics names, that will trigger a request<p/>
+ * 'indicator' element to be shown while the request executing<p/>
  * 'showErrorTransportText': whether errors should be displayed (on 'targets')</p>
- * 'notifyTopics' comma separated list of topics names, that will be published. Three parameters are passed:
+ * 'showLoadingText' show loading text on targets</p>
+ * 'separateScript' Run scripts in a separate scope, unique for each Div<p/>
+ * 'notifyTopics' comma separated list of topics names, that will be published. Three parameters are passed:<p/>
  * <ul>
  *      <li>data: html or json object when type='load' or type='error'</li>
  *      <li>type: 'before' before the request is made, 'load' when the request succeeds, or 'error' when it fails</li>
@@ -116,6 +118,7 @@
     protected String startTimerListenTopics;
     protected String stopTimerListenTopics;
     protected String refreshOnShow;
+    protected String separateScripts;
 
     public Div(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
         super(stack, request, response);
@@ -144,6 +147,8 @@
             addParameter("startTimerListenTopics", findString(startTimerListenTopics));
         if (stopTimerListenTopics != null)
             addParameter("stopTimerListenTopics", findString(stopTimerListenTopics));
+        if (separateScripts != null)
+            addParameter("separateScripts", findValue(separateScripts, Boolean.class));
     }
 
     @StrutsTagAttribute(description="Start timer automatically", type="Boolean", defaultValue="true")
@@ -180,4 +185,9 @@
     public void setAfterLoading(String afterLoading) {
         this.afterLoading = afterLoading;
     }
+
+    @StrutsTagAttribute(description="Run scripts in a separate scope, unique for each Div", defaultValue="true")
+    public void setSeparateScripts(String separateScripts) {
+        this.separateScripts = separateScripts;
+    }
 }
diff --git a/core/src/main/java/org/apache/struts2/components/DoubleListUIBean.java b/core/src/main/java/org/apache/struts2/components/DoubleListUIBean.java
index 9f3027b..ec5385e 100644
--- a/core/src/main/java/org/apache/struts2/components/DoubleListUIBean.java
+++ b/core/src/main/java/org/apache/struts2/components/DoubleListUIBean.java
@@ -192,6 +192,8 @@
             }
         } else if (form != null) {
             addParameter("doubleId", form.getParameters().get("id") + "_" +escape(this.doubleName));
+        } else {
+            addParameter("doubleId", escape(doubleName !=null ? findString(doubleName) : null));
         }
 
         if (doubleOnclick != null) {
@@ -514,7 +516,6 @@
         return doubleList;
     }
 
-    @StrutsTagAttribute(description="Set the list key of the second attribute")
     public String getDoubleListKey() {
         return doubleListKey;
     }
diff --git a/core/src/main/java/org/apache/struts2/components/FieldError.java b/core/src/main/java/org/apache/struts2/components/FieldError.java
index d272a36..55bb4b4 100644
--- a/core/src/main/java/org/apache/struts2/components/FieldError.java
+++ b/core/src/main/java/org/apache/struts2/components/FieldError.java
@@ -51,7 +51,7 @@
  *         &lt;s:param&gt;field1&lt;/s:param&gt;
  *         &lt;s:param&gt;field2&lt;/s:param&gt;
  *    &lt;/s:fielderror&gt;
- *    &lt;s:form .... &gt;>
+ *    &lt;s:form .... &gt;
  *       ....
  *    &lt;/s:form&gt;
  *
@@ -61,7 +61,7 @@
  *          &lt;s:param value="%{'field1'}" /&gt;
  *          &lt;s:param value="%{'field2'}" /&gt;
  *    &lt;/s:fielderror&gt;
- *    &lt;s:form .... &gt;>
+ *    &lt;s:form .... &gt;
  *       ....
  *    &lt;/s:form&gt;
  *
diff --git a/core/src/main/java/org/apache/struts2/components/Form.java b/core/src/main/java/org/apache/struts2/components/Form.java
index 64f31ae..df24c7e 100644
--- a/core/src/main/java/org/apache/struts2/components/Form.java
+++ b/core/src/main/java/org/apache/struts2/components/Form.java
@@ -20,24 +20,6 @@
  */
 package org.apache.struts2.components;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.struts2.views.annotations.StrutsTag;
-import org.apache.struts2.views.annotations.StrutsTagAttribute;
-import org.apache.struts2.StrutsConstants;
-import org.apache.struts2.dispatcher.Dispatcher;
-import org.apache.struts2.dispatcher.mapper.ActionMapping;
-import org.apache.struts2.portlet.context.PortletActionContext;
-import org.apache.struts2.portlet.util.PortletUrlHelper;
-import org.apache.struts2.views.util.UrlHelper;
-
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.ObjectFactory;
@@ -47,12 +29,29 @@
 import com.opensymphony.xwork2.config.entities.InterceptorMapping;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.interceptor.MethodFilterInterceptorUtil;
-import com.opensymphony.xwork2.util.ValueStack;
 import com.opensymphony.xwork2.util.TextUtils;
+import com.opensymphony.xwork2.util.ValueStack;
 import com.opensymphony.xwork2.validator.ActionValidatorManagerFactory;
 import com.opensymphony.xwork2.validator.FieldValidator;
 import com.opensymphony.xwork2.validator.ValidationInterceptor;
 import com.opensymphony.xwork2.validator.Validator;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.struts2.StrutsConstants;
+import org.apache.struts2.dispatcher.Dispatcher;
+import org.apache.struts2.dispatcher.mapper.ActionMapping;
+import org.apache.struts2.portlet.context.PortletActionContext;
+import org.apache.struts2.portlet.util.PortletUrlHelper;
+import org.apache.struts2.views.annotations.StrutsTag;
+import org.apache.struts2.views.annotations.StrutsTagAttribute;
+import org.apache.struts2.views.util.UrlHelper;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
 
 /**
  * <!-- START SNIPPET: javadoc -->
@@ -95,6 +94,11 @@
  */
 @StrutsTag(name="form", tldTagClass="org.apache.struts2.views.jsp.ui.FormTag", description="Renders an input form")
 public class Form extends ClosingUIBean {
+    /**
+     * Provide a logging instance.
+     */
+    private static final Log LOG = LogFactory.getLog(Form.class);
+
     public static final String OPEN_TEMPLATE = "form";
     public static final String TEMPLATE = "form-close";
 
@@ -204,7 +208,7 @@
     }
 
     /**
-     * Form component determine the its HTML element id as follows:-
+     * The Form component determines its HTML element id as follows:-
      * <ol>
      *    <li>if an 'id' attribute is specified.</li>
      *    <li>if an 'action' attribute is specified, it will be used as the id.</li>
@@ -222,6 +226,9 @@
         if (id != null) {
             addParameter("id", escape(id));
         }
+
+        // if no id given, it will be tried to generate it from the action attribute in the
+        // corresponding evaluateExtraParams method
         if (Dispatcher.getInstance().isPortletSupportActive() && PortletActionContext.isPortletRequest()) {
             evaluateExtraParamsPortletRequest(namespace, action);
         } else {
@@ -287,14 +294,20 @@
             }
 
             // if the id isn't specified, use the action name
-            if (id == null) {
-                addParameter("id", action);
+            if (id == null && action!=null) {
+                addParameter("id", escape(action));
             }
         } else if (action != null) {
             // Since we can't find an action alias in the configuration, we just assume
-            // the action attribute supplied is the path to be used as the uri this
+            // the action attribute supplied is the path to be used as the URI this
             // form is submitting to.
 
+            // Warn user that the specified namespace/action combo
+            // was not found in the configuration.
+            if (namespace != null) {
+                LOG.warn("No configuration found for the specified action: '" + action + "' in namespace: '" + namespace + "'. Form action defaulting to 'action' attribute's literal value.");
+            }
+
             String result = UrlHelper.buildUrl(action, request, response, null);
             addParameter("action", result);
 
@@ -329,7 +342,7 @@
 
         // Only evaluate if Client-Side js is to be enable when validate=true
         Boolean validate = (Boolean) getParameters().get("validate");
-        if (validate != null && validate.booleanValue()) {
+        if (validate != null && validate) {
 
             addParameter("performValidation", Boolean.FALSE);
 
@@ -337,9 +350,8 @@
             ActionConfig actionConfig = runtimeConfiguration.getActionConfig(namespace, actionName);
 
             if (actionConfig != null) {
-                List interceptors = actionConfig.getInterceptors();
-                for (Iterator i = interceptors.iterator(); i.hasNext();) {
-                    InterceptorMapping interceptorMapping = (InterceptorMapping) i.next();
+                List<InterceptorMapping> interceptors = actionConfig.getInterceptors();
+                for (InterceptorMapping interceptorMapping : interceptors) {
                     if (ValidationInterceptor.class.isInstance(interceptorMapping.getInterceptor())) {
                         ValidationInterceptor validationInterceptor = (ValidationInterceptor) interceptorMapping.getInterceptor();
 
@@ -363,11 +375,6 @@
      */
     private void evaluateExtraParamsPortletRequest(String namespace, String action) {
 
-        if (this.action != null) {
-            // if it isn't specified, we'll make somethig up
-            action = findString(this.action);
-        }
-
         String type = "action";
         if (TextUtils.stringSet(method)) {
             if ("GET".equalsIgnoreCase(method.trim())) {
@@ -375,7 +382,7 @@
             }
         }
         if (action != null) {
-            String result = PortletUrlHelper.buildUrl(action, namespace,
+            String result = PortletUrlHelper.buildUrl(action, namespace, null,
                     getParameters(), type, portletMode, windowState);
             addParameter("action", result);
 
@@ -409,10 +416,9 @@
             return Collections.EMPTY_LIST;
         }
 
-        List all = ActionValidatorManagerFactory.getInstance().getValidators(actionClass, (String) getParameters().get("actionName"));
-        List validators = new ArrayList();
-        for (Iterator iterator = all.iterator(); iterator.hasNext();) {
-            Validator validator = (Validator) iterator.next();
+        List<Validator> all = ActionValidatorManagerFactory.getInstance().getValidators(actionClass, (String) getParameters().get("actionName"));
+        List<Validator> validators = new ArrayList<Validator>();
+        for (Validator validator : all) {
             if (validator instanceof FieldValidator) {
                 FieldValidator fieldValidator = (FieldValidator) validator;
                 if (fieldValidator.getFieldName().equals(name)) {
@@ -440,7 +446,7 @@
         this.onsubmit = onsubmit;
     }
 
-    @StrutsTagAttribute(description="Set action nane to submit to, without .action suffix", defaultValue="current action")
+    @StrutsTagAttribute(description="Set action name to submit to, without .action suffix", defaultValue="current action")
     public void setAction(String action) {
         this.action = action;
     }
@@ -471,7 +477,7 @@
         this.validate = validate;
     }
 
-    @StrutsTagAttribute(description="he portlet mode to display after the form submit")
+    @StrutsTagAttribute(description="The portlet mode to display after the form submit")
     public void setPortletMode(String portletMode) {
         this.portletMode = portletMode;
     }
diff --git a/core/src/main/java/org/apache/struts2/components/I18n.java b/core/src/main/java/org/apache/struts2/components/I18n.java
index e7ee754..f899953 100644
--- a/core/src/main/java/org/apache/struts2/components/I18n.java
+++ b/core/src/main/java/org/apache/struts2/components/I18n.java
@@ -20,20 +20,20 @@
  */
 package org.apache.struts2.components;
 
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.LocaleProvider;
+import com.opensymphony.xwork2.TextProviderFactory;
+import com.opensymphony.xwork2.util.LocalizedTextUtil;
+import com.opensymphony.xwork2.util.ValueStack;
+import org.apache.struts2.StrutsException;
+import org.apache.struts2.dispatcher.Dispatcher;
+import org.apache.struts2.views.annotations.StrutsTag;
+import org.apache.struts2.views.annotations.StrutsTagAttribute;
+
 import java.io.Writer;
 import java.util.Locale;
 import java.util.ResourceBundle;
 
-import org.apache.struts2.views.annotations.StrutsTag;
-import org.apache.struts2.views.annotations.StrutsTagAttribute;
-import org.apache.struts2.StrutsException;
-
-import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.LocaleProvider;
-import com.opensymphony.xwork2.TextProviderSupport;
-import com.opensymphony.xwork2.util.LocalizedTextUtil;
-import com.opensymphony.xwork2.util.ValueStack;
-
 /**
  * <!-- START SNIPPET: javadoc -->
  *
@@ -102,10 +102,12 @@
 
             if (bundle != null) {
                 final Locale locale = (Locale) getStack().getContext().get(ActionContext.LOCALE);
-                getStack().push(new TextProviderSupport(bundle, new LocaleProvider() {
-                    public Locale getLocale() {
-                        return locale;
-                    }
+                TextProviderFactory tpf = new TextProviderFactory();
+                Dispatcher.getInstance().getContainer().inject(tpf);
+                getStack().push(tpf.createInstance(bundle, new LocaleProvider() {
+                     public Locale getLocale() {
+                         return locale;
+                     }
                 }));
                 pushed = true;
             }
diff --git a/core/src/main/java/org/apache/struts2/components/OptionTransferSelect.java b/core/src/main/java/org/apache/struts2/components/OptionTransferSelect.java
index 058699b..00a3d51 100644
--- a/core/src/main/java/org/apache/struts2/components/OptionTransferSelect.java
+++ b/core/src/main/java/org/apache/struts2/components/OptionTransferSelect.java
@@ -123,6 +123,14 @@
     protected String rightUpLabel;
     protected String rightDownLabel;
 
+    protected String addToLeftOnclick;
+    protected String addToRightOnclick;
+    protected String addAllToLeftOnclick;
+    protected String addAllToRightOnclick;
+    protected String selectAllOnclick;
+    protected String upDownOnLeftOnclick;
+    protected String upDownOnRightOnclick;
+
 
     public OptionTransferSelect(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
         super(stack, request, response);
@@ -252,6 +260,34 @@
                 rightDownLabel != null ? findValue(rightDownLabel, String.class) : "v");
 
 
+        // selectAllOnclick
+        addParameter("selectAllOnclick",
+                selectAllOnclick != null ? findValue(selectAllOnclick, String.class) : "");
+
+        // addToLeftOnclick
+        addParameter("addToLeftOnclick",
+                addToLeftOnclick != null ? findValue(addToLeftOnclick, String.class) : "");
+
+        // addToRightOnclick
+        addParameter("addToRightOnclick",
+                addToRightOnclick != null ? findValue(addToRightOnclick, String.class) : "");
+
+        // addAllToLeftOnclick
+        addParameter("addAllToLeftOnclick",
+                addAllToLeftOnclick != null ? findValue(addAllToLeftOnclick, String.class) : "");
+
+        // addAllToRightOnclick
+        addParameter("addAllToRightOnclick",
+                addAllToRightOnclick != null ? findValue(addAllToRightOnclick, String.class) : "");
+
+        // upDownOnLeftOnclick
+        addParameter("upDownOnLeftOnclick",
+                upDownOnLeftOnclick != null ? findValue(upDownOnLeftOnclick, String.class) : "");
+
+        // upDownOnRightOnclick
+        addParameter("upDownOnRightOnclick",
+                upDownOnRightOnclick != null ? findValue(upDownOnRightOnclick, String.class) : "");
+
 
         // inform the form component our select tag infos, so they know how to select
         // its elements upon onsubmit
@@ -476,5 +512,66 @@
         return rightDownLabel;
     }
 
+    public String getAddAllToLeftOnclick() {
+        return addAllToLeftOnclick;
+    }
 
+    @StrutsTagAttribute(description="Javascript to run after Add All To Left button pressed")
+    public void setAddAllToLeftOnclick(String addAllToLeftOnclick) {
+        this.addAllToLeftOnclick = addAllToLeftOnclick;
+    }
+
+    public String getAddAllToRightOnclick() {
+        return addAllToRightOnclick;
+    }
+
+    @StrutsTagAttribute(description="Javascript to run after Add All To Right button pressed")
+    public void setAddAllToRightOnclick(String addAllToRightOnclick) {
+        this.addAllToRightOnclick = addAllToRightOnclick;
+    }
+
+    public String getAddToLeftOnclick() {
+        return addToLeftOnclick;
+    }
+
+    @StrutsTagAttribute(description="Javascript to run after Add To Left button pressed")
+    public void setAddToLeftOnclick(String addToLeftOnclick) {
+        this.addToLeftOnclick = addToLeftOnclick;
+    }
+
+    public String getAddToRightOnclick() {
+        return addToRightOnclick;
+    }
+
+    @StrutsTagAttribute(description="Javascript to run after Add To Right button pressed")
+    public void setAddToRightOnclick(String addToRightOnclick) {
+        this.addToRightOnclick = addToRightOnclick;
+    }
+
+    @StrutsTagAttribute(description="Javascript to run after up / down on the left side buttons pressed")
+    public void setUpDownOnLeftOnclick(String upDownOnLeftOnclick) {
+        this.upDownOnLeftOnclick = upDownOnLeftOnclick;
+    }
+
+    public String getUpDownOnLeftOnclick() {
+        return this.upDownOnLeftOnclick;
+    }
+
+    @StrutsTagAttribute(description="Javascript to run after up / down on the right side buttons pressed")
+    public void setUpDownOnRightOnclick(String upDownOnRightOnclick) {
+        this.upDownOnRightOnclick = upDownOnRightOnclick;
+    }
+
+    public String getUpDownOnRightOnclick() {
+        return this.upDownOnRightOnclick;
+    }
+
+    @StrutsTagAttribute(description="Javascript to run after Select All button pressed")
+    public void setSelectAllOnclick(String selectAllOnclick) {
+        this.selectAllOnclick = selectAllOnclick;
+    }
+
+    public String getSelectAllOnclick() {
+        return this.selectAllOnclick;
+    }
 }
diff --git a/core/src/main/java/org/apache/struts2/components/RemoteUICallBean.java b/core/src/main/java/org/apache/struts2/components/RemoteUICallBean.java
index 966aa84..7173095 100644
--- a/core/src/main/java/org/apache/struts2/components/RemoteUICallBean.java
+++ b/core/src/main/java/org/apache/struts2/components/RemoteUICallBean.java
@@ -47,6 +47,8 @@
 
     void setShowErrorTransportText(String showError);
 
+    void setShowLoadingText(String showLoadingText);
+
     void setIndicator(String indicator);
 
 }
diff --git a/core/src/main/java/org/apache/struts2/components/Set.java b/core/src/main/java/org/apache/struts2/components/Set.java
index b70cbb0..942b8b0 100644
--- a/core/src/main/java/org/apache/struts2/components/Set.java
+++ b/core/src/main/java/org/apache/struts2/components/Set.java
@@ -32,7 +32,9 @@
  * <p>The set tag assigns a value to a variable in a specified scope. It is useful when you wish to assign a variable to a
  * complex expression and then simply reference that variable each time rather than the complex expression. This is
  * useful in both cases: when the complex expression takes time (performance improvement) or is hard to read (code
- * readability improvement).</P>
+ * readability improvement).</p>
+ * <p>If the tag is used with body content, the evaluation of the value parameter is omitted. Instead, the String to
+ * which the body eveluates is set as value for the scoped variable.</p>
  *
  * The scopes available are as follows :-
  * <ul>
@@ -75,7 +77,7 @@
  * </pre>
  *
  */
-@StrutsTag(name="set", tldBodyContent="empty", tldTagClass="org.apache.struts2.views.jsp.SetTag", description="Assigns a value to a variable in a specified scope")
+@StrutsTag(name="set", tldBodyContent="JSP", tldTagClass="org.apache.struts2.views.jsp.SetTag", description="Assigns a value to a variable in a specified scope")
 public class Set extends Component {
     protected String name;
     protected String scope;
@@ -88,11 +90,18 @@
     public boolean end(Writer writer, String body) {
         ValueStack stack = getStack();
 
+        Object o;
         if (value == null) {
-            value = "top";
+        	if (body!=null && !body.equals("")) {
+        		o = body;
+        	} else {
+        		o = findValue("top");
+        	}
+        } else {
+        	o = findValue(value);
         }
-
-        Object o = findValue(value);
+        
+        body="";
 
         String name;
         if (altSyntax()) {
diff --git a/core/src/main/java/org/apache/struts2/components/Submit.java b/core/src/main/java/org/apache/struts2/components/Submit.java
index d910e68..afd38fc 100644
--- a/core/src/main/java/org/apache/struts2/components/Submit.java
+++ b/core/src/main/java/org/apache/struts2/components/Submit.java
@@ -48,19 +48,19 @@
  * <p/> <b>Examples</b>
  * <pre>
  * <!-- START SNIPPET: example -->
- * &lt;s:submit value="%{'Submit'}" /&gt;
+ * &lt;s:submit value="%{'Submit the form'}" /&gt;
  * <!-- END SNIPPET: example -->
  * </pre>
  * <pre>
  * <!-- START SNIPPET: example2 -->
  * Render an image submit:
- * &lt;s:submit type="image" value="%{'Submit'}" label="Submit the form" src="submit.gif"/&gt;
+ * &lt;s:submit type="image" value="%{'Submit the form'}" src="submit.gif"/&gt;
  * <!-- END SNIPPET: example2 -->
  * </pre>
  * <pre>
  * <!-- START SNIPPET: example3 -->
  * Render an button submit:
- * &lt;s:submit type="button" value="%{'Submit'}" label="Submit the form"/&gt;
+ * &lt;s:submit type="button" value="%{'Submit the form'}"/&gt;
  * <!-- END SNIPPET: example3 -->
  * </pre>
  *
@@ -101,6 +101,7 @@
  * 'listenTopics' comma separated list of topics names, that will trigger a request
  * 'indicator' element to be shown while the request executing
  * 'showErrorTransportText': whether errors should be displayed (on 'targets')</p>
+ * 'showLoadingText' show loading text on targets</p>
  * 'notifyTopics' comma separated list of topics names, that will be published. Three parameters are passed:<p/>
  * <ul>
  *      <li>data: html or json object when type='load' or type='error'</li>
@@ -154,7 +155,7 @@
     protected String notifyTopics;
     protected String showErrorTransportText;
     protected String indicator;
-
+    protected String showLoadingText;
     //these two are called "preInvokeJS" and "onLoadJS" on the tld
     //Names changed here to keep some consistency
     protected String beforeLoading;
@@ -214,6 +215,8 @@
             addParameter("indicator", findString(indicator));
         if (targets != null)
             addParameter("targets", findString(targets));
+        if (showLoadingText != null)
+            addParameter("showLoadingText", findString(showLoadingText));
     }
 
     /**
@@ -327,4 +330,9 @@
     public void setIndicator(String indicator) {
         this.indicator = indicator;
     }
+
+    @StrutsTagAttribute(description="Show loading text on targets", type="Boolean", defaultValue="true")
+    public void setShowLoadingText(String showLoadingText) {
+        this.showLoadingText = showLoadingText;
+    }
 }
diff --git a/core/src/main/java/org/apache/struts2/components/TabbedPanel.java b/core/src/main/java/org/apache/struts2/components/TabbedPanel.java
index faec384..83e5e54 100644
--- a/core/src/main/java/org/apache/struts2/components/TabbedPanel.java
+++ b/core/src/main/java/org/apache/struts2/components/TabbedPanel.java
@@ -32,6 +32,11 @@
  * <!-- START SNIPPET: javadoc -->
  * The tabbedpanel widget is primarily an AJAX component, where each tab can either be local content or remote
  * content (refreshed each time the user selects that tab).</p>
+ * If the useSelectedTabCookie attribute is set to true, the id of the selected tab is saved in a cookie on activation.
+ * When coming back to this view, the cookie is read and the tab will be activated again, unless an actual value for the
+ * selectedTab attribute is specified.</p>
+ * If you want to use the cookie feature, please be sure that you provide a unique id for your tabbedpanel component,
+ * since this will also be the identifying name component of the stored cookie.</p>
  * <!-- END SNIPPET: javadoc -->
  *
  * <p/> <b>Examples</b>
@@ -66,6 +71,8 @@
     protected String selectedTab;
     protected String closeButton;
     protected String doLayout ;
+    protected String templateCssPath;
+    protected String useSelectedTabCookie;
 
     public TabbedPanel(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
         super(stack, request, response);
@@ -89,6 +96,11 @@
             addParameter("labelPosition", null);
             addParameter("labelPosition", labelPosition);
         }
+        if(templateCssPath != null)
+            addParameter("templateCssPath", findString(templateCssPath));
+        if(useSelectedTabCookie != null) {
+            addParameter("useSelectedTabCookie", findString(useSelectedTabCookie));
+        }
     }
 
     public String getDefaultOpenTemplate() {
@@ -124,4 +136,16 @@
     public void setDoLayout(String doLayout) {
         this.doLayout = doLayout;
     }
+
+    @StrutsTagAttribute(description="Template css path")
+    public void setTemplateCssPath(String templateCssPath) {
+        this.templateCssPath = templateCssPath;
+    }
+
+    @StrutsTagAttribute(required = false, defaultValue = "false", description = "If set to true, the id of the last selected " +
+            "tab will be stored in cookie. If the view is rendered, it will be tried to read this cookie and activate " +
+            "the corresponding tab on success, unless overridden by the selectedTab attribute. The cookie name is \"Struts2TabbedPanel_selectedTab_\"+id.")
+    public void setUseSelectedTabCookie( String useSelectedTabCookie ) {
+        this.useSelectedTabCookie = useSelectedTabCookie;
+    }
 }
diff --git a/core/src/main/java/org/apache/struts2/components/UIBean.java b/core/src/main/java/org/apache/struts2/components/UIBean.java
index 01d3afa..3311cee 100644
--- a/core/src/main/java/org/apache/struts2/components/UIBean.java
+++ b/core/src/main/java/org/apache/struts2/components/UIBean.java
@@ -790,6 +790,20 @@
         }
     }
 
+    /**
+     * Ensures an unescaped attribute value cannot be vulnerable to XSS attacks
+     *
+     * @param val The value to check
+     * @return The escaped value
+     */
+    protected String ensureAttributeSafelyNotEscaped(String val) {
+        if (val != null) {
+            return val.replaceAll("\"", "&#34;");
+        } else {
+            return "";
+        }
+    }
+
     protected void evaluateExtraParams() {
     }
 
@@ -852,7 +866,8 @@
 
     /**
      * Create HTML id element for the component and populate this component parmaeter
-     * map.
+     * map. Additionally, a parameter named escapedId is populated which contains the found id value filtered by
+     * {@link #escape(String)}, needed eg. for naming Javascript identifiers based on the id value.
      *
      * The order is as follows :-
      * <ol>
@@ -864,19 +879,22 @@
      * @param form
      */
     protected void populateComponentHtmlId(Form form) {
+        String tryId;
         if (id != null) {
             // this check is needed for backwards compatibility with 2.1.x
             if (altSyntax()) {
-                addParameter("id", findString(id));
+                tryId = findString(id);
             } else {
-                addParameter("id", id);
+                tryId = id;
             }
         } else if (form != null) {
-            addParameter("id", form.getParameters().get("id") + "_" 
-                    + escape(name != null ? findString(name) : null));
+            tryId = form.getParameters().get("id") + "_"
+                    + escape(name != null ? findString(name) : null);
         } else {
-            addParameter("id", escape(name != null ? findString(name) : null));
+            tryId = escape(name != null ? findString(name) : null);
         }
+        addParameter("id", tryId);
+        addParameter("escapedId", escape(tryId));
     }
 
     @StrutsTagAttribute(description="The template directory.")
@@ -903,7 +921,7 @@
         this.cssClass = cssClass;
     }
 
-    @StrutsTagAttribute(description="The css style definitions for element ro use")
+    @StrutsTagAttribute(description="The css style definitions for element to use")
     public void setCssStyle(String cssStyle) {
         this.cssStyle = cssStyle;
     }
diff --git a/core/src/main/java/org/apache/struts2/components/URL.java b/core/src/main/java/org/apache/struts2/components/URL.java
index 8ecef36..1e503bf 100644
--- a/core/src/main/java/org/apache/struts2/components/URL.java
+++ b/core/src/main/java/org/apache/struts2/components/URL.java
@@ -53,6 +53,12 @@
  * additional request parameters.</p>
  *
  * <b>NOTE:</b>
+ * <p>By default request parameters will be separated using escaped ampersands (i.e., &amp;amp;).
+ * This is necessary for XHTML compliance, however, when using the URL generated by this tag
+ * with the &lt;s:property&gt; tag, the <b>escapeAmp</b> attribute should be used to disable
+ * ampersand escaping.</p>
+ *
+ * <b>NOTE:</b>
  * <p>When includeParams is 'all' or 'get', the parameter defined in param tag will take
  * precedence and will not be overriden if they exists in the parameter submitted. For
  * example, in Example 3 below, if there is a id parameter in the url where the page this
@@ -68,16 +74,21 @@
  * <ul>
  *      <li>action (String) - (value or action choose either one, if both exist value takes precedence) action's name (alias) <li>
  *      <li>value (String) - (value or action choose either one, if both exist value takes precedence) the url itself</li>
- *      <li>scheme (String) - http scheme (http, https) default to the scheme this request is in</li>
+ *      <li>scheme (String) - http scheme (http, https) defaults to the scheme this request is in</li>
  *      <li>namespace - action's namespace</li>
- *      <li>method (String) - action's method, default to execute() </li>
- *      <li>encode (Boolean) - url encode the generated url. Default is true</li>
- *      <li>includeParams (String) - The includeParams attribute may have the value 'none', 'get' or 'all'. Default is 'get'.
+ *      <li>method (String) - action's method name, defaults to 'execute'</li>
+ *      <li>encode (Boolean) - url encode the generated url. Defaults to 'true'.</li>
+ *      <li>includeParams (String) - The includeParams attribute may have the value 'none', 'get' or 'all'. Defaults to 'get'.
  *                                   none - include no parameters in the URL
  *                                   get  - include only GET parameters in the URL (default)
  *                                   all  - include both GET and POST parameters in the URL
  *      </li>
- *      <li>includeContext (Boolean) - determine wheather to include the web app context path. Default is true.</li>
+ *      <li>includeContext (Boolean) - Specifies whether to include the web app context path. Defaults to 'true'.</li>
+ *      <li>escapeAmp (Boolean) - Specifies whether to escape ampersand (&amp;) to (&amp;amp;) or not. Defaults to 'true'.</li>
+ *      <li>portletMode (String) - The resulting portlet mode.</li>
+ *      <li>windowState (String) - The resulting portlet window state.</li>
+ *      <li>portletUrlType (String) - Specifies if this should be a portlet render or action URL.</li>
+ *      <li>forceAddSchemeHostAndPort (Boolean) - Specifies whether to force the addition of scheme, host and port or not.</li>
  * </ul>
  *
  * <!-- END SNIPPET: params -->
@@ -98,7 +109,7 @@
  *
  * &lt;-- Example 3--&gt;
  * &lt;s:url includeParams="get"  &gt;
- *     &lt:param name="id" value="%{'22'}" /&gt;
+ *     &lt;s:param name="id" value="%{'22'}" /&gt;
  * &lt;/s:url&gt;
  *
  * <!-- END SNIPPET: example -->
@@ -135,10 +146,12 @@
     protected String method;
     protected boolean encode = true;
     protected boolean includeContext = true;
+    protected boolean escapeAmp = true;
     protected String portletMode;
     protected String windowState;
     protected String portletUrlType;
     protected String anchor;
+    protected boolean forceAddSchemeHostAndPort;
     protected String urlIncludeParams;
     protected ExtraParameterProvider extraParameterProvider;
 
@@ -236,14 +249,14 @@
 
         String result;
         if (value == null && action != null) {
-            if(Dispatcher.getInstance().isPortletSupportActive() && PortletActionContext.isPortletRequest()) {
-                result = PortletUrlHelper.buildUrl(action, namespace, parameters, portletUrlType, portletMode, windowState);
+            if (Dispatcher.getInstance().isPortletSupportActive() && PortletActionContext.isPortletRequest()) {
+                result = PortletUrlHelper.buildUrl(action, namespace, method, parameters, portletUrlType, portletMode, windowState);
             }
             else {
-                result = determineActionURL(action, namespace, method, req, res, parameters, scheme, includeContext, encode);
+                result = determineActionURL(action, namespace, method, req, res, parameters, scheme, includeContext, encode, forceAddSchemeHostAndPort, escapeAmp);
             }
         } else {
-            if(Dispatcher.getInstance().isPortletSupportActive() && PortletActionContext.isPortletRequest()) {
+            if (Dispatcher.getInstance().isPortletSupportActive() && PortletActionContext.isPortletRequest()) {
                 result = PortletUrlHelper.buildResourceUrl(value, parameters);
             }
             else {
@@ -254,7 +267,7 @@
                 if (_value != null && _value.indexOf("?") > 0) {
                     _value = _value.substring(0, _value.indexOf("?"));
                 }
-                result = UrlHelper.buildUrl(_value, req, res, parameters, scheme, includeContext, encode);
+                result = UrlHelper.buildUrl(_value, req, res, parameters, scheme, includeContext, encode, forceAddSchemeHostAndPort, escapeAmp);
             }
         }
         if ( anchor != null && anchor.length() > 0 ) {
@@ -293,7 +306,7 @@
         this.value = value;
     }
 
-    @StrutsTagAttribute(description="he action generate url for, if not using value")
+    @StrutsTagAttribute(description="The action to generate the URL for, if not using value")
     public void setAction(String action) {
         this.action = action;
     }
@@ -313,7 +326,7 @@
         this.encode = encode;
     }
 
-    @StrutsTagAttribute(description="Whether actual context should be included in url", type="Boolean", defaultValue="true")
+    @StrutsTagAttribute(description="Whether actual context should be included in URL", type="Boolean", defaultValue="true")
     public void setIncludeContext(boolean includeContext) {
         this.includeContext = includeContext;
     }
@@ -328,7 +341,7 @@
         this.windowState = windowState;
     }
 
-    @StrutsTagAttribute(description="Specifies if this should be a portlet render or action url")
+    @StrutsTagAttribute(description="Specifies if this should be a portlet render or action URL. Default is \"render\". To create an action URL, use \"action\".")
     public void setPortletUrlType(String portletUrlType) {
         this.portletUrlType = portletUrlType;
     }
@@ -338,6 +351,16 @@
         this.anchor = anchor;
     }
 
+    @StrutsTagAttribute(description="Specifies whether to escape ampersand (&amp;) to (&amp;amp;) or not", type="Boolean", defaultValue="true")
+    public void setEscapeAmp(boolean escapeAmp) {
+        this.escapeAmp = escapeAmp;
+    }
+
+    @StrutsTagAttribute(description="Specifies whether to force the addition of scheme, host and port or not", type="Boolean", defaultValue="false")
+    public void setForceAddSchemeHostAndPort(boolean forceAddSchemeHostAndPort) {
+        this.forceAddSchemeHostAndPort = forceAddSchemeHostAndPort;
+    }
+
 
     /**
      * Merge request parameters into current parameters. If a parameter is
diff --git a/core/src/main/java/org/apache/struts2/components/table/renderer/package.html b/core/src/main/java/org/apache/struts2/components/table/renderer/package.html
index 403e362..887a55c 100644
--- a/core/src/main/java/org/apache/struts2/components/table/renderer/package.html
+++ b/core/src/main/java/org/apache/struts2/components/table/renderer/package.html
@@ -1 +1,23 @@
+<!--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <body>JSP UI tags for rendering table output in HTML.</body>
diff --git a/core/src/main/java/org/apache/struts2/components/template/BaseTemplateEngine.java b/core/src/main/java/org/apache/struts2/components/template/BaseTemplateEngine.java
index 073cfd7..de4fd1b 100644
--- a/core/src/main/java/org/apache/struts2/components/template/BaseTemplateEngine.java
+++ b/core/src/main/java/org/apache/struts2/components/template/BaseTemplateEngine.java
@@ -52,7 +52,7 @@
             if (props == null) {
                 String propName = template.getDir() + "/" + template.getTheme() + "/"+getThemePropertiesFileName();
 
-//              WW-1292
+                // WW-1292
                 // let's try getting it from the filesystem
                 File propFile = new File(propName);
                 InputStream is = null;
@@ -77,6 +77,12 @@
                         props.load(is);
                     } catch (IOException e) {
                         LOG.error("Could not load " + propName, e);
+                    } finally {
+                        try {
+                            is.close();
+                        } catch(IOException io) {
+                            LOG.warn("Unable to close input stream", io);
+                        }
                     }
                 }
 
diff --git a/core/src/main/java/org/apache/struts2/components/template/FreemarkerTemplateEngine.java b/core/src/main/java/org/apache/struts2/components/template/FreemarkerTemplateEngine.java
index 6a35545..ec3cf7b 100644
--- a/core/src/main/java/org/apache/struts2/components/template/FreemarkerTemplateEngine.java
+++ b/core/src/main/java/org/apache/struts2/components/template/FreemarkerTemplateEngine.java
@@ -22,9 +22,7 @@
 
 import java.io.IOException;
 import java.io.Writer;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
@@ -33,6 +31,7 @@
 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.views.freemarker.FreemarkerManager;
 
 import com.opensymphony.xwork2.inject.Inject;
@@ -41,8 +40,7 @@
 import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.util.ValueStack;
 
-import freemarker.template.Configuration;
-import freemarker.template.SimpleHash;
+import freemarker.template.*;
 
 /**
  * Freemarker based template engine.
@@ -51,6 +49,10 @@
     static Class bodyContent = null;
     private FreemarkerManager freemarkerManager;
 
+    private final HashMap<String, freemarker.template.Template> templates = new HashMap<String, freemarker.template.Template>();
+    private final HashSet<String> missingTemplates = new HashSet<String>();
+    private boolean freemarkerCaching = false;
+
     static {
         try {
             bodyContent = ClassLoaderUtil.loadClass("javax.servlet.jsp.tagext.BodyContent",
@@ -82,22 +84,40 @@
         Configuration config = freemarkerManager.getConfiguration(servletContext);
 
         // get the list of templates we can use
-        List templates = templateContext.getTemplate().getPossibleTemplates(this);
+        List<Template> templates = templateContext.getTemplate().getPossibleTemplates(this);
 
         // find the right template
         freemarker.template.Template template = null;
         String templateName = null;
         Exception exception = null;
-        for (Iterator iterator = templates.iterator(); iterator.hasNext();) {
-            Template t = (Template) iterator.next();
+        for (Template t : templates) {
             templateName = getFinalTemplateName(t);
-            try {
-                // try to load, and if it works, stop at the first one
-                template = config.getTemplate(templateName);
-                break;
-            } catch (IOException e) {
-                if (exception == null) {
-                    exception = e;
+            if (freemarkerCaching) {
+                if (!isTemplateMissing(templateName)) {
+                    try {
+                        template = findInCache(templateName);  // look in cache first
+                        if (template == null) {
+                            // try to load, and if it works, stop at the first one
+                            template = config.getTemplate(templateName);
+                            addToCache(templateName, template);
+                        }
+                        break;
+                    } catch (IOException e) {
+                        addToMissingTemplateCache(templateName);
+                        if (exception == null) {
+                            exception = e;
+                        }
+                    }
+                }
+            } else {
+                try {
+                    // try to load, and if it works, stop at the first one
+                    template = config.getTemplate(templateName);
+                    break;
+                } catch (IOException e) {
+                    if (exception == null) {
+                        exception = e;
+                    }
                 }
             }
         }
@@ -154,4 +174,40 @@
     protected String getSuffix() {
         return "ftl";
     }
+
+    protected void addToMissingTemplateCache(String templateName) {
+        synchronized(missingTemplates) {
+            missingTemplates.add(templateName);
+        }
+    }
+
+    protected boolean isTemplateMissing(String templateName) {
+        synchronized(missingTemplates) {
+            return missingTemplates.contains(templateName);
+        }
+    }
+
+    protected void addToCache(String templateName,
+        freemarker.template.Template template) {
+        synchronized(templates) {
+            templates.put(templateName, template);
+        }
+    }
+
+    protected freemarker.template.Template findInCache(String templateName) {
+        synchronized(templates) {
+            return templates.get(templateName);
+        }
+    }
+
+    /**
+     * Enables or disables Struts caching of Freemarker templates. By default disabled.
+     * Set struts.freemarker.templatesCache=true to enable cache
+     * @param cacheTemplates "true" if the template engine should cache freemarker template
+     * internally
+     */
+    @Inject(StrutsConstants.STRUTS_FREEMARKER_TEMPLATES_CACHE)
+    public void setCacheTemplates(String cacheTemplates) {
+        freemarkerCaching = "true".equals(cacheTemplates);
+    }
 }
diff --git a/core/src/main/java/org/apache/struts2/components/template/JspTemplateEngine.java b/core/src/main/java/org/apache/struts2/components/template/JspTemplateEngine.java
index 7dd7cbe..ff0e556 100644
--- a/core/src/main/java/org/apache/struts2/components/template/JspTemplateEngine.java
+++ b/core/src/main/java/org/apache/struts2/components/template/JspTemplateEngine.java
@@ -20,19 +20,16 @@
  */
 package org.apache.struts2.components.template;
 
-import java.util.Iterator;
-import java.util.List;
-
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.jsp.PageContext;
-
+import com.opensymphony.xwork2.util.ValueStack;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.struts2.ServletActionContext;
 import org.apache.struts2.components.Include;
 import org.apache.struts2.components.UIBean;
 
-import com.opensymphony.xwork2.util.ValueStack;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.jsp.PageContext;
+import java.util.List;
 
 /**
  * JSP based template engine.
@@ -50,11 +47,10 @@
         ValueStack stack = templateContext.getStack();
         stack.push(tag);
         PageContext pageContext = (PageContext) stack.getContext().get(ServletActionContext.PAGE_CONTEXT);
-        List templates = template.getPossibleTemplates(this);
+        List<Template> templates = template.getPossibleTemplates(this);
         Exception exception = null;
         boolean success = false;
-        for (Iterator iterator = templates.iterator(); iterator.hasNext();) {
-            Template t = (Template) iterator.next();
+        for (Template t : templates) {
             try {
                 Include.include(getFinalTemplateName(t), pageContext.getOut(),
                         pageContext.getRequest(), (HttpServletResponse) pageContext.getResponse());
diff --git a/core/src/main/java/org/apache/struts2/components/template/Template.java b/core/src/main/java/org/apache/struts2/components/template/Template.java
index 8294af7..2c50b9e 100644
--- a/core/src/main/java/org/apache/struts2/components/template/Template.java
+++ b/core/src/main/java/org/apache/struts2/components/template/Template.java
@@ -59,8 +59,8 @@
         return name;
     }
 
-    public List getPossibleTemplates(TemplateEngine engine) {
-        List list = new ArrayList(3);
+    public List<Template> getPossibleTemplates(TemplateEngine engine) {
+        List<Template> list = new ArrayList<Template>(3);
         Template template = this;
         String parentTheme;
         list.add(template);
diff --git a/core/src/main/java/org/apache/struts2/components/template/VelocityTemplateEngine.java b/core/src/main/java/org/apache/struts2/components/template/VelocityTemplateEngine.java
index 1b251e2..3d6d477 100644
--- a/core/src/main/java/org/apache/struts2/components/template/VelocityTemplateEngine.java
+++ b/core/src/main/java/org/apache/struts2/components/template/VelocityTemplateEngine.java
@@ -20,16 +20,7 @@
  */
 package org.apache.struts2.components.template;
 
-import java.io.IOException;
-import java.io.Writer;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
+import com.opensymphony.xwork2.inject.Inject;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.struts2.ServletActionContext;
@@ -37,7 +28,13 @@
 import org.apache.velocity.app.VelocityEngine;
 import org.apache.velocity.context.Context;
 
-import com.opensymphony.xwork2.inject.Inject;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.Writer;
+import java.util.List;
+import java.util.Map;
 
 /**
  * Velocity based template engine.
@@ -64,14 +61,13 @@
         VelocityEngine velocityEngine = velocityManager.getVelocityEngine();
 
         // get the list of templates we can use
-        List templates = templateContext.getTemplate().getPossibleTemplates(this);
+        List<Template> templates = templateContext.getTemplate().getPossibleTemplates(this);
 
         // find the right template
         org.apache.velocity.Template template = null;
         String templateName = null;
         Exception exception = null;
-        for (Iterator iterator = templates.iterator(); iterator.hasNext();) {
-            Template t = (Template) iterator.next();
+        for (Template t : templates) {
             templateName = getFinalTemplateName(t);
             try {
                 // try to load, and if it works, stop at the first one
diff --git a/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java b/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java
index 1ce982b..f388bc4 100644
--- a/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java
+++ b/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java
@@ -26,7 +26,6 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.struts2.StrutsConstants;
-import org.apache.struts2.StrutsException;
 import org.apache.struts2.dispatcher.mapper.ActionMapper;
 import org.apache.struts2.dispatcher.multipart.MultiPartRequest;
 import org.apache.struts2.views.freemarker.FreemarkerManager;
@@ -34,6 +33,7 @@
 
 import com.opensymphony.xwork2.ActionProxyFactory;
 import com.opensymphony.xwork2.ObjectFactory;
+import com.opensymphony.xwork2.TextProvider;
 import com.opensymphony.xwork2.config.Configuration;
 import com.opensymphony.xwork2.config.ConfigurationException;
 import com.opensymphony.xwork2.config.ConfigurationProvider;
@@ -41,12 +41,10 @@
 import com.opensymphony.xwork2.inject.ContainerBuilder;
 import com.opensymphony.xwork2.inject.Context;
 import com.opensymphony.xwork2.inject.Factory;
-import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.inject.Scope;
 import com.opensymphony.xwork2.util.ClassLoaderUtil;
 import com.opensymphony.xwork2.util.LocalizedTextUtil;
 import com.opensymphony.xwork2.util.ObjectTypeDeterminer;
-import com.opensymphony.xwork2.util.ObjectTypeDeterminerFactory;
 import com.opensymphony.xwork2.util.XWorkConverter;
 import com.opensymphony.xwork2.util.location.LocatableProperties;
 
@@ -154,6 +152,7 @@
     public void register(ContainerBuilder builder, LocatableProperties props) {
         alias(ObjectFactory.class, StrutsConstants.STRUTS_OBJECTFACTORY, builder, props);
         alias(XWorkConverter.class, StrutsConstants.STRUTS_XWORKCONVERTER, builder, props);
+        alias(TextProvider.class, StrutsConstants.STRUTS_XWORKTEXTPROVIDER, builder, props);
         alias(ActionProxyFactory.class, StrutsConstants.STRUTS_ACTIONPROXYFACTORY, builder, props);
         alias(ObjectTypeDeterminer.class, StrutsConstants.STRUTS_OBJECTTYPEDETERMINER, builder, props);
         alias(ActionMapper.class, StrutsConstants.STRUTS_MAPPER_CLASS, builder, props);
@@ -164,6 +163,7 @@
         if ("true".equalsIgnoreCase(props.getProperty(StrutsConstants.STRUTS_DEVMODE))) {
             props.setProperty(StrutsConstants.STRUTS_I18N_RELOAD, "true");
             props.setProperty(StrutsConstants.STRUTS_CONFIGURATION_XML_RELOAD, "true");
+            props.setProperty(StrutsConstants.STRUTS_FREEMARKER_TEMPLATES_CACHE, "false");
             // Convert struts properties into ones that xwork expects
             props.setProperty("devMode", "true");
         } else {
diff --git a/core/src/main/java/org/apache/struts2/config/PropertiesSettings.java b/core/src/main/java/org/apache/struts2/config/PropertiesSettings.java
index ff34df6..cb92b86 100644
--- a/core/src/main/java/org/apache/struts2/config/PropertiesSettings.java
+++ b/core/src/main/java/org/apache/struts2/config/PropertiesSettings.java
@@ -29,6 +29,7 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.struts2.StrutsException;
+import org.apache.struts2.util.ClassLoaderUtils;
 
 import com.opensymphony.xwork2.util.location.LocatableProperties;
 import com.opensymphony.xwork2.util.location.Location;
@@ -53,7 +54,7 @@
      */
     public PropertiesSettings(String name) {
         
-        URL settingsUrl = Thread.currentThread().getContextClassLoader().getResource(name + ".properties");
+        URL settingsUrl = ClassLoaderUtils.getResource(name + ".properties", getClass());
         
         if (settingsUrl == null) {
             LOG.debug(name + ".properties missing");
diff --git a/core/src/main/java/org/apache/struts2/config/package.html b/core/src/main/java/org/apache/struts2/config/package.html
index decba77..0b7b68d 100644
--- a/core/src/main/java/org/apache/struts2/config/package.html
+++ b/core/src/main/java/org/apache/struts2/config/package.html
@@ -1 +1,23 @@
+<!--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <body>Classes for Struts configuration and property handling.</body>
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
index 715e90c..61d4f07 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
@@ -52,10 +52,7 @@
 import org.apache.struts2.views.freemarker.FreemarkerManager;
 
 import com.opensymphony.xwork2.util.FileManager;
-import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.ActionProxy;
-import com.opensymphony.xwork2.ActionProxyFactory;
-import com.opensymphony.xwork2.ObjectFactory;
+import com.opensymphony.xwork2.*;
 import com.opensymphony.xwork2.Result;
 import com.opensymphony.xwork2.config.Configuration;
 import com.opensymphony.xwork2.config.ConfigurationException;
@@ -515,8 +512,7 @@
             LOG.error("Could not find action or result", e);
             sendError(request, response, context, HttpServletResponse.SC_NOT_FOUND, e);
         } catch (Exception e) {
-            LOG.error("Could not execute action", e);
-            sendError(request, response, context, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e);
+            throw new ServletException(e);
         } finally {
             UtilTimerStack.pop(timerKey);
         }
@@ -750,12 +746,15 @@
             }
         } else {
             try {
-                // send a http error response to use the servlet defined error handler
-                // make the exception availible to the web.xml defined error page
-                request.setAttribute("javax.servlet.error.exception", e);
+                // WW-1977: Only put errors in the request when code is a 500 error
+                if (code == HttpServletResponse.SC_INTERNAL_SERVER_ERROR) {
+                    // send a http error response to use the servlet defined error handler
+                    // make the exception availible to the web.xml defined error page
+                    request.setAttribute("javax.servlet.error.exception", e);
 
-                // for compatibility
-                request.setAttribute("javax.servlet.jsp.jspException", e);
+                    // for compatibility
+                    request.setAttribute("javax.servlet.jsp.jspException", e);
+                }
 
                 // send the error response
                 response.sendError(code, e.getMessage());
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java b/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java
index 7bb8656..97aa914 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java
@@ -23,7 +23,9 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Enumeration;
@@ -123,7 +125,7 @@
  * <li><b>actionPackages</b> - a comma-delimited list of Java packages to scan for Actions.</li>
  *
  * <li><b>configProviders</b> - a comma-delimited list of Java classes that implement the 
- * {@link ConfigurationProvider} interface that should be used for building the {@link Configuration}.</li>
+ * {@link com.opensymphony.xwork2.config.ConfigurationProvider} interface that should be used for building the {@link com.opensymphony.xwork2.config.Configuration}.</li>
  * 
  * <li><b>*</b> - any other parameters are treated as framework constants.</li>
  * 
@@ -148,10 +150,12 @@
      */
     private static final Log LOG = LogFactory.getLog(FilterDispatcher.class);
 
+    static final String DEFAULT_STATIC_PACKAGES = "org.apache.struts2.static template org.apache.struts2.interceptor.debugging";
+
     /**
      * Store set of path prefixes to use with static resources.
      */
-    private String[] pathPrefixes;
+    String[] pathPrefixes;
 
     /**
      * Provide a formatted date for setting heading information when caching static content.
@@ -201,7 +205,7 @@
         dispatcher.init();
        
         String param = filterConfig.getInitParameter("packages");
-        String packages = "org.apache.struts2.static template org.apache.struts2.interceptor.debugging";
+        String packages = DEFAULT_STATIC_PACKAGES;
         if (param != null) {
             packages = param + " " + packages;
         }
@@ -320,20 +324,20 @@
             // prepare the request no matter what - this ensures that the proper character encoding
             // is used before invoking the mapper (see WW-9127)
             dispatcher.prepare(request, response);
-
-            try {
-                // Wrap request first, just in case it is multipart/form-data
-                // parameters might not be accessible through before encoding (ww-1278)
-                request = dispatcher.wrapRequest(request, getServletContext());
-            } catch (IOException e) {
-                String message = "Could not wrap servlet request with MultipartRequestWrapper!";
-                LOG.error(message, e);
-                throw new ServletException(message, e);
-            }
-        }
-        else {
+        } else {
             dispatcher = du;
         }
+        
+        try {
+            // Wrap request first, just in case it is multipart/form-data
+            // parameters might not be accessible through before encoding (ww-1278)
+            request = dispatcher.wrapRequest(request, getServletContext());
+        } catch (IOException e) {
+            String message = "Could not wrap servlet request with MultipartRequestWrapper!";
+            LOG.error(message, e);
+            throw new ServletException(message, e);
+        }
+
         return request;
     }
 
@@ -379,7 +383,7 @@
      */
     public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
 
-    	
+
         HttpServletRequest request = (HttpServletRequest) req;
         HttpServletResponse response = (HttpServletResponse) res;
         ServletContext servletContext = getServletContext();
@@ -394,7 +398,6 @@
             } catch (Exception ex) {
                 LOG.error("error getting ActionMapping", ex);
                 dispatcher.sendError(request, response, servletContext, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, ex);
-                ActionContextCleanUp.cleanUp(req);
                 return;
             }
 
@@ -407,8 +410,7 @@
                 }
 
                 if (serveStatic && resourcePath.startsWith("/struts")) {
-                    String name = resourcePath.substring("/struts".length());
-                    findStaticResource(name, request, response);
+                    findStaticResource(resourcePath, findAndCheckResources(resourcePath), request, response);
                 } else {
                     // this is a normal request, let it pass through
                     chain.doFilter(request, response);
@@ -417,79 +419,42 @@
                 return;
             }
 
+            dispatcher.serviceAction(request, response, servletContext, mapping);
+
+        } finally {
             try {
-                dispatcher.serviceAction(request, response, servletContext, mapping);
-            } finally {
                 ActionContextCleanUp.cleanUp(req);
+            } finally {
+                UtilTimerStack.pop(timerKey);
             }
         }
-        finally {
-            UtilTimerStack.pop(timerKey);
-        }
     }
 
     /**
      * Locate a static resource and copy directly to the response,
-     * setting the appropriate caching headers. 
+     * setting the appropriate caching headers.
      *
-     * @param name The resource name
+     * @param path The resource path
+     * @param resourceUrls List of matching resource URLs
      * @param request The request
      * @param response The response
      * @throws IOException If anything goes wrong
      */
-    protected void findStaticResource(String name, HttpServletRequest request, HttpServletResponse response) throws IOException {
-        if (!name.endsWith(".class")) {
-            for (String pathPrefix : pathPrefixes) {
-                InputStream is = findInputStream(name, pathPrefix);
-                if (is != null) {
-                    Calendar cal = Calendar.getInstance();
-                    
-                    // check for if-modified-since, prior to any other headers
-                    long ifModifiedSince = 0;
-                    try {
-                    	ifModifiedSince = request.getDateHeader("If-Modified-Since");
-                    } catch (Exception e) {
-                    	LOG.warn("Invalid If-Modified-Since header value: '" + request.getHeader("If-Modified-Since") + "', ignoring");
-                    }
-    				long lastModifiedMillis = lastModifiedCal.getTimeInMillis();
-    				long now = cal.getTimeInMillis();
-                    cal.add(Calendar.DAY_OF_MONTH, 1);
-                    long expires = cal.getTimeInMillis();
-                    
-    				if (ifModifiedSince > 0 && ifModifiedSince <= lastModifiedMillis) {
-    					// not modified, content is not sent - only basic headers and status SC_NOT_MODIFIED
-                        response.setDateHeader("Expires", expires);
-    					response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
-    					is.close();
-    					return;
-    				}
-                	
-                	// set the content-type header
-                    String contentType = getContentType(name);
-                    if (contentType != null) {
-                        response.setContentType(contentType);
-                    }
+    public void findStaticResource(String path, List<URL> resourceUrls, HttpServletRequest request, HttpServletResponse response)
+            throws IOException {
+        for (URL resourceUrl : resourceUrls) {
+            InputStream is;
+            try {
+                is = resourceUrl.openStream();
+            } catch (Exception ex) {
+                // just ignore it
+                continue;
+            }
 
-                    if (serveStaticBrowserCache) {
-                    	// set heading information for caching static content
-                        response.setDateHeader("Date", now);
-                        response.setDateHeader("Expires", expires);
-                        response.setDateHeader("Retry-After", expires);
-                        response.setHeader("Cache-Control", "public");
-                        response.setDateHeader("Last-Modified", lastModifiedMillis);
-                    } else {
-                        response.setHeader("Cache-Control", "no-cache");
-                        response.setHeader("Pragma", "no-cache");
-                        response.setHeader("Expires", "-1");
-                    }
-
-                    try {
-                        copy(is, response.getOutputStream());
-                    } finally {
-                        is.close();
-                    }
-                    return;
-                }
+            //not inside the try block, as this could throw IOExceptions also
+            if (is != null) {
+                process(is, path, request, response);
+                return;
             }
         }
 
@@ -497,6 +462,109 @@
     }
 
     /**
+     * Locate a static classpath resource and check for safety constraints.
+     *
+     * @param path The resource path to check for available resources
+     * @return verified classpath resource URLs
+     * @throws IOException If anything goes wrong
+     */
+    protected List<URL> findAndCheckResources(String path) throws IOException {
+        String name = cleanupPath(path);
+        List<URL> resourceUrls = new ArrayList<URL>(pathPrefixes.length);
+        for (String pathPrefix : pathPrefixes) {
+            URL resourceUrl = findResource(buildPath(name, pathPrefix));
+            String pathEnding = buildPath(name, pathPrefix);
+            //check that the resource path is under the pathPrefix path
+            if (resourceUrl != null && resourceUrl.getFile().endsWith(pathEnding)) {
+                resourceUrls.add(resourceUrl);
+            }
+        }
+        return resourceUrls;
+    }
+
+    /**
+     * Look for a static resource in the classpath.
+     *
+     * @param path The resource path
+     * @return The inputstream of the resource
+     * @throws IOException If there is a problem locating the resource
+     */
+    protected URL findResource(String path) throws IOException {
+        return ClassLoaderUtil.getResource(path, getClass());
+    }
+
+    /**
+     * @param name resource name
+     * @param packagePrefix The package prefix to use to locate the resource
+     * @return full path
+     * @throws java.io.UnsupportedEncodingException
+     * @throws IOException
+     */
+    protected String buildPath(String name, String packagePrefix) throws UnsupportedEncodingException {
+        String resourcePath;
+        if (packagePrefix.endsWith("/") && name.startsWith("/")) {
+            resourcePath = packagePrefix + name.substring(1);
+        } else {
+            resourcePath = packagePrefix + name;
+        }
+
+        return URLDecoder.decode(resourcePath, encoding);
+    }
+
+    protected void process(InputStream is, String path, HttpServletRequest request, HttpServletResponse response) throws IOException {
+        if (is != null) {
+            Calendar cal = Calendar.getInstance();
+
+            // check for if-modified-since, prior to any other headers
+            long ifModifiedSince = 0;
+            try {
+                ifModifiedSince = request.getDateHeader("If-Modified-Since");
+            } catch (Exception e) {
+                LOG.warn("Invalid If-Modified-Since header value: '"
+                        + request.getHeader("If-Modified-Since") + "', ignoring");
+            }
+            long lastModifiedMillis = lastModifiedCal.getTimeInMillis();
+            long now = cal.getTimeInMillis();
+            cal.add(Calendar.DAY_OF_MONTH, 1);
+            long expires = cal.getTimeInMillis();
+
+            if (ifModifiedSince > 0 && ifModifiedSince <= lastModifiedMillis) {
+                // not modified, content is not sent - only basic
+                // headers and status SC_NOT_MODIFIED
+                response.setDateHeader("Expires", expires);
+                response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
+                is.close();
+                return;
+            }
+
+            // set the content-type header
+            String contentType = getContentType(path);
+            if (contentType != null) {
+                response.setContentType(contentType);
+            }
+
+            if (serveStaticBrowserCache) {
+                // set heading information for caching static content
+                response.setDateHeader("Date", now);
+                response.setDateHeader("Expires", expires);
+                response.setDateHeader("Retry-After", expires);
+                response.setHeader("Cache-Control", "public");
+                response.setDateHeader("Last-Modified", lastModifiedMillis);
+            } else {
+                response.setHeader("Cache-Control", "no-cache");
+                response.setHeader("Pragma", "no-cache");
+                response.setHeader("Expires", "-1");
+            }
+
+            try {
+                copy(is, response.getOutputStream());
+            } finally {
+                is.close();
+            }
+        }
+    }
+
+    /**
      * Determine the content type for the resource name.
      *
      * @param name The resource name
@@ -537,6 +605,7 @@
         while (-1 != (n = input.read(buffer))) {
             output.write(buffer, 0, n);
         }
+        output.flush(); // WW-1526
     }
 
     /**
@@ -559,4 +628,13 @@
 
         return ClassLoaderUtil.getResourceAsStream(resourcePath, getClass());
     }
+
+    /**
+     * @param path requested path
+     * @return path without leading "/struts" or "/static"
+     */
+    protected String cleanupPath(String path) {
+        //path will start with "/struts" or "/static", remove them
+        return path.substring(7);
+    }
 }
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/ServletActionRedirectResult.java b/core/src/main/java/org/apache/struts2/dispatcher/ServletActionRedirectResult.java
index b679723..db1cb1e 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/ServletActionRedirectResult.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/ServletActionRedirectResult.java
@@ -23,6 +23,7 @@
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -45,19 +46,6 @@
  * standard redirect result.
  *
  * <p/>
- * @TODO - the below sentence is confusing and seems to be contradictory -- FIX ME
- * To pass parameters, use the &lt;param&gt; ... &lt;/param&gt; tag. The following parameters will not be
- * passed because they are part of the config param for this particular result.
- *
- * <ul>
- *  <li>actionName</li>
- *  <li>namespace</li>
- *  <li>method</li>
- *  <li>encode</li>
- *  <li>parse</li>
- *  <li>location</li>
- *  <li>prependServletContext</li>
- * </ul>
  *
  * See examples below for an example of how request parameters could be passed in.
  *
@@ -136,7 +124,7 @@
     protected String namespace;
     protected String method;
 
-    private Map<String, String> requestParameters = new HashMap<String, String>();
+    private Map<String, String> requestParameters = new LinkedHashMap<String, String>();
 
     public ServletActionRedirectResult() {
         super();
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/StreamResult.java b/core/src/main/java/org/apache/struts2/dispatcher/StreamResult.java
index 1b37766..e77100f 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/StreamResult.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/StreamResult.java
@@ -33,7 +33,7 @@
 /**
  * <!-- START SNIPPET: description -->
  *
- * A custom Result type for send raw data (via an InputStream) directly to the
+ * A custom Result type for sending raw data (via an InputStream) directly to the
  * HttpServletResponse. Very useful for allowing users to download content.
  *
  * <!-- END SNIPPET: description -->
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/StrutsResultSupport.java b/core/src/main/java/org/apache/struts2/dispatcher/StrutsResultSupport.java
index 3172851..da05522 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/StrutsResultSupport.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/StrutsResultSupport.java
@@ -117,7 +117,7 @@
     }
 
     public StrutsResultSupport(String location) {
-        this(location, false, false);
+        this(location, true, false);
     }
 
     public StrutsResultSupport(String location, boolean parse, boolean encode) {
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java b/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
index f334c87..2e9e08b 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
@@ -485,11 +485,17 @@
 
         return uri.toString();
     }
+    
 
-    /**
+	public boolean isSlashesInActionNames() {
+		return allowSlashesInActionNames;
+	}
+	
+	/**
      * Defines a parameter action prefix
      */
     interface ParameterAction {
         void execute(String key, ActionMapping mapping);
     }
+
 }
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/mapper/Restful2ActionMapper.java b/core/src/main/java/org/apache/struts2/dispatcher/mapper/Restful2ActionMapper.java
index dc3f6ad..414e75a 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/mapper/Restful2ActionMapper.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/mapper/Restful2ActionMapper.java
@@ -21,6 +21,7 @@
 package org.apache.struts2.dispatcher.mapper;
 
 import com.opensymphony.xwork2.config.ConfigurationManager;
+import com.opensymphony.xwork2.inject.Inject;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.HashMap;
@@ -29,6 +30,7 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.struts2.StrutsConstants;
 
 /**
  * <!-- START SNIPPET: description -->
@@ -56,16 +58,25 @@
  *   &lt;/action&gt;
  * </pre>
  * <p>
+ *   This mapper supports the following parameters:
+ * </p>
+ * <ul>
+ *   <li><code>struts.mapper.idParameterName</code> - If set, this value will be the name
+ *       of the parameter under which the id is stored.  The id will then be removed
+ *       from the action name.  This allows restful actions to not require wildcards.
+ *   </li>
+ * </ul>
+ * <p>
  * The following URL's will invoke its methods:
  * </p>
  * <ul>
- *  <li><code>GET:    /movie               => method="index"</code></li>
+ *  <li><code>GET:    /movie/               => method="index"</code></li>
  *  <li><code>GET:    /movie/Thrillers      => method="view", id="Thrillers"</code></li>
  *  <li><code>GET:    /movie/Thrillers!edit => method="edit", id="Thrillers"</code></li>
- *  <li><code>GET:    /movie/new           => method="editNew"</code></li>
- *  <li><code>POST:   /movie/Thrillers      => method="create"</code></li>
- *  <li><code>PUT:    /movie/              => method="update"</code></li>
- *  <li><code>DELETE: /movie/Thrillers      => method="remove"</code></li>
+ *  <li><code>GET:    /movie/new            => method="editNew"</code></li>
+ *  <li><code>POST:   /movie/               => method="create"</code></li>
+ *  <li><code>PUT:    /movie/Thrillers      => method="update", id="Thrillers"</code></li>
+ *  <li><code>DELETE: /movie/Thrillers      => method="remove", id="Thrillers"</code></li>
  * </ul>
  * <p>
  * To simulate the HTTP methods PUT and DELETE, since they aren't supported by HTML,
@@ -83,7 +94,13 @@
 public class Restful2ActionMapper extends DefaultActionMapper {
 
     protected static final Log LOG = LogFactory.getLog(Restful2ActionMapper.class);
-    private static final String HTTP_METHOD_PARAM = "__http_method";
+    public static final String HTTP_METHOD_PARAM = "__http_method";
+    private String idParameterName = null;
+    
+    public Restful2ActionMapper() {
+    	setSlashesInActionNames("true");
+    }
+    
 
     /*
     * (non-Javadoc)
@@ -92,6 +109,9 @@
     */
     public ActionMapping getMapping(HttpServletRequest request, ConfigurationManager configManager) {
 
+    	if (!isSlashesInActionNames()) {
+    		throw new IllegalStateException("This action mapper requires the setting 'slashesInActionNames' to be set to 'true'");
+    	}
         ActionMapping mapping = super.getMapping(request, configManager);
         
         if (mapping == null) {
@@ -114,7 +134,7 @@
                         mapping.setMethod("index");
                         
                     // Creating a new entry on POST e.g. foo/
-                    } else if (isPut(request)) {
+                    } else if (isPost(request)) {
                         mapping.setMethod("create");
                     }
 
@@ -129,14 +149,25 @@
                     } else if (isGet(request)) {
                         mapping.setMethod("view");
 
-                    // Updating an item e.g. foo/1
-                    } else if (isPost(request)) {
-                        mapping.setMethod("update");
-
                     // Removing an item e.g. foo/1
                     } else if (isDelete(request)) {
                         mapping.setMethod("remove");
+                    
+                    // Updating an item e.g. foo/1    
+                    }  else if (isPut(request)) {
+                        mapping.setMethod("update");
                     }
+                    
+                    if (idParameterName != null) {
+                    	if (mapping.getParams() == null) {
+                            mapping.setParams(new HashMap());
+                        }
+                    	mapping.getParams().put(idParameterName, id);
+                    }
+                }
+                
+                if (idParameterName != null && lastSlashPos > -1) {
+                	actionName = actionName.substring(0, lastSlashPos);
                 }
             }
 
@@ -205,4 +236,15 @@
         }
     }
 
+	public String getIdParameterName() {
+		return idParameterName;
+	}
+
+	@Inject(required=false,value=StrutsConstants.STRUTS_ID_PARAMETER_NAME)
+	public void setIdParameterName(String idParameterName) {
+		this.idParameterName = idParameterName;
+	}
+    
+    
+
 }
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
index 3a2fcc3..880c072 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/multipart/JakartaMultiPartRequest.java
@@ -115,6 +115,12 @@
                 } else {
                     log.debug("Item is a file upload");
 
+                    // Skip file uploads that don't have a file name - meaning that no file was selected.
+                    if (item.getName() == null || item.getName().trim().length() < 1) {
+                        log.debug("No file has been uploaded for the field: " + item.getFieldName());
+                        continue;
+                    }
+
                     List<FileItem> values;
                     if (files.get(item.getFieldName()) != null) {
                         values = files.get(item.getFieldName());
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/multipart/package.html b/core/src/main/java/org/apache/struts2/dispatcher/multipart/package.html
index 6f5f810..b3ee8bd 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/multipart/package.html
+++ b/core/src/main/java/org/apache/struts2/dispatcher/multipart/package.html
@@ -1 +1,23 @@
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <body>Classes to help dispatch multipart HTTP requests.</body>
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/package.html b/core/src/main/java/org/apache/struts2/dispatcher/package.html
index 588e5d0..c8be145 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/package.html
+++ b/core/src/main/java/org/apache/struts2/dispatcher/package.html
@@ -1 +1,23 @@
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <body>Classes for action dispatching in Struts (the Controller part of MVC).</body>
diff --git a/core/src/main/java/org/apache/struts2/impl/ActionContextImpl.java b/core/src/main/java/org/apache/struts2/impl/ActionContextImpl.java
deleted file mode 100644
index 546413a..0000000
--- a/core/src/main/java/org/apache/struts2/impl/ActionContextImpl.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-// Copyright 2006 Google Inc. All Rights Reserved.
-
-package org.apache.struts2.impl;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.struts2.spi.ActionContext;
-import org.apache.struts2.spi.Result;
-
-import com.opensymphony.xwork2.ActionInvocation;
-
-public class ActionContextImpl implements ActionContext {
-
-    final ActionInvocation invocation;
-
-    public ActionContextImpl(ActionInvocation invocation) {
-        this.invocation = invocation;
-    }
-
-    public Object getAction() {
-        return invocation.getAction();
-    }
-
-    public Method getMethod() {
-        String methodName = invocation.getProxy().getMethod();
-        try {
-            return getAction().getClass().getMethod(methodName);
-        } catch (NoSuchMethodException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    public String getActionName() {
-        return invocation.getProxy().getActionName();
-    }
-
-    public String getNamespacePath() {
-        return invocation.getProxy().getNamespace();
-    }
-
-    // TODO: Do something with these.
-    List<Result> resultInterceptors = new ArrayList<Result>();
-
-    public void addResultInterceptor(Result interceptor) {
-        resultInterceptors.add(interceptor);
-    }
-
-    public Result getResult() {
-        // TODO
-        throw new UnsupportedOperationException();
-    }
-
-    public ActionContext getPrevious() {
-        // TODO
-        throw new UnsupportedOperationException();
-    }
-
-    public ActionContext getNext() {
-        // TODO
-        throw new UnsupportedOperationException();
-    }
-}
diff --git a/core/src/main/java/org/apache/struts2/impl/InterceptorAdapter.java b/core/src/main/java/org/apache/struts2/impl/InterceptorAdapter.java
deleted file mode 100644
index 45067a5..0000000
--- a/core/src/main/java/org/apache/struts2/impl/InterceptorAdapter.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-// Copyright 2006 Google Inc. All Rights Reserved.
-
-package org.apache.struts2.impl;
-
-import static org.apache.struts2.impl.RequestContextImpl.ILLEGAL_PROCEED;
-
-import java.util.concurrent.Callable;
-
-import com.opensymphony.xwork2.ActionInvocation;
-import com.opensymphony.xwork2.interceptor.Interceptor;
-
-public class InterceptorAdapter implements Interceptor {
-
-    private static final long serialVersionUID = 8020658947818231684L;
-    final org.apache.struts2.spi.Interceptor delegate;
-
-    public InterceptorAdapter(org.apache.struts2.spi.Interceptor delegate) {
-        this.delegate = delegate;
-    }
-
-    public String intercept(final ActionInvocation invocation) throws Exception {
-        final RequestContextImpl requestContext = RequestContextImpl.get();
-
-        // Save the existing proceed implementation so we can restore it later.
-        Callable<String> previous = requestContext.getProceed();
-
-        requestContext.setProceed(new Callable<String>() {
-            public String call() throws Exception {
-                // This proceed implementation is no longer valid past this point.
-                requestContext.setProceed(ILLEGAL_PROCEED);
-                try {
-                    return invocation.invoke();
-                } finally {
-                    // We're valid again.
-                    requestContext.setProceed(this);
-                }
-            }
-        });
-
-        try {
-            return delegate.intercept(requestContext);
-        } finally {
-            requestContext.setProceed(previous);
-        }
-    }
-
-    public void destroy() {}
-    public void init() {}
-}
diff --git a/core/src/main/java/org/apache/struts2/impl/MessagesImpl.java b/core/src/main/java/org/apache/struts2/impl/MessagesImpl.java
deleted file mode 100644
index 9c7ed91..0000000
--- a/core/src/main/java/org/apache/struts2/impl/MessagesImpl.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-// Copyright 2006 Google Inc. All Rights Reserved.
-
-package org.apache.struts2.impl;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.EnumMap;
-import java.util.EnumSet;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.struts2.Messages;
-
-import com.opensymphony.xwork2.DefaultTextProvider;
-import com.opensymphony.xwork2.TextProvider;
-
-public class MessagesImpl implements Messages {
-
-    final TextProvider textProvider = DefaultTextProvider.INSTANCE;
-    Map<String, Messages> fieldMap = new HashMap<String, Messages>();
-    Map<Severity, List<String>> severityMap = new EnumMap<Severity, List<String>>(Severity.class);
-
-    public Messages forField(String fieldName) {
-        Messages forField = fieldMap.get(fieldName);
-        if (forField == null) {
-            forField = new MessagesImpl();
-            fieldMap.put(fieldName, forField);
-        }
-        return forField;
-    }
-
-    public Map<String, Messages> forFields() {
-        return fieldMap;
-    }
-
-    public void addInformation(String key) {
-        forSeverity(Severity.INFO).add(textProvider.getText(key));
-    }
-
-    public void addInformation(String key, String... arguments) {
-        forSeverity(Severity.INFO).add(textProvider.getText(key, arguments));
-    }
-
-    public void addWarning(String key) {
-        forSeverity(Severity.WARN).add(textProvider.getText(key));
-    }
-
-    public void addWarning(String key, String... arguments) {
-        forSeverity(Severity.WARN).add(textProvider.getText(key, arguments));
-    }
-
-    public void addError(String key) {
-        forSeverity(Severity.ERROR).add(textProvider.getText(key));
-    }
-
-    public void addError(String key, String... arguments) {
-        forSeverity(Severity.ERROR).add(textProvider.getText(key, arguments));
-    }
-
-    public void add(Severity severity, String key) {
-        forSeverity(severity).add(textProvider.getText(key));
-    }
-
-    public void add(Severity severity, String key, String... arguments) {
-        forSeverity(severity).add(textProvider.getText(key, arguments));
-    }
-
-    public Set<Severity> getSeverities() {
-        Set<Severity> severities = EnumSet.noneOf(Severity.class);
-        for (Severity severity : Severity.values()) {
-            List<String> messages = severityMap.get(severity);
-            if (messages != null && !messages.isEmpty()) {
-                severities.add(severity);
-            }
-        }
-        return Collections.unmodifiableSet(severities);
-    }
-
-    public List<String> forSeverity(Severity severity) {
-        List<String> messages = severityMap.get(severity);
-        if (messages == null) {
-            messages = new ArrayList<String>();
-            severityMap.put(severity, messages);
-        }
-        return messages;
-    }
-
-    public List<String> getErrors() {
-        return forSeverity(Severity.ERROR);
-    }
-
-    public List<String> getWarnings() {
-        return forSeverity(Severity.WARN);
-    }
-
-    public List<String> getInformation() {
-        return forSeverity(Severity.INFO);
-    }
-
-    public boolean hasErrors() {
-        return !isEmpty(Severity.ERROR);
-    }
-
-    public boolean hasWarnings() {
-        return !isEmpty(Severity.WARN);
-    }
-
-    public boolean hasInformation() {
-        return !isEmpty(Severity.INFO);
-    }
-
-    public boolean isEmpty() {
-        for (Severity severity : Severity.values())
-            if (!isEmpty(severity))
-                return false;
-
-        return true;
-    }
-
-    public boolean isEmpty(Severity severity) {
-        List<String> messages = severityMap.get(severity);
-        if (messages != null && !messages.isEmpty()) {
-            return false;
-        }
-
-        for (Messages fieldMessages : fieldMap.values())
-            if (!fieldMessages.isEmpty(severity))
-                return false;
-
-        return true;
-    }
-}
diff --git a/core/src/main/java/org/apache/struts2/impl/RequestContextImpl.java b/core/src/main/java/org/apache/struts2/impl/RequestContextImpl.java
deleted file mode 100644
index 94a7788..0000000
--- a/core/src/main/java/org/apache/struts2/impl/RequestContextImpl.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-// Copyright 2006 Google Inc. All Rights Reserved.
-
-package org.apache.struts2.impl;
-
-import static org.apache.struts2.StrutsStatics.HTTP_REQUEST;
-import static org.apache.struts2.StrutsStatics.HTTP_RESPONSE;
-import static org.apache.struts2.StrutsStatics.SERVLET_CONTEXT;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.concurrent.Callable;
-
-import javax.servlet.ServletContext;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.struts2.Messages;
-import org.apache.struts2.dispatcher.RequestMap;
-import org.apache.struts2.spi.ActionContext;
-import org.apache.struts2.spi.RequestContext;
-import org.apache.struts2.spi.ValueStack;
-
-import com.opensymphony.xwork2.ActionInvocation;
-
-public class RequestContextImpl implements RequestContext {
-
-    com.opensymphony.xwork2.ActionContext xworkContext;
-    ActionContext actionContext;
-    Messages messages = new MessagesImpl();
-
-    public static final Callable<String> ILLEGAL_PROCEED = new Callable<String>() {
-        public String call() throws Exception {
-            throw new IllegalStateException();
-        }
-    };
-
-    public RequestContextImpl(com.opensymphony.xwork2.ActionContext xworkContext) {
-        this.xworkContext = xworkContext;
-    }
-
-    public ActionContext getActionContext() {
-        return actionContext;
-    }
-
-    public Object getAction() {
-        return getActionContext().getAction();
-    }
-
-    void setActionContext(ActionContext actionContext) {
-        this.actionContext = actionContext;
-    }
-
-    public Map<String, String[]> getParameterMap() {
-        return xworkContext.getParameters();
-    }
-
-    Map<String, Object> attributeMap;
-
-    public Map<String, Object> getAttributeMap() {
-        if (attributeMap == null) {
-            attributeMap = new RequestMap(getServletRequest());
-        }
-        return attributeMap;
-    }
-
-    public Map<String, Object> getSessionMap() {
-        return xworkContext.getSession();
-    }
-
-    public Map<String, Object> getApplicationMap() {
-        return xworkContext.getApplication();
-    }
-
-    public List<Cookie> findCookiesForName(String name) {
-        List<Cookie> cookies = new ArrayList<Cookie>();
-        for (Cookie cookie : getServletRequest().getCookies())
-            if (name.equals(cookie.getName()))
-                cookies.add(cookie);
-
-        return cookies;
-   }
-
-    public Locale getLocale() {
-        return xworkContext.getLocale();
-    }
-
-    public void setLocale(Locale locale) {
-        xworkContext.setLocale(locale);
-    }
-
-    public Messages getMessages() {
-        return messages;
-    }
-
-    public HttpServletRequest getServletRequest() {
-        return (HttpServletRequest) xworkContext.get(HTTP_REQUEST);
-    }
-
-    public HttpServletResponse getServletResponse() {
-        return (HttpServletResponse) xworkContext.get(HTTP_RESPONSE);
-    }
-
-    public ServletContext getServletContext() {
-        return (ServletContext) xworkContext.get(SERVLET_CONTEXT);
-    }
-
-    ValueStack valueStack;
-
-    public ValueStack getValueStack() {
-        if (valueStack == null) {
-            valueStack = new ValueStackAdapter(xworkContext.getValueStack());
-        }
-        return valueStack;
-    }
-
-    Callable<String> proceed = ILLEGAL_PROCEED;
-
-    public String proceed() throws Exception {
-        return proceed.call();
-    }
-
-    public void setProceed(Callable<String> proceed) {
-        this.proceed = proceed;
-    }
-
-    public Callable<String> getProceed() {
-        return proceed;
-    }
-
-    static ThreadLocal<Object[]> threadLocalRequestContext = new ThreadLocal<Object[]>() {
-        protected RequestContextImpl[] initialValue() {
-            return new RequestContextImpl[1];
-        }
-    };
-
-    /**
-     * Creates RequestContext if necessary. Always creates a new ActionContext and restores an existing ActionContext
-     * when finished.
-     */
-    public static String callInContext(ActionInvocation invocation, Callable<String> callable)
-            throws Exception {
-        RequestContextImpl[] reference = (RequestContextImpl[])threadLocalRequestContext.get();
-
-        if (reference[0] == null) {
-            // Initial invocation.
-            reference[0] = new RequestContextImpl(invocation.getInvocationContext());
-            reference[0].setActionContext(new ActionContextImpl(invocation));
-            try {
-                return callable.call();
-            } finally {
-                reference[0] = null;
-            }
-        } else {
-            // Nested invocation.
-            RequestContextImpl requestContext = reference[0];
-            ActionContext previous = requestContext.getActionContext();
-            requestContext.setActionContext(new ActionContextImpl(invocation));
-            try {
-                return callable.call();
-            } finally {
-                requestContext.setActionContext(previous);
-            }
-        }
-    }
-
-    public static RequestContextImpl get() {
-        RequestContextImpl requestContext = ((RequestContextImpl[])threadLocalRequestContext.get())[0];
-
-        if (requestContext == null)
-            throw new IllegalStateException("RequestContext has not been created.");
-
-        return requestContext;
-    }
-}
diff --git a/core/src/main/java/org/apache/struts2/impl/ResultAdapter.java b/core/src/main/java/org/apache/struts2/impl/ResultAdapter.java
deleted file mode 100644
index 85e9107..0000000
--- a/core/src/main/java/org/apache/struts2/impl/ResultAdapter.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-// Copyright 2006 Google Inc. All Rights Reserved.
-
-package org.apache.struts2.impl;
-
-import com.opensymphony.xwork2.ActionInvocation;
-import com.opensymphony.xwork2.Result;
-
-public class ResultAdapter implements Result {
-
-    private static final long serialVersionUID = -5107033078266553554L;
-    final org.apache.struts2.spi.Result delegate;
-
-    public ResultAdapter(org.apache.struts2.spi.Result delegate) {
-        this.delegate = delegate;
-    }
-
-    public void execute(ActionInvocation invocation) throws Exception {
-        delegate.execute(RequestContextImpl.get());
-    }
-}
diff --git a/core/src/main/java/org/apache/struts2/impl/StrutsActionProxy.java b/core/src/main/java/org/apache/struts2/impl/StrutsActionProxy.java
index 66fcd57..252b368 100644
--- a/core/src/main/java/org/apache/struts2/impl/StrutsActionProxy.java
+++ b/core/src/main/java/org/apache/struts2/impl/StrutsActionProxy.java
@@ -22,12 +22,11 @@
 
 package org.apache.struts2.impl;
 
-import java.util.Map;
-import java.util.concurrent.Callable;
-
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.DefaultActionProxy;
 
+import java.util.Map;
+
 public class StrutsActionProxy extends DefaultActionProxy {
 
     private static final long serialVersionUID = -2434901249671934080L;
@@ -41,11 +40,14 @@
         ActionContext previous = ActionContext.getContext();
         ActionContext.setContext(invocation.getInvocationContext());
         try {
-            return RequestContextImpl.callInContext(invocation, new Callable<String>() {
-                public String call() throws Exception {
-                    return invocation.invoke();
-                }
-            });
+// This is for the new API:
+//            return RequestContextImpl.callInContext(invocation, new Callable<String>() {
+//                public String call() throws Exception {
+//                    return invocation.invoke();
+//                }
+//            });
+            
+            return invocation.invoke();
         } finally {
             if (cleanupContext)
                 ActionContext.setContext(previous);
diff --git a/core/src/main/java/org/apache/struts2/impl/StrutsObjectFactory.java b/core/src/main/java/org/apache/struts2/impl/StrutsObjectFactory.java
index f78d1fb..9ffb645 100644
--- a/core/src/main/java/org/apache/struts2/impl/StrutsObjectFactory.java
+++ b/core/src/main/java/org/apache/struts2/impl/StrutsObjectFactory.java
@@ -22,9 +22,6 @@
 
 package org.apache.struts2.impl;
 
-import java.util.HashMap;
-import java.util.Map;
-
 import com.opensymphony.xwork2.ObjectFactory;
 import com.opensymphony.xwork2.Result;
 import com.opensymphony.xwork2.config.ConfigurationException;
@@ -33,6 +30,9 @@
 import com.opensymphony.xwork2.interceptor.Interceptor;
 import com.opensymphony.xwork2.util.OgnlUtil;
 
+import java.util.HashMap;
+import java.util.Map;
+
 public class StrutsObjectFactory extends ObjectFactory {
 
     public Interceptor buildInterceptor(InterceptorConfig interceptorConfig, Map refParams)
@@ -59,8 +59,9 @@
                 return interceptor;
             }
 
-            if (o instanceof org.apache.struts2.spi.Interceptor)
-                return new InterceptorAdapter((org.apache.struts2.spi.Interceptor) o);
+// This is for the new API:
+//            if (o instanceof org.apache.struts2.spi.Interceptor)
+//                return new InterceptorAdapter((org.apache.struts2.spi.Interceptor) o);
 
             throw new ConfigurationException(
                     "Class [" + className + "] does not implement Interceptor", interceptorConfig);
@@ -96,8 +97,9 @@
         if (result instanceof Result)
             return (Result) result;
 
-        if (result instanceof org.apache.struts2.spi.Result)
-            return new ResultAdapter((org.apache.struts2.spi.Result) result);
+// This is for the new API:
+//        if (result instanceof org.apache.struts2.spi.Result)
+//            return new ResultAdapter((org.apache.struts2.spi.Result) result);
 
         throw new ConfigurationException(result.getClass().getName() + " does not implement Result.");
     }
diff --git a/core/src/main/java/org/apache/struts2/impl/ValueStackAdapter.java b/core/src/main/java/org/apache/struts2/impl/ValueStackAdapter.java
deleted file mode 100644
index ae239cf..0000000
--- a/core/src/main/java/org/apache/struts2/impl/ValueStackAdapter.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-// Copyright 2006 Google Inc. All Rights Reserved.
-
-package org.apache.struts2.impl;
-
-import java.util.Iterator;
-
-import org.apache.struts2.spi.ValueStack;
-
-import com.opensymphony.xwork2.util.ValueStackFactory;
-
-public class ValueStackAdapter implements ValueStack {
-
-    final com.opensymphony.xwork2.util.ValueStack delegate;
-
-    public ValueStackAdapter(com.opensymphony.xwork2.util.ValueStack delegate) {
-        this.delegate = delegate;
-    }
-
-    public Object peek() {
-        return delegate.peek();
-    }
-
-    public Object pop() {
-        return delegate.pop();
-    }
-
-    public void push(Object o) {
-        delegate.push(o);
-    }
-
-    public ValueStack clone() {
-        return new ValueStackAdapter(ValueStackFactory.getFactory().createValueStack(delegate));
-    }
-
-    public Object get(String expr) {
-        return delegate.findValue(expr);
-    }
-
-    public <T> T get(String expr, Class<T> requiredType) {
-        return (T) delegate.findValue(expr, requiredType);
-    }
-
-    public String getString(String expr) {
-        return delegate.findString(expr);
-    }
-
-    public void set(String expr, Object o) {
-        delegate.set(expr, o);
-    }
-
-    public int size() {
-        return delegate.size();
-    }
-
-    public Iterator<Object> iterator() {
-        return delegate.getRoot().iterator();
-    }
-}
\ No newline at end of file
diff --git a/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
new file mode 100644
index 0000000..a693ce7
--- /dev/null
+++ b/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java
@@ -0,0 +1,277 @@
+/*
+ * $Id: $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+package org.apache.struts2.interceptor;
+
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Set;
+
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import org.apache.struts2.ServletActionContext;
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.ActionInvocation;
+import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
+import com.opensymphony.xwork2.util.ValueStack;
+import com.opensymphony.xwork2.util.TextParseUtil;
+
+/**
+ * <!-- START SNIPPET: description -->
+ *
+ * The aim of this interceptor is to set values in the stack/action based on cookie name/value
+ * of interest. <p/>
+ *
+ * If an asterik is present in cookiesName parameter, it will be assume that
+ * all cookies name are to be injected into struts' action, even though
+ * cookiesName is comma-separated by other values, eg (cookie1,*,cookie2). <p/>
+ *
+ * If cookiesName is left empty it will assume that no cookie will be injected
+ * into Struts' action. <p/>
+ *
+ * If an asterik is present in cookiesValue parameter, it will assume that all
+ * cookies name irrespective of its value will be injected into Struts' action so
+ * long as the cookie name matches those specified in cookiesName parameter.<p/>
+ *
+ * If cookiesValue is left empty it will assume that all cookie that match the cookieName
+ * parameter will be injected into Struts' action.<p/>
+ *
+ * The action could implements {@link CookiesAware} in order to have a {@link Map}
+ * of filtered cookies set into it. <p/>
+ *
+ * <!-- END SNIPPET: description -->
+ *
+ *
+ * <!-- START SNIPPET: parameters -->
+ *
+ * <ul>
+ *      <li>cookiesName (mandatory) - Name of cookies to be injected into the action. If more
+ *                                                                 than one cookie name is desired it could be comma-separated.
+ *                                                                 If all cookies name is desired, it could simply be *, an asterik.
+ *                                                                 When many cookies name are comma-separated either of the cookie
+ *                                                        that match the name in the comma-separated list will be qualified.</li>
+ *     <li>cookiesValue (mandatory) - Value of cookies that if its name matches cookieName attribute
+ *                                                         and its value matched this, will be injected into Struts'
+ *                                                         action. If more than one cookie name is desired it could be
+ *                                                         comma-separated. If left empty, it will assume any value would
+ *                                                         be ok. If more than one value is specified (comma-separated)
+ *                                                         it will assume a match if either value is matched.
+ * </ul>
+ *
+ * <!-- END SNIPPET: parameters -->
+ *
+ *
+ * <!-- START SNIPPET: extending -->
+ *
+ * <ul>
+ *      populateCookieValueIntoStack - this method will decide if this cookie value is qualified to be
+ *                                                                                                         populated into the value stack (hence into the action itself)
+ *      injectIntoCookiesAwareAction - this method will inject selected cookies (as a java.util.Map) into
+ *                                                                                                        action that implements {@link CookiesAware}.
+ * </ul>
+ *
+ * <!-- END SNIPPET: extending -->
+ *
+ * <pre>
+ * <!-- START SNIPPET: example -->
+ *
+ * &lt;!--
+ *   This example will inject cookies named either 'cookie1' or 'cookie2' whose
+ *   value could be either 'cookie1value' or 'cookie2value' into Struts' action.
+ * --&gt;
+ * &lt;action ... &gt;
+ *    &lt;interceptor-ref name="cookie"&gt;
+ *        &lt;param name="cookiesName"&gt;cookie1, cookie2&lt;/param&gt;
+ *        &lt;param name="cookiesValue"&gt;cookie1value, cookie2value&lt;/param&gt;
+ *    &lt;/interceptor-ref&gt;
+ *    ....
+ * &lt;/action&gt;
+ *
+ *
+ * &lt;!--
+ *      This example will inject cookies named either 'cookie1' or 'cookie2'
+ *     regardless of their value into Struts' action.
+ * --&gt;
+ * &lt;action ... &gt;
+ *   &lt;interceptor-ref name="cookie"&gt;
+ *      &lt;param name="cookiesName"&gt;cookie1, cookie2&lt;/param&gt;
+ *      &lt;param name="cookiesValue"&gt;*&lt;/param&gt;
+ *   &lt;interceptor-ref&gt;
+ *   ...
+ * &lt;/action&gt;
+ *
+ *
+ * &lt;!--
+ *      This example will inject cookies named either 'cookie1' with value
+ *      'cookie1value' or 'cookie2' with value 'cookie2value' into Struts'
+ *      action.
+ * --&gt;
+ * &lt;action ... &gt;
+ *   &lt;interceptor-ref name="cookie"&gt;
+ *      &lt;param name="cookiesName"&gt;cookie1&lt;/param&gt;
+ *      &lt;param name="cookiesValue"&gt;cookie1value&lt;/param&gt;
+ *   &lt;/interceptor-ref&gt;
+ *   &lt;interceptor-ref name="cookie"&gt;
+ *      &lt;param name="cookiesName"&lt;cookie2&lt;/param&gt;
+ *     &lt;param name="cookiesValue"&gt;cookie2value&lt;/param&gt;
+ *   &lt;/interceptor-ref&gt;
+ *   ....
+ * &lt;/action&gt;
+ *
+ * &lt;!--
+ *    This example will inject any cookies regardless of its value into
+ *    Struts' action.
+ *  --&gt;
+ * &lt;action ... &gt;
+ *   &lt;interceptor-ref name="cookie"&gt;
+ *      &lt;param name="cookiesName"&gt;*&lt;/param&gt;
+ *      &lt;param name="cookiesValue"&gt;*&lt;/param&gt;
+ *   &lt;/interceptor-ref&gt;
+ *    ...
+ * &lt;/action&gt;
+ *
+ * <!-- END SNIPPET: example -->
+ * </pre>
+ *
+ * @see CookiesAware
+ */
+public class CookieInterceptor extends AbstractInterceptor {
+
+    private static final long serialVersionUID = 4153142432948747305L;
+
+    private static final Log LOG = LogFactory.getLog(CookieInterceptor.class);
+
+    private Set cookiesNameSet = Collections.EMPTY_SET;
+    private Set cookiesValueSet = Collections.EMPTY_SET;
+
+    /**
+     * Set the <code>cookiesName</code> which if matche will allow the cookie
+     * to be injected into action, could be comma-separated string.
+     *
+     * @param cookiesName
+     */
+    public void setCookiesName(String cookiesName) {
+        if (cookiesName != null)
+            this.cookiesNameSet = TextParseUtil.commaDelimitedStringToSet(cookiesName);
+    }
+
+    /**
+     * Set the <code>cookiesValue</code> which if matched (together with matching
+     * cookiesName) will caused the cookie to be injected into action, could be
+     * comma-separated string.
+     *
+     * @param cookiesValue
+     */
+    public void setCookiesValue(String cookiesValue) {
+        if (cookiesValue != null)
+            this.cookiesValueSet = TextParseUtil.commaDelimitedStringToSet(cookiesValue);
+    }
+
+
+    public String intercept(ActionInvocation invocation) throws Exception {
+
+        if (LOG.isDebugEnabled())
+            LOG.debug("start interception");
+
+        final ValueStack stack = ActionContext.getContext().getValueStack();
+        HttpServletRequest request = ServletActionContext.getRequest();
+
+        // contains selected cookies
+        Map cookiesMap = new LinkedHashMap();
+
+        Cookie cookies[] = request.getCookies();
+        if (cookies != null) {
+            for (int a=0; a< cookies.length; a++) {
+                String name = cookies[a].getName();
+                String value = cookies[a].getValue();
+
+                if (cookiesNameSet.contains("*")) {
+                    if (LOG.isDebugEnabled())
+                        LOG.debug("contains cookie name [*] in configured cookies name set, cookie with name ["+name+"] with value ["+value+"] will be injected");
+                    populateCookieValueIntoStack(name, value, cookiesMap, stack);
+                }
+                else if (cookiesNameSet.contains(cookies[a].getName())) {
+                    populateCookieValueIntoStack(name, value, cookiesMap, stack);
+                }
+            }
+        }
+
+        injectIntoCookiesAwareAction(invocation.getAction(), cookiesMap);
+
+        return invocation.invoke();
+    }
+
+    /**
+     * Hook that populate cookie value into value stack (hence the action)
+     * if the criteria is satisfied (if the cookie value matches with those configured).
+     *
+     * @param cookieName
+     * @param cookieValue
+     * @param cookiesMap
+     * @param stack
+     */
+    protected void populateCookieValueIntoStack(String cookieName, String cookieValue, Map cookiesMap, ValueStack stack) {
+        if (cookiesValueSet.isEmpty() || cookiesValueSet.contains("*")) {
+            // If the interceptor is configured to accept any cookie value
+            // OR
+            // no cookiesValue is defined, so as long as the cookie name match
+            // we'll inject it into Struts' action
+            if (LOG.isDebugEnabled()) {
+                if (cookiesValueSet.isEmpty())
+                    LOG.debug("no cookie value is configured, cookie with name ["+cookieName+"] with value ["+cookieValue+"] will be injected");
+                else if (cookiesValueSet.contains("*"))
+                    LOG.debug("interceptor is configured to accept any value, cookie with name ["+cookieName+"] with value ["+cookieValue+"] will be injected");
+            }
+            cookiesMap.put(cookieName, cookieValue);
+            stack.setValue(cookieName, cookieValue);
+        }
+        else {
+            // if cookiesValues is specified, the cookie's value must match before we
+            // inject them into Struts' action
+            if (cookiesValueSet.contains(cookieValue)) {
+                if (LOG.isDebugEnabled())
+                    LOG.debug("both configured cookie name and value matched, cookie ["+cookieName+"] with value ["+cookieValue+"] will be injected");
+                cookiesMap.put(cookieName, cookieValue);
+                stack.setValue(cookieName, cookieValue);
+            }
+        }
+    }
+
+    /**
+     * Hook that set the <code>cookiesMap</code> into action that implements
+     * {@link CookiesAware}.
+     *
+     * @param action
+     * @param cookiesMap
+     */
+    protected void injectIntoCookiesAwareAction(Object action, Map cookiesMap) {
+        if (action instanceof CookiesAware) {
+            if (LOG.isDebugEnabled())
+                LOG.debug("action ["+action+"] implements CookiesAware, injecting cookies map ["+cookiesMap+"]");
+            ((CookiesAware)action).setCookiesMap(cookiesMap);
+        }
+    }
+
+}
diff --git a/api/src/main/java/org/apache/struts2/spi/Interceptor.java b/core/src/main/java/org/apache/struts2/interceptor/CookiesAware.java
similarity index 70%
rename from api/src/main/java/org/apache/struts2/spi/Interceptor.java
rename to core/src/main/java/org/apache/struts2/interceptor/CookiesAware.java
index 33cd847..43e05f9 100644
--- a/api/src/main/java/org/apache/struts2/spi/Interceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/CookiesAware.java
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * $Id: $
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,19 +18,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.spi;
+package org.apache.struts2.interceptor;
 
-/**
- * Intercepts an action request.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface Interceptor {
+import java.util.Map;
 
-    /**
-     * Intercepts an action request.
-     *
-     * @param requestContext current request context
-     */
-    String intercept(RequestContext requestContext) throws Exception;
+public interface CookiesAware {
+    void setCookiesMap(Map cookies);
 }
diff --git a/core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java
index 8f6e070..0e7229d 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java
@@ -193,12 +193,23 @@
         return new BackgroundProcess(name + "BackgroundThread", actionInvocation, threadPriority);
     }
 
+    /**
+     * Returns the name to associate the background process.  Override to change the way background processes
+     * are mapped to requests.
+     * 
+     * @param actionInvocation The action invocation
+     * @return the name of the background thread
+     */
+    protected String getBackgroundProcessName(ActionProxy proxy) {
+        return proxy.getActionName();
+    }
+    
     /* (non-Javadoc)
      * @see com.opensymphony.xwork2.interceptor.MethodFilterInterceptor#doIntercept(com.opensymphony.xwork2.ActionInvocation)
      */
     protected String doIntercept(ActionInvocation actionInvocation) throws Exception {
         ActionProxy proxy = actionInvocation.getProxy();
-        String name = proxy.getActionName();
+        String name = getBackgroundProcessName(proxy);
         ActionContext context = actionInvocation.getInvocationContext();
         Map session = context.getSession();
 
diff --git a/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java
index b80da89..c5f56fb 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/ScopeInterceptor.java
@@ -202,26 +202,30 @@
         super();
     }
 
+    // Since 2.0.7. Avoid null references on session serialization (WW-1803).
+    private static class NULLClass implements Serializable {
+      public String toString() {
+        return "NULL";
+      }
+      public boolean equals(Object obj) {
+        return obj == null || (obj instanceof NULLClass);
+      }
+    }
 
-    private static final Object NULL = new Serializable() {
-        public String toString() {
-            return "NULL";
-        }
-    };
+    private static final Object NULL = new NULLClass();
 
     private static final Object nullConvert(Object o) {
         if (o == null) {
             return NULL;
         }
 
-        if (o == NULL) {
+        if (o == NULL || NULL.equals(o)) {
             return null;
         }
 
         return o;
     }
 
-
     private static Map locks = new IdentityHashMap();
 
     static final void lock(Object o, ActionInvocation invocation) throws Exception {
diff --git a/core/src/main/java/org/apache/struts2/interceptor/SessionAware.java b/core/src/main/java/org/apache/struts2/interceptor/SessionAware.java
index 1b2f315..8cbc291 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/SessionAware.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/SessionAware.java
@@ -26,10 +26,10 @@
 /**
  * Actions that want access to the user's HTTP session should implement this interface.<p>
  * <p/>
- * This interface is only relevant if the Action is used in a servlet environment.<p>
+ * This will give them access to a Map where they can put objects that can be made available
+ * to subsequent requests.<p/>
  * <p/>
- * Note that using this interface makes the Action tied to a servlet environment, so it should be
- * avoided if possible since things like unit testing will become more difficult.
+ * Typical uses may be cached user data such as name, or a shopping cart.
  *
  */
 public interface SessionAware {
diff --git a/core/src/main/java/org/apache/struts2/interceptor/TokenSessionStoreInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/TokenSessionStoreInterceptor.java
index 4cf0a52..4f55d61 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/TokenSessionStoreInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/TokenSessionStoreInterceptor.java
@@ -23,6 +23,7 @@
 import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 
 import org.apache.struts2.ServletActionContext;
 import org.apache.struts2.util.InvocationSessionStore;
@@ -110,6 +111,7 @@
         ActionContext ac = invocation.getInvocationContext();
 
         HttpServletRequest request = (HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST);
+        HttpServletResponse response = (HttpServletResponse) ac.get(ServletActionContext.HTTP_RESPONSE); 
         String tokenName = TokenHelper.getTokenName();
         String token = TokenHelper.getToken(tokenName);
 
@@ -123,12 +125,18 @@
             if (savedInvocation != null) {
                 // set the valuestack to the request scope
                 ValueStack stack = savedInvocation.getStack();
+                Map context = stack.getContext();
                 request.setAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY, stack);
 
+                ActionContext savedContext = savedInvocation.getInvocationContext();
+                savedContext.getContextMap().put(ServletActionContext.HTTP_REQUEST, request);
+                savedContext.getContextMap().put(ServletActionContext.HTTP_RESPONSE, response);
                 Result result = savedInvocation.getResult();
 
                 if ((result != null) && (savedInvocation.getProxy().getExecuteResult())) {
-                    result.execute(savedInvocation);
+                    synchronized (context) {
+                        result.execute(savedInvocation);
+                    }
                 }
 
                 // turn off execution of this invocations result
diff --git a/core/src/main/java/org/apache/struts2/portlet/PortletActionConstants.java b/core/src/main/java/org/apache/struts2/portlet/PortletActionConstants.java
index f913cb1..ceb2e29 100644
--- a/core/src/main/java/org/apache/struts2/portlet/PortletActionConstants.java
+++ b/core/src/main/java/org/apache/struts2/portlet/PortletActionConstants.java
@@ -103,4 +103,24 @@
      * {@link org.apache.struts2.portlet.context.PortletActionContext}.
      */
     String DEFAULT_ACTION_FOR_MODE = "struts.portlet.defaultActionForMode";
+
+    /**
+     * Key for request attribute indicating if the action has been reset.
+     */
+    String ACTION_RESET = "struts.portlet.actionReset";
+
+    /**
+     * Key for session attribute indicating the location of the render direct action.
+     */
+    String RENDER_DIRECT_LOCATION = "struts.portlet.renderDirectLocation";
+
+    /**
+     * Session key where the value stack from the event phase is stored.
+     */
+    String STACK_FROM_EVENT_PHASE = "struts.portlet.valueStackFromEventPhase";
+
+    /**
+     * Default name of dispatcher servlet in web.xml
+     */
+    String DEFAULT_DISPATCHER_SERVLET_NAME = "Struts2PortletDispatcherServlet";
 }
diff --git a/core/src/main/java/org/apache/struts2/portlet/context/PortletActionContext.java b/core/src/main/java/org/apache/struts2/portlet/context/PortletActionContext.java
index 1a16862..d7481fb 100644
--- a/core/src/main/java/org/apache/struts2/portlet/context/PortletActionContext.java
+++ b/core/src/main/java/org/apache/struts2/portlet/context/PortletActionContext.java
@@ -22,16 +22,11 @@
 
 import java.util.Map;
 
-import javax.portlet.ActionRequest;
-import javax.portlet.ActionResponse;
-import javax.portlet.PortletConfig;
-import javax.portlet.PortletRequest;
-import javax.portlet.PortletResponse;
-import javax.portlet.RenderRequest;
-import javax.portlet.RenderResponse;
+import javax.portlet.*;
 
 import org.apache.struts2.dispatcher.mapper.ActionMapping;
 import org.apache.struts2.portlet.PortletActionConstants;
+import org.apache.struts2.StrutsStatics;
 
 import com.opensymphony.xwork2.ActionContext;
 
@@ -194,4 +189,12 @@
         return (Map)getContext().get(MODE_NAMESPACE_MAP);
     }
 
+    /**
+     * Get the portlet context.
+     * @return The portlet context.
+     */
+    public static PortletContext getPortletContext() {
+    	return (PortletContext)getContext().get(StrutsStatics.STRUTS_PORTLET_CONTEXT);
+    }
+
 }
diff --git a/core/src/main/java/org/apache/struts2/portlet/context/PreparatorServlet.java b/core/src/main/java/org/apache/struts2/portlet/context/PreparatorServlet.java
deleted file mode 100644
index 42a9951..0000000
--- a/core/src/main/java/org/apache/struts2/portlet/context/PreparatorServlet.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.portlet.context;
-
-import java.io.IOException;
-
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.struts2.StrutsStatics;
-
-import com.opensymphony.xwork2.ActionContext;
-
-/**
- * Since a portlet is not dispatched the same way as a servlet, the
- * {@link org.apache.struts2.ServletActionContext} is not immediately available, as it
- * depends on objects from the servlet API. However, the WW2 view implementations require access
- * to the objects in the {@link org.apache.struts2.ServletActionContext}, and this servlet
- * makes sure that these are available when the portlet actions are executing the render results.
- *
- */
-public class PreparatorServlet extends HttpServlet implements StrutsStatics {
-
-    private static final long serialVersionUID = 1853399729352984089L;
-
-    private final static Log LOG = LogFactory.getLog(PreparatorServlet.class);
-
-    /**
-     * Prepares the {@link org.apache.struts2.ServletActionContext} with the
-     * {@link ServletContext}, {@link HttpServletRequest} and {@link HttpServletResponse}.
-     */
-    public void service(HttpServletRequest servletRequest,
-            HttpServletResponse servletResponse) throws ServletException,
-            IOException {
-        LOG.debug("Preparing servlet objects for dispatch");
-        ServletContext ctx = getServletContext();
-        ActionContext.getContext().put(SERVLET_CONTEXT, ctx);
-        ActionContext.getContext().put(HTTP_REQUEST, servletRequest);
-        ActionContext.getContext().put(HTTP_RESPONSE, servletResponse);
-        LOG.debug("Preparation complete");
-    }
-
-}
diff --git a/core/src/main/java/org/apache/struts2/portlet/context/ServletContextHolderListener.java b/core/src/main/java/org/apache/struts2/portlet/context/ServletContextHolderListener.java
deleted file mode 100644
index 74e7994..0000000
--- a/core/src/main/java/org/apache/struts2/portlet/context/ServletContextHolderListener.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.portlet.context;
-
-import javax.servlet.ServletContext;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-
-/**
- * Some of the factory/managers (e.g. the ObjectFactory) need access to
- * the {@link org.apache.struts2.ServletActionContext} object when initializing.
- * This {@link javax.servlet.ServletContextListener} keeps a reference to the
- * {@link javax.servlet.ServletContext} and exposes it through a <code>public static</code>
- * method.
- *
- */
-public class ServletContextHolderListener implements ServletContextListener {
-
-    private static ServletContext context = null;
-
-    /**
-     * @return The current servlet context
-     */
-    public static ServletContext getServletContext() {
-        return context;
-    }
-
-    /**
-     * Stores the reference to the {@link ServletContext}.
-     *
-     * @see javax.servlet.ServletContextListener#contextInitialized(javax.servlet.ServletContextEvent)
-     */
-    public void contextInitialized(ServletContextEvent event) {
-        context = event.getServletContext();
-
-    }
-
-    /**
-     * @see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.ServletContextEvent)
-     */
-    public void contextDestroyed(ServletContextEvent event) {
-        context = null;
-    }
-
-}
diff --git a/core/src/main/java/org/apache/struts2/portlet/dispatcher/DirectRenderFromEventAction.java b/core/src/main/java/org/apache/struts2/portlet/dispatcher/DirectRenderFromEventAction.java
index 4028b56..7ecb004 100644
--- a/core/src/main/java/org/apache/struts2/portlet/dispatcher/DirectRenderFromEventAction.java
+++ b/core/src/main/java/org/apache/struts2/portlet/dispatcher/DirectRenderFromEventAction.java
@@ -23,6 +23,10 @@
 import com.opensymphony.xwork2.Action;
 
 import java.io.Serializable;
+import java.util.Map;
+
+import org.apache.struts2.interceptor.SessionAware;
+import org.apache.struts2.portlet.PortletActionConstants;
 
 /**
  * When a portlet is targetted for an <code>event</code>, the portlet will receive two
@@ -38,7 +42,7 @@
  * specifying this action and the location of the view, which then will be executed in the
  * following render request.
  */
-public class DirectRenderFromEventAction implements Action, Serializable {
+public class DirectRenderFromEventAction implements SessionAware, PortletActionConstants, Action, Serializable {
 
     private static final long serialVersionUID = -1814807772308405785L;
 
@@ -54,15 +58,6 @@
     }
 
     /**
-     * Set the location of the view.
-     *
-     * @param location The location to set.
-     */
-    public void setLocation(String location) {
-        this.location = location;
-    }
-
-    /**
      * Always return success.
      *
      * @return SUCCESS
@@ -70,4 +65,8 @@
     public String execute() throws Exception {
         return SUCCESS;
     }
+
+    public void setSession(Map session) {
+        location = (String)session.get(RENDER_DIRECT_LOCATION);
+    }
 }
diff --git a/core/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java b/core/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java
index 777cb09..00695ea 100644
--- a/core/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java
+++ b/core/src/main/java/org/apache/struts2/portlet/dispatcher/Jsr168Dispatcher.java
@@ -20,23 +20,14 @@
  */
 package org.apache.struts2.portlet.dispatcher;
 
-import java.io.IOException;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.portlet.ActionRequest;
-import javax.portlet.ActionResponse;
-import javax.portlet.GenericPortlet;
-import javax.portlet.PortletConfig;
-import javax.portlet.PortletException;
-import javax.portlet.PortletMode;
-import javax.portlet.PortletRequest;
-import javax.portlet.PortletResponse;
-import javax.portlet.RenderRequest;
-import javax.portlet.RenderResponse;
-
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.ActionProxy;
+import com.opensymphony.xwork2.ActionProxyFactory;
+import com.opensymphony.xwork2.config.ConfigurationException;
+import com.opensymphony.xwork2.inject.Container;
+import com.opensymphony.xwork2.util.FileManager;
+import com.opensymphony.xwork2.util.LocalizedTextUtil;
+import com.opensymphony.xwork2.util.TextUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.struts2.StrutsConstants;
@@ -53,19 +44,20 @@
 import org.apache.struts2.portlet.PortletRequestMap;
 import org.apache.struts2.portlet.PortletSessionMap;
 import org.apache.struts2.portlet.context.PortletActionContext;
-import org.apache.struts2.portlet.context.ServletContextHolderListener;
-import org.apache.struts2.portlet.util.HttpServletRequestMock;
+import org.apache.struts2.portlet.servlet.PortletServletContext;
+import org.apache.struts2.portlet.servlet.PortletServletRequest;
+import org.apache.struts2.portlet.servlet.PortletServletResponse;
 import org.apache.struts2.util.AttributeMap;
 
-import com.opensymphony.xwork2.util.FileManager;
-import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.ActionProxy;
-import com.opensymphony.xwork2.ActionProxyFactory;
-import com.opensymphony.xwork2.config.ConfigurationException;
-import com.opensymphony.xwork2.inject.Container;
-import com.opensymphony.xwork2.util.LocalizedTextUtil;
-import com.opensymphony.xwork2.util.TextUtils;
+import javax.portlet.*;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
 
 /**
  * <!-- START SNIPPET: javadoc -->
@@ -76,7 +68,7 @@
  * </p>
  * <!-- END SNIPPET: javadoc -->
  *
- * @author <a href="nils-helge.garli@bekk.no">Nils-Helge Garli </a>
+ * @author Nils-Helge Garli
  * @author Rainer Hermanns
  *
  * <p><b>Init parameters</b></p>
@@ -187,9 +179,10 @@
             String value = cfg.getInitParameter(name);
             params.put(name, value);
         }
-        
+
+        // TODO: CHECK IF NEEDED (RG Portlet Refactoring Backports)
         Dispatcher.setPortletSupportActive(true);
-        dispatcherUtils = new Dispatcher(ServletContextHolderListener.getServletContext(), params);
+        dispatcherUtils = new Dispatcher(new PortletServletContext(cfg.getPortletContext()), params);
         dispatcherUtils.init();
         
         // For testability
@@ -300,6 +293,7 @@
         LOG.debug("Entering render");
         resetActionContext();
         response.setTitle(getTitle(request));
+        if(!request.getWindowState().equals(WindowState.MINIMIZED)) {
         try {
             // Check to see if an event set the render to be included directly
             serviceAction(request, response, getActionMapping(request),
@@ -310,6 +304,7 @@
         } finally {
             resetActionContext();
         }
+	}
     }
 
     /**
@@ -336,11 +331,22 @@
      */
     public HashMap createContextMap(Map requestMap, Map parameterMap,
             Map sessionMap, Map applicationMap, PortletRequest request,
-            PortletResponse response, PortletConfig portletConfig, Integer phase) {
+            PortletResponse response, PortletConfig portletConfig, Integer phase) throws IOException {
 
         // TODO Must put http request/response objects into map for use with
         // ServletActionContext
+        HttpServletResponse dummyResponse = new PortletServletResponse(response);
+        HttpServletRequest dummyRequest = new PortletServletRequest(request, getPortletContext());
+        ServletContext dummyServletContext = new PortletServletContext(getPortletContext());
+        if(EVENT_PHASE.equals(phase)) {
+            dummyRequest = dispatcherUtils.wrapRequest(dummyRequest, dummyServletContext);
+        }
         HashMap<String,Object> extraContext = new HashMap<String,Object>();
+        // The dummy servlet objects. Eases reuse of existing interceptors that uses the servlet objects.
+        extraContext.put(StrutsStatics.HTTP_REQUEST, dummyRequest);
+        extraContext.put(StrutsStatics.HTTP_RESPONSE, dummyResponse);
+        extraContext.put(StrutsStatics.SERVLET_CONTEXT, dummyServletContext);
+        // End dummy servlet objects
         extraContext.put(ActionContext.PARAMETERS, parameterMap);
         extraContext.put(ActionContext.SESSION, sessionMap);
         extraContext.put(ActionContext.APPLICATION, applicationMap);
@@ -397,13 +403,13 @@
             Map sessionMap, Map applicationMap, String portletNamespace,
             Integer phase) throws PortletException {
         LOG.debug("serviceAction");
-        HashMap extraContext = createContextMap(requestMap, parameterMap,
-                sessionMap, applicationMap, request, response,
-                getPortletConfig(), phase);
         String actionName = mapping.getName();
         String namespace = mapping.getNamespace();
         Dispatcher.setInstance(dispatcherUtils);
         try {
+            HashMap extraContext = createContextMap(requestMap, parameterMap,
+                    sessionMap, applicationMap, request, response,
+                    getPortletConfig(), phase);
             LOG.debug("Creating action proxy for name = " + actionName
                     + ", namespace = " + namespace);
             ActionProxy proxy = factory.createActionProxy(namespace,
@@ -411,27 +417,7 @@
             proxy.setMethod(mapping.getMethod());
             request.setAttribute("struts.valueStack", proxy.getInvocation()
                     .getStack());
-            if (PortletActionConstants.RENDER_PHASE.equals(phase)
-                    && TextUtils.stringSet(request
-                            .getParameter(EVENT_ACTION))) {
-
-                ActionProxy action = (ActionProxy) request.getPortletSession()
-                        .getAttribute(EVENT_ACTION);
-                if (action != null) {
-                    ValueStack stack = proxy.getInvocation().getStack();
-                    Object top = stack.pop();
-                    stack.push(action.getInvocation().getAction());
-                    stack.push(top);
-                }
-            }
             proxy.execute();
-            if (PortletActionConstants.EVENT_PHASE.equals(phase)) {
-                // Store the executed action in the session for retrieval in the
-                // render phase.
-                ActionResponse actionResp = (ActionResponse) response;
-                request.getPortletSession().setAttribute(EVENT_ACTION, proxy);
-                actionResp.setRenderParameter(EVENT_ACTION, "true");
-            }
         } catch (ConfigurationException e) {
             LOG.error("Could not find action", e);
             throw new PortletException("Could not find action " + actionName, e);
@@ -467,20 +453,18 @@
         ActionMapping mapping = null;
         String actionPath = null;
         if (resetAction(request)) {
-            mapping = (ActionMapping) actionMap.get(request.getPortletMode());
+            mapping = actionMap.get(request.getPortletMode());
         } else {
             actionPath = request.getParameter(ACTION_PARAM);
             if (!TextUtils.stringSet(actionPath)) {
-                mapping = (ActionMapping) actionMap.get(request
+                mapping = actionMap.get(request
                         .getPortletMode());
             } else {
                 
                 // Use the usual action mapper, but it is expecting an action extension
                 // on the uri, so we add the default one, which should be ok as the
                 // portlet is a portlet first, a servlet second
-                HttpServletRequestMock httpRequest = new HttpServletRequestMock()
-                    .setServletPath(actionPath + ".action")
-                    .setParameterMap(request.getParameterMap());
+                PortletServletRequest httpRequest = new PortletServletRequest(request, getPortletContext());
                 mapping = actionMapper.getMapping(httpRequest, dispatcherUtils.getConfigurationManager());
             }
         }
@@ -584,6 +568,12 @@
                 reset = true;
             }
         }
+        if(reset) {
+        	request.setAttribute(ACTION_RESET, Boolean.TRUE);
+        }
+        else {
+        	request.setAttribute(ACTION_RESET, Boolean.FALSE);
+        }
         return reset;
     }
 
diff --git a/core/src/main/java/org/apache/struts2/portlet/interceptor/PortletAwareInterceptor.java b/core/src/main/java/org/apache/struts2/portlet/interceptor/PortletAwareInterceptor.java
new file mode 100644
index 0000000..44b6184
--- /dev/null
+++ b/core/src/main/java/org/apache/struts2/portlet/interceptor/PortletAwareInterceptor.java
@@ -0,0 +1,84 @@
+/*

+ * $Id: $

+ *

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you 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.

+ */

+package org.apache.struts2.portlet.interceptor;

+

+import javax.portlet.PortletContext;

+import javax.portlet.PortletRequest;

+import javax.portlet.PortletResponse;

+

+import org.apache.commons.logging.Log;

+import org.apache.commons.logging.LogFactory;

+import org.apache.struts2.StrutsStatics;

+import org.apache.struts2.interceptor.PrincipalAware;

+import org.apache.struts2.portlet.PortletActionConstants;

+

+import com.opensymphony.xwork2.ActionContext;

+import com.opensymphony.xwork2.ActionInvocation;

+import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

+

+public class PortletAwareInterceptor extends AbstractInterceptor implements PortletActionConstants, StrutsStatics {

+

+	private static final long serialVersionUID = 2476509721059587700L;

+	

+	private static final Log LOG = LogFactory.getLog(PortletAwareInterceptor.class);

+

+	/**

+     * Sets action properties based on the interfaces an action implements. Things like application properties,

+     * parameters, session attributes, etc are set based on the implementing interface.

+     *

+     * @param invocation an encapsulation of the action execution state.

+     * @throws Exception if an error occurs when setting action properties.

+     */

+    public String intercept(ActionInvocation invocation) throws Exception {

+        final Object action = invocation.getAction();

+        final ActionContext context = invocation.getInvocationContext();

+

+        if (action instanceof PortletRequestAware) {

+            PortletRequest request = (PortletRequest) context.get(REQUEST);

+            ((PortletRequestAware) action).setPortletRequest(request);

+        }

+

+        if (action instanceof PortletResponseAware) {

+            PortletResponse response = (PortletResponse) context.get(RESPONSE);

+            ((PortletResponseAware) action).setPortletResponse(response);

+        }

+        if (action instanceof PrincipalAware) {

+            PortletRequest request = (PortletRequest) context.get(REQUEST);

+            ((PrincipalAware) action).setPrincipalProxy(new PortletPrincipalProxy(request));

+        }

+        if (action instanceof PortletContextAware) {

+            PortletContext portletContext = (PortletContext) context.get(STRUTS_PORTLET_CONTEXT);

+            ((PortletContextAware) action).setPortletContext(portletContext);

+        }

+        if (action instanceof PortletPreferencesAware) {

+        	PortletRequest request = (PortletRequest) context.get(REQUEST);

+            

+            // Check if running in a servlet environment

+            if (request == null) {

+                LOG.warn("This portlet preferences implementation should only be used during development");

+                ((PortletPreferencesAware)action).setPortletPreferences(new ServletPortletPreferences(ActionContext.getContext().getSession()));

+            } else {

+            	((PortletPreferencesAware)action).setPortletPreferences(request.getPreferences());

+            }

+        }

+        return invocation.invoke();

+    }

+}

diff --git a/api/src/main/java/org/apache/struts2/spi/Interceptor.java b/core/src/main/java/org/apache/struts2/portlet/interceptor/PortletContextAware.java
similarity index 69%
copy from api/src/main/java/org/apache/struts2/spi/Interceptor.java
copy to core/src/main/java/org/apache/struts2/portlet/interceptor/PortletContextAware.java
index 33cd847..dd42956 100644
--- a/api/src/main/java/org/apache/struts2/spi/Interceptor.java
+++ b/core/src/main/java/org/apache/struts2/portlet/interceptor/PortletContextAware.java
@@ -1,36 +1,29 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.spi;
-
-/**
- * Intercepts an action request.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface Interceptor {
-
-    /**
-     * Intercepts an action request.
-     *
-     * @param requestContext current request context
-     */
-    String intercept(RequestContext requestContext) throws Exception;
-}
+/*

+ * $Id: $

+ *

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you 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.

+ */

+package org.apache.struts2.portlet.interceptor;

+

+import javax.portlet.PortletContext;

+

+public interface PortletContextAware {

+

+	void setPortletContext(PortletContext portletContext);

+

+}

diff --git a/core/src/main/java/org/apache/struts2/portlet/interceptor/PortletPrincipalProxy.java b/core/src/main/java/org/apache/struts2/portlet/interceptor/PortletPrincipalProxy.java
index 9ea845f..c87bf80 100644
--- a/core/src/main/java/org/apache/struts2/portlet/interceptor/PortletPrincipalProxy.java
+++ b/core/src/main/java/org/apache/struts2/portlet/interceptor/PortletPrincipalProxy.java
@@ -1,3 +1,23 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
 package org.apache.struts2.portlet.interceptor;
 
 import org.apache.struts2.interceptor.PrincipalProxy;
diff --git a/api/src/main/java/org/apache/struts2/spi/Interceptor.java b/core/src/main/java/org/apache/struts2/portlet/interceptor/PortletRequestAware.java
similarity index 69%
copy from api/src/main/java/org/apache/struts2/spi/Interceptor.java
copy to core/src/main/java/org/apache/struts2/portlet/interceptor/PortletRequestAware.java
index 33cd847..5fbd889 100644
--- a/api/src/main/java/org/apache/struts2/spi/Interceptor.java
+++ b/core/src/main/java/org/apache/struts2/portlet/interceptor/PortletRequestAware.java
@@ -1,36 +1,29 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.spi;
-
-/**
- * Intercepts an action request.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface Interceptor {
-
-    /**
-     * Intercepts an action request.
-     *
-     * @param requestContext current request context
-     */
-    String intercept(RequestContext requestContext) throws Exception;
-}
+/*

+ * $Id: $

+ *

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you 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.

+ */

+package org.apache.struts2.portlet.interceptor;

+

+import javax.portlet.PortletRequest;

+

+public interface PortletRequestAware {

+

+	void setPortletRequest(PortletRequest request);

+

+}

diff --git a/api/src/main/java/org/apache/struts2/spi/Interceptor.java b/core/src/main/java/org/apache/struts2/portlet/interceptor/PortletResponseAware.java
similarity index 69%
copy from api/src/main/java/org/apache/struts2/spi/Interceptor.java
copy to core/src/main/java/org/apache/struts2/portlet/interceptor/PortletResponseAware.java
index 33cd847..a5aadb9 100644
--- a/api/src/main/java/org/apache/struts2/spi/Interceptor.java
+++ b/core/src/main/java/org/apache/struts2/portlet/interceptor/PortletResponseAware.java
@@ -1,36 +1,29 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.spi;
-
-/**
- * Intercepts an action request.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface Interceptor {
-
-    /**
-     * Intercepts an action request.
-     *
-     * @param requestContext current request context
-     */
-    String intercept(RequestContext requestContext) throws Exception;
-}
+/*

+ * $Id: $

+ *

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you 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.

+ */

+package org.apache.struts2.portlet.interceptor;

+

+import javax.portlet.PortletResponse;

+

+public interface PortletResponseAware {

+

+	void setPortletResponse(PortletResponse response);

+

+}

diff --git a/core/src/main/java/org/apache/struts2/portlet/interceptor/PortletStateInterceptor.java b/core/src/main/java/org/apache/struts2/portlet/interceptor/PortletStateInterceptor.java
new file mode 100644
index 0000000..f3ebf42
--- /dev/null
+++ b/core/src/main/java/org/apache/struts2/portlet/interceptor/PortletStateInterceptor.java
@@ -0,0 +1,95 @@
+/*

+ * $Id: $

+ *

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you 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.

+ */

+package org.apache.struts2.portlet.interceptor;

+

+import com.opensymphony.xwork2.ActionInvocation;

+import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

+import com.opensymphony.xwork2.util.CompoundRoot;

+import com.opensymphony.xwork2.util.TextUtils;

+import com.opensymphony.xwork2.util.ValueStack;

+import org.apache.commons.logging.Log;

+import org.apache.commons.logging.LogFactory;

+import org.apache.struts2.portlet.PortletActionConstants;

+import org.apache.struts2.portlet.dispatcher.DirectRenderFromEventAction;

+

+import javax.portlet.ActionResponse;

+import javax.portlet.RenderRequest;

+import java.util.Map;

+

+public class PortletStateInterceptor extends AbstractInterceptor implements PortletActionConstants {

+

+	private final static Log LOG = LogFactory.getLog(PortletStateInterceptor.class);

+

+	private static final long serialVersionUID = 6138452063353911784L;

+

+	@Override

+	public String intercept(ActionInvocation invocation) throws Exception {

+		Integer phase = (Integer) invocation.getInvocationContext().get(PHASE);

+		if (RENDER_PHASE.equals(phase)) {

+			restoreStack(invocation);

+			return invocation.invoke();

+		} else if (EVENT_PHASE.equals(phase)) {

+			try {

+				return invocation.invoke();

+			} finally {

+				saveStack(invocation);

+			}

+		} else {

+			return invocation.invoke();

+		}

+	}

+

+	@SuppressWarnings("unchecked")

+	private void saveStack(ActionInvocation invocation) {

+		Map session = invocation.getInvocationContext().getSession();

+		session.put(STACK_FROM_EVENT_PHASE, invocation.getStack());

+		ActionResponse actionResponse = (ActionResponse) invocation.getInvocationContext().get(RESPONSE);

+		actionResponse.setRenderParameter(EVENT_ACTION, "true");

+	}

+

+	@SuppressWarnings("unchecked")

+	private void restoreStack(ActionInvocation invocation) {

+		RenderRequest request = (RenderRequest) invocation.getInvocationContext().get(REQUEST);

+		if (TextUtils.stringSet(request.getParameter(EVENT_ACTION))) {

+			Map session = invocation.getInvocationContext().getSession();

+			if(!isProperPrg(invocation)) {

+				LOG.debug("Restoring value stack from event phase");

+				ValueStack oldStack = (ValueStack) invocation.getInvocationContext().getSession().get(

+				STACK_FROM_EVENT_PHASE);

+				if (oldStack != null) {

+					CompoundRoot oldRoot = oldStack.getRoot();

+					ValueStack currentStack = invocation.getStack();

+					CompoundRoot root = currentStack.getRoot();

+					root.addAll(oldRoot);

+					LOG.debug("Restored stack");

+				}

+			}

+			else {

+				LOG.debug("Won't restore stack from event phase since it's a proper PRG request");

+			}

+		}

+	}

+

+	private boolean isProperPrg(ActionInvocation invocation) {

+		return !(invocation.getAction() instanceof DirectRenderFromEventAction);

+	}

+

+}

diff --git a/core/src/main/java/org/apache/struts2/portlet/result/PortletActionRedirectResult.java b/core/src/main/java/org/apache/struts2/portlet/result/PortletActionRedirectResult.java
new file mode 100644
index 0000000..4aff250
--- /dev/null
+++ b/core/src/main/java/org/apache/struts2/portlet/result/PortletActionRedirectResult.java
@@ -0,0 +1,238 @@
+/*

+ * $Id: $

+ *

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you 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.

+ */

+package org.apache.struts2.portlet.result;

+

+import java.util.Arrays;

+import java.util.Iterator;

+import java.util.LinkedHashMap;

+import java.util.List;

+import java.util.Map;

+

+import org.apache.struts2.dispatcher.ServletActionRedirectResult;

+import org.apache.struts2.dispatcher.mapper.ActionMapper;

+import org.apache.struts2.dispatcher.mapper.ActionMapping;

+import org.apache.struts2.views.util.UrlHelper;

+

+import com.opensymphony.xwork2.ActionInvocation;

+import com.opensymphony.xwork2.config.entities.ResultConfig;

+import com.opensymphony.xwork2.inject.Inject;

+

+/**

+ *

+ * Portlet modification of the {@link ServletActionRedirectResult}.

+ *

+ * <!-- START SNIPPET: description -->

+

+ * This result uses the {@link ActionMapper} provided by the {@link ActionMapperFactory} to instruct the render phase to

+ * invoke the specified action and (optional) namespace. This is better than the {@link PortletResult}

+ * because it does not require you to encode the URL patterns processed by the {@link ActionMapper} in to your struts.xml

+ * configuration files. This means you can change your URL patterns at any point and your application will still work.

+ * It is strongly recommended that if you are redirecting to another action, you use this result rather than the

+ * standard redirect result.

+ *

+ * See examples below for an example of how request parameters could be passed in.

+ *

+ * <!-- END SNIPPET: description -->

+ *

+ * <b>This result type takes the following parameters:</b>

+ *

+ * <!-- START SNIPPET: params -->

+ *

+ * <ul>

+ *

+ * <li><b>actionName (default)</b> - the name of the action that will be redirect to</li>

+ *

+ * <li><b>namespace</b> - used to determine which namespace the action is in that we're redirecting to . If namespace is

+ * null, this defaults to the current namespace</li>

+ *

+ * </ul>

+ *

+ * <!-- END SNIPPET: params -->

+ *

+ * <b>Example:</b>

+ *

+ * <pre><!-- START SNIPPET: example -->

+ * &lt;package name="public" extends="struts-default"&gt;

+ *     &lt;action name="login" class="..."&gt;

+ *         &lt;!-- Redirect to another namespace --&gt;

+ *         &lt;result type="redirect-action"&gt;

+ *             &lt;param name="actionName"&gt;dashboard&lt;/param&gt;

+ *             &lt;param name="namespace"&gt;/secure&lt;/param&gt;

+ *         &lt;/result&gt;

+ *     &lt;/action&gt;

+ * &lt;/package&gt;

+ *

+ * &lt;package name="secure" extends="struts-default" namespace="/secure"&gt;

+ *     &lt;-- Redirect to an action in the same namespace --&gt;

+ *     &lt;action name="dashboard" class="..."&gt;

+ *         &lt;result&gt;dashboard.jsp&lt;/result&gt;

+ *         &lt;result name="error" type="redirect-action"&gt;error&lt;/result&gt;

+ *     &lt;/action&gt;

+ *

+ *     &lt;action name="error" class="..."&gt;

+ *         &lt;result&gt;error.jsp&lt;/result&gt;

+ *     &lt;/action&gt;

+ * &lt;/package&gt;

+ *

+ * &lt;package name="passingRequestParameters" extends="struts-default" namespace="/passingRequestParameters"&gt;

+ *    &lt;-- Pass parameters (reportType, width and height) --&gt;

+ *    &lt;!--

+ *    The redirect-action url generated will be :

+ *    /genReport/generateReport.action?reportType=pie&width=100&height=100

+ *    --&gt;

+ *    &lt;action name="gatherReportInfo" class="..."&gt;

+ *       &lt;result name="showReportResult" type="redirect-action"&gt;

+ *          &lt;param name="actionName"&gt;generateReport&lt;/param&gt;

+ *          &lt;param name="namespace"&gt;/genReport&lt;/param&gt;

+ *          &lt;param name="reportType"&gt;pie&lt;/param&gt;

+ *          &lt;param name="width"&gt;100&lt;/param&gt;

+ *          &lt;param name="height"&gt;100&lt;/param&gt;

+ *       &lt;/result&gt;

+ *    &lt;/action&gt;

+ * &lt;/package&gt;

+ *

+ *

+ * <!-- END SNIPPET: example --></pre>

+ *

+ * @see ActionMapper

+ */

+public class PortletActionRedirectResult extends PortletResult {

+

+	private static final long serialVersionUID = -7627388936683562557L;

+

+	/** The default parameter */

+    public static final String DEFAULT_PARAM = "actionName";

+

+    protected String actionName;

+    protected String namespace;

+    protected String method;

+

+    private Map<String, String> requestParameters = new LinkedHashMap<String, String>();

+

+    private ActionMapper actionMapper;

+

+    public PortletActionRedirectResult() {

+        super();

+    }

+

+    public PortletActionRedirectResult(String actionName) {

+        this(null, actionName, null);

+    }

+

+    public PortletActionRedirectResult(String actionName, String method) {

+        this(null, actionName, method);

+    }

+

+    public PortletActionRedirectResult(String namespace, String actionName, String method) {

+        super(null);

+        this.namespace = namespace;

+        this.actionName = actionName;

+        this.method = method;

+    }

+

+    protected List<String> prohibitedResultParam = Arrays.asList(new String[] {

+            DEFAULT_PARAM, "namespace", "method", "encode", "parse", "location",

+            "prependServletContext" });

+

+    @Inject

+    public void setActionMapper(ActionMapper actionMapper) {

+    	this.actionMapper = actionMapper;

+    }

+

+    /**

+     * @see com.opensymphony.xwork2.Result#execute(com.opensymphony.xwork2.ActionInvocation)

+     */

+    public void execute(ActionInvocation invocation) throws Exception {

+        actionName = conditionalParse(actionName, invocation);

+        if (namespace == null) {

+            namespace = invocation.getProxy().getNamespace();

+        } else {

+            namespace = conditionalParse(namespace, invocation);

+        }

+        if (method == null) {

+            method = "";

+        }

+        else {

+            method = conditionalParse(method, invocation);

+        }

+

+        String resultCode = invocation.getResultCode();

+        if (resultCode != null) {

+            ResultConfig resultConfig = invocation.getProxy().getConfig().getResults().get(

+                    resultCode);

+            Map resultConfigParams = resultConfig.getParams();

+            for (Iterator i = resultConfigParams.entrySet().iterator(); i.hasNext(); ) {

+                Map.Entry e = (Map.Entry) i.next();

+                if (! prohibitedResultParam.contains(e.getKey())) {

+                    requestParameters.put(e.getKey().toString(),

+                            e.getValue() == null ? "":

+                                conditionalParse(e.getValue().toString(), invocation));

+                }

+            }

+        }

+

+        StringBuffer tmpLocation = new StringBuffer(actionMapper.getUriFromActionMapping(new ActionMapping(actionName, namespace, method, null)));

+        UrlHelper.buildParametersString(requestParameters, tmpLocation, "&");

+

+        setLocation(tmpLocation.toString());

+

+        super.execute(invocation);

+    }

+

+    /**

+     * Sets the action name

+     *

+     * @param actionName The name

+     */

+    public void setActionName(String actionName) {

+        this.actionName = actionName;

+    }

+

+    /**

+     * Sets the namespace

+     *

+     * @param namespace The namespace

+     */

+    public void setNamespace(String namespace) {

+        this.namespace = namespace;

+    }

+

+    /**

+     * Sets the method

+     *

+     * @param method The method

+     */

+    public void setMethod(String method) {

+        this.method = method;

+    }

+

+    /**

+     * Adds a request parameter to be added to the redirect url

+     *

+     * @param key The parameter name

+     * @param value The parameter value

+     */

+    public PortletActionRedirectResult addParameter(String key, Object value) {

+        requestParameters.put(key, String.valueOf(value));

+        return this;

+    }

+

+}

diff --git a/core/src/main/java/org/apache/struts2/portlet/result/PortletResult.java b/core/src/main/java/org/apache/struts2/portlet/result/PortletResult.java
index d985dbc..1064c5f 100644
--- a/core/src/main/java/org/apache/struts2/portlet/result/PortletResult.java
+++ b/core/src/main/java/org/apache/struts2/portlet/result/PortletResult.java
@@ -20,20 +20,8 @@
  */
 package org.apache.struts2.portlet.result;
 
-import java.io.IOException;
-import java.util.StringTokenizer;
-
-import javax.portlet.ActionResponse;
-import javax.portlet.PortletConfig;
-import javax.portlet.PortletException;
-import javax.portlet.PortletRequestDispatcher;
-import javax.portlet.RenderRequest;
-import javax.portlet.RenderResponse;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
+import com.opensymphony.xwork2.ActionInvocation;
+import com.opensymphony.xwork2.util.TextUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.struts2.ServletActionContext;
@@ -41,14 +29,20 @@
 import org.apache.struts2.portlet.PortletActionConstants;
 import org.apache.struts2.portlet.context.PortletActionContext;
 
-import com.opensymphony.xwork2.ActionInvocation;
-import com.opensymphony.xwork2.util.TextUtils;
+import javax.portlet.*;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.StringTokenizer;
+import java.util.Map;
 
 /**
  * Result type that includes a JSP to render.
  *
  */
-public class PortletResult extends StrutsResultSupport {
+public class PortletResult extends StrutsResultSupport implements PortletActionConstants {
 
     private static final long serialVersionUID = 434251393926178567L;
 
@@ -116,28 +110,26 @@
      * @param finalLocation
      * @param invocation
      */
-    protected void executeActionResult(String finalLocation,
-            ActionInvocation invocation) {
+    protected void executeActionResult(String finalLocation, ActionInvocation invocation) {
         LOG.debug("Executing result in Event phase");
         ActionResponse res = PortletActionContext.getActionResponse();
+        Map sessionMap = invocation.getInvocationContext().getSession();
         LOG.debug("Setting event render parameter: " + finalLocation);
         if (finalLocation.indexOf('?') != -1) {
-            convertQueryParamsToRenderParams(res, finalLocation
-                    .substring(finalLocation.indexOf('?') + 1));
-            finalLocation = finalLocation.substring(0, finalLocation
-                    .indexOf('?'));
+            convertQueryParamsToRenderParams(res, finalLocation.substring(finalLocation.indexOf('?') + 1));
+            finalLocation = finalLocation.substring(0, finalLocation.indexOf('?'));
         }
         if (finalLocation.endsWith(".action")) {
             // View is rendered with a view action...luckily...
             finalLocation = finalLocation.substring(0, finalLocation
                     .lastIndexOf("."));
-            res.setRenderParameter(PortletActionConstants.ACTION_PARAM, finalLocation);
+            res.setRenderParameter(ACTION_PARAM, finalLocation);
         } else {
             // View is rendered outside an action...uh oh...
             res.setRenderParameter(PortletActionConstants.ACTION_PARAM, "renderDirect");
-            res.setRenderParameter("location", finalLocation);
+            sessionMap.put(RENDER_DIRECT_LOCATION, finalLocation);
         }
-        res.setRenderParameter(PortletActionConstants.MODE_PARAM, PortletActionContext
+        res.setRenderParameter(MODE_PARAM, PortletActionContext
                 .getRequest().getPortletMode().toString());
     }
 
@@ -178,20 +170,6 @@
             res.setTitle(title);
         }
         LOG.debug("Location: " + finalLocation);
-        PortletRequestDispatcher preparator = cfg.getPortletContext()
-                .getNamedDispatcher("preparator");
-        if(preparator == null) {
-            throw new PortletException("Cannot look up 'preparator' servlet. Make sure that you" +
-                    "have configured it correctly in the web.xml file.");
-        }
-        new IncludeTemplate() {
-            protected void when(PortletException e) {
-                LOG.error("PortletException while dispatching to 'preparator' servlet", e);
-            }
-            protected void when(IOException e) {
-                LOG.error("IOException while dispatching to 'preparator' servlet", e);
-            }
-        }.include(preparator, req, res);
         PortletRequestDispatcher dispatcher = cfg.getPortletContext().getRequestDispatcher(finalLocation);
         if(dispatcher == null) {
             throw new PortletException("Could not locate dispatcher for '" + finalLocation + "'");
diff --git a/core/src/main/java/org/apache/struts2/portlet/result/PortletVelocityResult.java b/core/src/main/java/org/apache/struts2/portlet/result/PortletVelocityResult.java
index 899f02f..28ce153 100644
--- a/core/src/main/java/org/apache/struts2/portlet/result/PortletVelocityResult.java
+++ b/core/src/main/java/org/apache/struts2/portlet/result/PortletVelocityResult.java
@@ -20,20 +20,10 @@
  */
 package org.apache.struts2.portlet.result;
 
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.io.Writer;
-
-import javax.portlet.ActionResponse;
-import javax.portlet.PortletException;
-import javax.portlet.PortletRequestDispatcher;
-import javax.servlet.Servlet;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.jsp.JspFactory;
-import javax.servlet.jsp.PageContext;
-
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.ActionInvocation;
+import com.opensymphony.xwork2.inject.Inject;
+import com.opensymphony.xwork2.util.ValueStack;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.struts2.ServletActionContext;
@@ -47,10 +37,15 @@
 import org.apache.velocity.app.VelocityEngine;
 import org.apache.velocity.context.Context;
 
-import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.ActionInvocation;
-import com.opensymphony.xwork2.inject.Inject;
-import com.opensymphony.xwork2.util.ValueStack;
+import javax.portlet.ActionResponse;
+import javax.servlet.Servlet;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.jsp.JspFactory;
+import javax.servlet.jsp.PageContext;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
 
 /**
  * <!-- START SNIPPET: description -->
@@ -160,7 +155,6 @@
      */
     public void executeRenderResult(String finalLocation,
             ActionInvocation invocation) throws Exception {
-        prepareServletActionContext();
         ValueStack stack = ActionContext.getContext().getValueStack();
 
         HttpServletRequest request = ServletActionContext.getRequest();
@@ -192,7 +186,7 @@
             if (encoding != null) {
                 contentType = contentType + ";charset=" + encoding;
             }
-
+            response.setContentType(contentType);
             Template t = getTemplate(stack,
                     velocityManager.getVelocityEngine(), invocation,
                     finalLocation, encoding);
@@ -202,8 +196,6 @@
             Writer writer = new OutputStreamWriter(response.getOutputStream(),
                     encoding);
 
-            response.setContentType(contentType);
-
             t.merge(context, writer);
 
             // always flush the writer (we used to only flush it if this was a
@@ -294,14 +286,4 @@
         return velocityManager.createContext(stack, request, response);
     }
 
-    /**
-     *  Prepares the servlet action context for this request
-     */
-    private void prepareServletActionContext() throws PortletException,
-            IOException {
-        PortletRequestDispatcher disp = PortletActionContext.getPortletConfig()
-                .getPortletContext().getNamedDispatcher("preparator");
-        disp.include(PortletActionContext.getRenderRequest(),
-                PortletActionContext.getRenderResponse());
-    }
 }
diff --git a/core/src/main/java/org/apache/struts2/portlet/servlet/PortletHttpSession.java b/core/src/main/java/org/apache/struts2/portlet/servlet/PortletHttpSession.java
new file mode 100644
index 0000000..9ed5116
--- /dev/null
+++ b/core/src/main/java/org/apache/struts2/portlet/servlet/PortletHttpSession.java
@@ -0,0 +1,214 @@
+/*

+ * $Id: $

+ *

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you 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.

+ */

+package org.apache.struts2.portlet.servlet;

+

+import java.util.ArrayList;

+import java.util.Enumeration;

+import java.util.List;

+

+import javax.portlet.PortletSession;

+import javax.servlet.ServletContext;

+import javax.servlet.http.HttpSession;

+import javax.servlet.http.HttpSessionContext;

+

+/**

+ * Wrapper object exposing a {@link PortletSession} as a {@link HttpSession} instance.

+ * Clients accessing this session object will in fact operate on the

+ * {@link PortletSession} object wrapped by this session object.

+ */

+public class PortletHttpSession implements HttpSession {

+

+	private PortletSession portletSession;

+

+	public PortletHttpSession(PortletSession portletSession) {

+		this.portletSession = portletSession;

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see javax.servlet.http.HttpSession#getAttribute(java.lang.String)

+	 */

+	public Object getAttribute(String name) {

+		return portletSession.getAttribute(name);

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see javax.servlet.http.HttpSession#getAttributeNames()

+	 */

+	public Enumeration getAttributeNames() {

+		return portletSession.getAttributeNames();

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see javax.servlet.http.HttpSession#getCreationTime()

+	 */

+	public long getCreationTime() {

+		return portletSession.getCreationTime();

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see javax.servlet.http.HttpSession#getId()

+	 */

+	public String getId() {

+		return portletSession.getId();

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see javax.servlet.http.HttpSession#getLastAccessedTime()

+	 */

+	public long getLastAccessedTime() {

+		return portletSession.getLastAccessedTime();

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see javax.servlet.http.HttpSession#getMaxInactiveInterval()

+	 */

+	public int getMaxInactiveInterval() {

+		return portletSession.getMaxInactiveInterval();

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see javax.servlet.http.HttpSession#getServletContext()

+	 */

+	public ServletContext getServletContext() {

+		return new PortletServletContext(portletSession.getPortletContext());

+	}

+

+	/**

+	 * @see javax.servlet.http.HttpSession#getSessionContext()

+	 * @throws IllegalStateException

+	 *             Not supported in a portlet.

+	 */

+	public HttpSessionContext getSessionContext() {

+		throw new IllegalStateException("Not supported in a portlet");

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see javax.servlet.http.HttpSession#getValue(java.lang.String)

+	 */

+	public Object getValue(String name) {

+		return getAttribute(name);

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see javax.servlet.http.HttpSession#getValueNames()

+	 */

+	public String[] getValueNames() {

+		List<String> names = new ArrayList<String>();

+		Enumeration attrNames = getAttributeNames();

+		while (attrNames.hasMoreElements()) {

+			names.add((String) attrNames.nextElement());

+		}

+		return names.toArray(new String[0]);

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see javax.servlet.http.HttpSession#invalidate()

+	 */

+	public void invalidate() {

+		portletSession.invalidate();

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see javax.servlet.http.HttpSession#isNew()

+	 */

+	public boolean isNew() {

+		return portletSession.isNew();

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see javax.servlet.http.HttpSession#putValue(java.lang.String,

+	 *      java.lang.Object)

+	 */

+	public void putValue(String name, Object value) {

+		setAttribute(name, value);

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see javax.servlet.http.HttpSession#removeAttribute(java.lang.String)

+	 */

+	public void removeAttribute(String name) {

+		portletSession.removeAttribute(name);

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see javax.servlet.http.HttpSession#removeValue(java.lang.String)

+	 */

+	public void removeValue(String name) {

+		removeAttribute(name);

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see javax.servlet.http.HttpSession#setAttribute(java.lang.String,

+	 *      java.lang.Object)

+	 */

+	public void setAttribute(String name, Object value) {

+		portletSession.setAttribute(name, value);

+	}

+

+	/*

+	 * (non-Javadoc)

+	 * 

+	 * @see javax.servlet.http.HttpSession#setMaxInactiveInterval(int)

+	 */

+	public void setMaxInactiveInterval(int interval) {

+		portletSession.setMaxInactiveInterval(interval);

+	}

+

+	/**

+	 * Get the wrapped portlet session.

+	 * 

+	 * @return The wrapped portlet session.

+	 */

+	public PortletSession getPortletSession() {

+		return portletSession;

+	}

+

+}

diff --git a/core/src/main/java/org/apache/struts2/portlet/servlet/PortletServletConfig.java b/core/src/main/java/org/apache/struts2/portlet/servlet/PortletServletConfig.java
new file mode 100644
index 0000000..78f6608
--- /dev/null
+++ b/core/src/main/java/org/apache/struts2/portlet/servlet/PortletServletConfig.java
@@ -0,0 +1,81 @@
+/*

+ * $Id: $

+ *

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you 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.

+ */

+package org.apache.struts2.portlet.servlet;

+

+import java.util.Enumeration;

+

+import javax.portlet.PortletConfig;

+import javax.portlet.PortletContext;

+import javax.servlet.ServletConfig;

+import javax.servlet.ServletContext;

+

+/**

+ * Wrapper object exposing a {@link PortletConfig} as a {@link ServletConfig} instance.

+ * Clients accessing this config object will in fact operate on the

+ * {@link PortletConfig} object wrapped by this config object.

+ */

+public class PortletServletConfig implements ServletConfig {

+

+	private PortletConfig portletConfig;

+	

+	public PortletServletConfig(PortletConfig portletConfig) {

+		this.portletConfig = portletConfig;

+	}

+	

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletConfig#getInitParameter(java.lang.String)

+	 */

+	public String getInitParameter(String name) {

+		return portletConfig.getInitParameter(name);

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletConfig#getInitParameterNames()

+	 */

+	public Enumeration getInitParameterNames() {

+		return portletConfig.getInitParameterNames();

+	}

+

+	/**

+	 * Get the {@link PortletContext} as a {@link PortletServletContext} instance.

+	 * @see javax.servlet.ServletConfig#getServletContext()

+	 */

+	public ServletContext getServletContext() {

+		return new PortletServletContext(portletConfig.getPortletContext());

+	}

+

+	/**

+	 * Will return the portlet name.

+	 * @see javax.servlet.ServletConfig#getServletName()

+	 */

+	public String getServletName() {

+		return portletConfig.getPortletName();

+	}

+	

+	/**

+	 * Get the wrapped {@link PortletConfig} instance.

+	 * @return The wrapped {@link PortletConfig} instance.

+	 */

+	public PortletConfig getPortletConfig() {

+		return portletConfig;

+	}

+

+}

diff --git a/core/src/main/java/org/apache/struts2/portlet/servlet/PortletServletContext.java b/core/src/main/java/org/apache/struts2/portlet/servlet/PortletServletContext.java
new file mode 100644
index 0000000..a7c538a
--- /dev/null
+++ b/core/src/main/java/org/apache/struts2/portlet/servlet/PortletServletContext.java
@@ -0,0 +1,235 @@
+/*

+ * $Id: $

+ *

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you 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.

+ */

+package org.apache.struts2.portlet.servlet;

+

+import java.io.InputStream;

+import java.net.MalformedURLException;

+import java.net.URL;

+import java.util.Enumeration;

+import java.util.Set;

+

+import javax.portlet.PortletContext;

+import javax.portlet.PortletRequestDispatcher;

+import javax.servlet.RequestDispatcher;

+import javax.servlet.Servlet;

+import javax.servlet.ServletContext;

+import javax.servlet.ServletException;

+

+/**

+ * Wrapper object exposing a {@link PortletContext} as a {@link ServletContext} instance.

+ * Clients accessing this context object will in fact operate on the

+ * {@link PortletContext} object wrapped by this context object.

+ */

+public class PortletServletContext implements ServletContext {

+

+	private PortletContext portletContext;

+	

+	public PortletServletContext(PortletContext portletContext) {

+		this.portletContext = portletContext;

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletContext#getAttribute(java.lang.String)

+	 */

+	public Object getAttribute(String name) {

+		return portletContext.getAttribute(name);

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletContext#getAttributeNames()

+	 */

+	public Enumeration getAttributeNames() {

+		return portletContext.getAttributeNames();

+	}

+

+	/**

+	 * @see javax.servlet.ServletContext#getContext(java.lang.String)

+	 * @throws IllegalStateException Not supported in a portlet.

+	 */

+	public ServletContext getContext(String uripath) {

+		throw new IllegalStateException("Not supported in a portlet");

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletContext#getInitParameter(java.lang.String)

+	 */

+	public String getInitParameter(String name) {

+		return portletContext.getInitParameter(name);

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletContext#getInitParameterNames()

+	 */

+	public Enumeration getInitParameterNames() {

+		return portletContext.getInitParameterNames();

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletContext#getMajorVersion()

+	 */

+	public int getMajorVersion() {

+		return portletContext.getMajorVersion();

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletContext#getMimeType(java.lang.String)

+	 */

+	public String getMimeType(String file) {

+		return portletContext.getMimeType(file);

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletContext#getMinorVersion()

+	 */

+	public int getMinorVersion() {

+		return portletContext.getMinorVersion();

+	}

+

+	/**

+	 * Returns a {@link PortletServletRequestDispatcher} wrapping the {@link PortletRequestDispatcher}

+	 * as a {@link RequestDispatcher} instance.

+	 * @see javax.servlet.ServletContext#getNamedDispatcher(java.lang.String)

+	 * @return PortletServletRequestDispatcher

+	 */

+	public RequestDispatcher getNamedDispatcher(String name) {

+		return new PortletServletRequestDispatcher(portletContext.getNamedDispatcher(name));

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletContext#getRealPath(java.lang.String)

+	 */

+	public String getRealPath(String path) {

+		return portletContext.getRealPath(path);

+	}

+

+	/**

+	 * Returns a {@link PortletServletRequestDispatcher} wrapping the {@link PortletRequestDispatcher}

+	 * as a {@link RequestDispatcher} instance.

+	 * @see javax.servlet.ServletContext#getNamedDispatcher(java.lang.String)

+	 * @return PortletServletRequestDispatcher

+	 */

+	public RequestDispatcher getRequestDispatcher(String path) {

+		return new PortletServletRequestDispatcher(portletContext.getRequestDispatcher(path));

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletContext#getResource(java.lang.String)

+	 */

+	public URL getResource(String path) throws MalformedURLException {

+		return portletContext.getResource(path);

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletContext#getResourceAsStream(java.lang.String)

+	 */

+	public InputStream getResourceAsStream(String path) {

+		return portletContext.getResourceAsStream(path);

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletContext#getResourcePaths(java.lang.String)

+	 */

+	public Set getResourcePaths(String path) {

+		return portletContext.getResourcePaths(path);

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletContext#getServerInfo()

+	 */

+	public String getServerInfo() {

+		return portletContext.getServerInfo();

+	}

+

+	/**

+	 * @see javax.servlet.ServletContext#getServlet(java.lang.String)

+	 * @throws IllegalStateException Not supported in a portlet.

+	 */

+	public Servlet getServlet(String name) throws ServletException {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletContext#getServletContextName()

+	 */

+	public String getServletContextName() {

+		return portletContext.getPortletContextName();

+	}

+

+	/**

+	 * @see javax.servlet.ServletContext#getServletNames()

+ 	 * @throws IllegalStateException Not supported in a portlet.

+	 */

+	public Enumeration getServletNames() {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	/**

+	 * @see javax.servlet.ServletContext#getServlets()

+	 * @throws IllegalStateException Not supported in a portlet.

+	 */

+	public Enumeration getServlets() {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletContext#log(java.lang.String)

+	 */

+	public void log(String msg) {

+		portletContext.log(msg);

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletContext#log(java.lang.Exception, java.lang.String)

+	 */

+	public void log(Exception exception, String msg) {

+		log(msg, exception);

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletContext#log(java.lang.String, java.lang.Throwable)

+	 */

+	public void log(String message, Throwable throwable) {

+		portletContext.log(message, throwable);

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletContext#removeAttribute(java.lang.String)

+	 */

+	public void removeAttribute(String name) {

+		portletContext.removeAttribute(name);

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletContext#setAttribute(java.lang.String, java.lang.Object)

+	 */

+	public void setAttribute(String name, Object object) {

+		portletContext.setAttribute(name, object);

+	}

+	

+	/**

+	 * Get the wrapped {@link PortletContext} instance.

+	 * @return The wrapped {@link PortletContext} instance.

+	 */

+	public PortletContext getPortletContext() {

+		return portletContext;

+	}

+

+}

diff --git a/core/src/main/java/org/apache/struts2/portlet/servlet/PortletServletInputStream.java b/core/src/main/java/org/apache/struts2/portlet/servlet/PortletServletInputStream.java
new file mode 100644
index 0000000..6683104
--- /dev/null
+++ b/core/src/main/java/org/apache/struts2/portlet/servlet/PortletServletInputStream.java
@@ -0,0 +1,121 @@
+/*

+ * $Id: $

+ *

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you 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.

+ */

+package org.apache.struts2.portlet.servlet;

+

+import java.io.IOException;

+import java.io.InputStream;

+

+import javax.servlet.ServletInputStream;

+

+/**

+ * Wrapper object exposing a {@link InputStream} from a portlet as a {@link ServletInputStream} instance.

+ * Clients accessing this stream object will in fact operate on the

+ * {@link InputStream} object wrapped by this stream object.

+ */

+public class PortletServletInputStream extends ServletInputStream {

+

+	private InputStream portletInputStream;

+	

+	public PortletServletInputStream(InputStream portletInputStream) {

+		this.portletInputStream = portletInputStream;

+	}

+	

+	/* (non-Javadoc)

+	 * @see java.io.InputStream#read()

+	 */

+	@Override

+	public int read() throws IOException {

+		return portletInputStream.read();

+	}

+

+	/* (non-Javadoc)

+	 * @see java.io.InputStream#available()

+	 */

+	@Override

+	public int available() throws IOException {

+		return portletInputStream.available();

+	}

+

+	/* (non-Javadoc)

+	 * @see java.io.InputStream#close()

+	 */

+	@Override

+	public void close() throws IOException {

+		portletInputStream.close();

+	}

+

+	/* (non-Javadoc)

+	 * @see java.io.InputStream#mark(int)

+	 */

+	@Override

+	public synchronized void mark(int readlimit) {

+		portletInputStream.mark(readlimit);

+	}

+

+	/* (non-Javadoc)

+	 * @see java.io.InputStream#markSupported()

+	 */

+	@Override

+	public boolean markSupported() {

+		return portletInputStream.markSupported();

+	}

+

+	/* (non-Javadoc)

+	 * @see java.io.InputStream#read(byte[], int, int)

+	 */

+	@Override

+	public int read(byte[] b, int off, int len) throws IOException {

+		return portletInputStream.read(b, off, len);

+	}

+

+	/* (non-Javadoc)

+	 * @see java.io.InputStream#read(byte[])

+	 */

+	@Override

+	public int read(byte[] b) throws IOException {

+		return portletInputStream.read(b);

+	}

+

+	/* (non-Javadoc)

+	 * @see java.io.InputStream#reset()

+	 */

+	@Override

+	public synchronized void reset() throws IOException {

+		portletInputStream.reset();

+	}

+

+	/* (non-Javadoc)

+	 * @see java.io.InputStream#skip(long)

+	 */

+	@Override

+	public long skip(long n) throws IOException {

+		return portletInputStream.skip(n);

+	}

+	

+	/**

+	 * Get the wrapped {@link InputStream} instance.

+	 * @return The wrapped {@link InputStream} instance.

+	 */

+	public InputStream getInputStream() {

+		return portletInputStream;

+	}

+

+}

diff --git a/core/src/main/java/org/apache/struts2/portlet/servlet/PortletServletOutputStream.java b/core/src/main/java/org/apache/struts2/portlet/servlet/PortletServletOutputStream.java
new file mode 100644
index 0000000..cb7fcd3
--- /dev/null
+++ b/core/src/main/java/org/apache/struts2/portlet/servlet/PortletServletOutputStream.java
@@ -0,0 +1,88 @@
+/*

+ * $Id: $

+ *

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you 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.

+ */

+package org.apache.struts2.portlet.servlet;

+

+import java.io.IOException;

+import java.io.OutputStream;

+

+import javax.servlet.ServletOutputStream;

+

+/**

+ * Wrapper object exposing a {@link OutputStream} from a portlet as a {@link ServletOutputStream} instance.

+ * Clients accessing this stream object will in fact operate on the

+ * {@link OutputStream} object wrapped by this stream object.

+ */

+public class PortletServletOutputStream extends ServletOutputStream {

+

+	private OutputStream portletOutputStream;

+	

+	public PortletServletOutputStream(OutputStream portletOutputStream) {

+		this.portletOutputStream = portletOutputStream;

+	}

+

+	/* (non-Javadoc)

+	 * @see java.io.OutputStream#write(int)

+	 */

+	@Override

+	public void write(int ch) throws IOException {

+		portletOutputStream.write(ch);

+	}

+

+	/* (non-Javadoc)

+	 * @see java.io.OutputStream#close()

+	 */

+	@Override

+	public void close() throws IOException {

+		portletOutputStream.close();

+	}

+

+	/* (non-Javadoc)

+	 * @see java.io.OutputStream#flush()

+	 */

+	@Override

+	public void flush() throws IOException {

+		portletOutputStream.flush();

+	}

+

+	/* (non-Javadoc)

+	 * @see java.io.OutputStream#write(byte[])

+	 */

+	@Override

+	public void write(byte[] b) throws IOException {

+		portletOutputStream.write(b);

+	}

+

+	/* (non-Javadoc)

+	 * @see java.io.OutputStream#write(byte[], int, int)

+	 */

+	@Override

+	public void write(byte[] b, int off, int len) throws IOException {

+		portletOutputStream.write(b, off, len);

+	}

+	

+	/**

+	 * Get the wrapped {@link OutputStream} instance.

+	 * @return The wrapped {@link OutputStream} instance.

+	 */

+	public OutputStream getOutputStream() {

+		return portletOutputStream;

+	}

+}

diff --git a/core/src/main/java/org/apache/struts2/portlet/servlet/PortletServletRequest.java b/core/src/main/java/org/apache/struts2/portlet/servlet/PortletServletRequest.java
new file mode 100644
index 0000000..40cf8ea
--- /dev/null
+++ b/core/src/main/java/org/apache/struts2/portlet/servlet/PortletServletRequest.java
@@ -0,0 +1,558 @@
+/*

+ * $Id: $

+ *

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you 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.

+ */

+package org.apache.struts2.portlet.servlet;

+

+import java.io.BufferedReader;

+import java.io.IOException;

+import java.io.InputStream;

+import java.io.UnsupportedEncodingException;

+import java.security.Principal;

+import java.util.Enumeration;

+import java.util.Locale;

+import java.util.Map;

+

+import javax.portlet.ActionRequest;

+import javax.portlet.PortletContext;

+import javax.portlet.PortletRequest;

+import javax.portlet.PortletRequestDispatcher;

+import javax.portlet.PortletSession;

+import javax.servlet.RequestDispatcher;

+import javax.servlet.ServletInputStream;

+import javax.servlet.ServletRequest;

+import javax.servlet.http.Cookie;

+import javax.servlet.http.HttpServletRequest;

+import javax.servlet.http.HttpSession;

+

+import org.apache.struts2.portlet.PortletActionConstants;

+

+/**

+ * Wrapper object exposing a {@link PortletRequest} as a {@link HttpServletRequest} instance.

+ * Clients accessing this request object will in fact operate on the

+ * {@link PortletRequest} object wrapped by this request object.

+ */

+public class PortletServletRequest implements HttpServletRequest, PortletActionConstants {

+

+	private PortletRequest portletRequest;

+	private PortletContext portletContext;

+	

+	public PortletServletRequest(PortletRequest portletRequest, PortletContext portletContext) {

+		this.portletRequest = portletRequest;

+		this.portletContext = portletContext;

+	}

+	

+	/* (non-Javadoc)

+	 * @see javax.servlet.http.HttpServletRequest#getAuthType()

+	 */

+	public String getAuthType() {

+		return portletRequest.getAuthType();

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.http.HttpServletRequest#getContextPath()

+	 */

+	public String getContextPath() {

+		return portletRequest.getContextPath();

+	}

+

+	/**

+	 * Not allowed in a portlet. 

+	 * @throws IllegalStateException Not allowed in a portlet.

+	 */

+	public Cookie[] getCookies() {

+		if(portletRequest instanceof HttpServletRequest) {

+			return ((HttpServletRequest)portletRequest).getCookies();

+		}

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	/**

+	 * Not allowed in a portlet. 

+	 * @throws IllegalStateException Not allowed in a portlet.

+	 */

+	public long getDateHeader(String name) {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	/**

+	 * Gets a property from the {@link PortletRequest}. Note that a {@link PortletRequest} is not 

+	 * guaranteed to map properties to headers.

+	 * @see PortletRequest#getProperty(String)

+	 * @see javax.servlet.http.HttpServletRequest#getHeader(java.lang.String)

+	 */

+	public String getHeader(String name) {

+		return portletRequest.getProperty(name);

+	}

+

+	/**

+	 * Gets the property names from the {@link PortletRequest}. Note that a {@link PortletRequest} is not 

+	 * guaranteed to map properties to headers.

+	 * @see PortletRequest#getPropertyNames()

+	 * @see javax.servlet.http.HttpServletRequest#getHeaderNames()

+	 */

+	public Enumeration getHeaderNames() {

+		return portletRequest.getPropertyNames();

+	}

+

+	/**

+	 * Gets the values for the specified property from the {@link PortletRequest}. Note that a 

+	 * {@link PortletRequest} is not guaranteed to map properties to headers.

+	 * @see PortletRequest#getProperties(String)

+	 * @see HttpServletRequest#getHeaders(String)

+	 */

+	public Enumeration getHeaders(String name) {

+		return portletRequest.getProperties(name);

+	}

+

+	/**

+	 * Not allowed in a portlet. 

+	 * @throws IllegalStateException Not allowed in a portlet.

+	 */

+	public int getIntHeader(String name) {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.http.HttpServletRequest#getMethod()

+	 */

+	public String getMethod() {

+		return null;

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.http.HttpServletRequest#getPathInfo()

+	 */

+	public String getPathInfo() {

+		return null;

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.http.HttpServletRequest#getPathTranslated()

+	 */

+	public String getPathTranslated() {

+		return null;

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.http.HttpServletRequest#getQueryString()

+	 */

+	public String getQueryString() {

+		return null;

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.http.HttpServletRequest#getRemoteUser()

+	 */

+	public String getRemoteUser() {

+		return portletRequest.getRemoteUser();

+	}

+

+	/**

+	 * Not allowed in a portlet. 

+	 * @throws IllegalStateException Not allowed in a portlet.

+	 */

+	public String getRequestURI() {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	/**

+	 * Not allowed in a portlet. 

+	 * @throws IllegalStateException Not allowed in a portlet.

+	 */

+	public StringBuffer getRequestURL() {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.http.HttpServletRequest#getRequestedSessionId()

+	 */

+	public String getRequestedSessionId() {

+		return portletRequest.getRequestedSessionId();

+	}

+

+	/**

+	 * A {@link PortletRequest} has no servlet path. But for compatibility with Struts 2 components and

+	 * interceptors, the action parameter on the request is mapped to the servlet path.

+	 * @see javax.servlet.http.HttpServletRequest#getServletPath()

+	 */

+	public String getServletPath() {

+		String actionPath = getParameter(ACTION_PARAM);

+		if(actionPath != null && !actionPath.endsWith(".action")) {

+			actionPath += ".action";

+		}

+		return actionPath;

+	}

+

+	/**

+	 * Get the {@link PortletSession} as a {@link PortletHttpSession} instance.

+	 * @see javax.servlet.http.HttpServletRequest#getSession()

+	 */

+	public HttpSession getSession() {

+		return new PortletHttpSession(portletRequest.getPortletSession());

+	}

+

+	/**

+	 * Get the {@link PortletSession} as a {@link PortletHttpSession} instance.

+	 * @see javax.servlet.http.HttpServletRequest#getSession(boolean)

+	 */

+	public HttpSession getSession(boolean create) {

+		return new PortletHttpSession(portletRequest.getPortletSession(create));

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.http.HttpServletRequest#getUserPrincipal()

+	 */

+	public Principal getUserPrincipal() {

+		return portletRequest.getUserPrincipal();

+	}

+

+	/**

+	 * Not allowed in a portlet. 

+	 * @throws IllegalStateException Not allowed in a portlet.

+	 */

+	public boolean isRequestedSessionIdFromCookie() {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	/**

+	 * Not allowed in a portlet. 

+	 * @throws IllegalStateException Not allowed in a portlet.

+	 */

+	public boolean isRequestedSessionIdFromURL() {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	/**

+	 * Not allowed in a portlet. 

+	 * @throws IllegalStateException Not allowed in a portlet.

+	 */

+	public boolean isRequestedSessionIdFromUrl() {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.http.HttpServletRequest#isRequestedSessionIdValid()

+	 */

+	public boolean isRequestedSessionIdValid() {

+		return portletRequest.isRequestedSessionIdValid();

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.http.HttpServletRequest#isUserInRole(java.lang.String)

+	 */

+	public boolean isUserInRole(String role) {

+		return portletRequest.isUserInRole(role);

+	}

+

+	/**

+	 * Gets an attribute value on the {@link PortletRequest}. If the attribute name is 

+	 * <tt>javax.servlet.include.servlet_path</tt>, it returns the same as

+	 * {@link PortletServletRequest#getServletPath()}

+	 * @see javax.servlet.ServletRequest#getAttribute(java.lang.String)

+	 */

+	public Object getAttribute(String name) {

+		if("javax.servlet.include.servlet_path".equals(name)) {

+			return getServletPath();

+		}

+		else {

+			return portletRequest.getAttribute(name);

+		}

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletRequest#getAttributeNames()

+	 */

+	public Enumeration getAttributeNames() {

+		return portletRequest.getAttributeNames();

+	}

+

+	/**

+	 * Can only be invoked in the event phase.

+	 * @see ServletRequest#getCharacterEncoding()

+	 * @throws IllegalStateException If the portlet is not in the event phase.

+	 */

+	public String getCharacterEncoding() {

+		if(portletRequest instanceof ActionRequest) {

+			return ((ActionRequest)portletRequest).getCharacterEncoding();

+		}

+		else {

+			throw new IllegalStateException("Not allowed in render phase");

+		}

+	}

+

+	/**

+	 * Can only be invoked in the event phase.

+	 * @see ServletRequest#getContentLength()

+	 * @throws IllegalStateException If the portlet is not in the event phase.

+	 */

+	public int getContentLength() {

+		if(portletRequest instanceof ActionRequest) {

+			return ((ActionRequest)portletRequest).getContentLength();

+		}

+		else {

+			throw new IllegalStateException("Not allowed in render phase");

+		}

+	}

+

+	/**

+	 * Can only be invoked in the event phase.

+	 * @see ServletRequest#getContentType()

+	 * @throws IllegalStateException If the portlet is not in the event phase.

+	 */

+	public String getContentType() {

+		if(portletRequest instanceof ActionRequest) {

+			return ((ActionRequest)portletRequest).getContentType();

+		}

+		else {

+			throw new IllegalStateException("Not allowed in render phase");

+		}

+	}

+

+	/**

+	 * Can only be invoked in the event phase. When invoked in the event phase, it will wrap the

+	 * portlet's {@link InputStream} as a {@link PortletServletInputStream}.

+	 * @see ServletRequest#getInputStream()

+	 * @throws IllegalStateException If the portlet is not in the event phase.

+	 */

+	public ServletInputStream getInputStream() throws IOException {

+		if(portletRequest instanceof ActionRequest) {

+			return new PortletServletInputStream(((ActionRequest)portletRequest).getPortletInputStream());

+		}

+		else {

+			throw new IllegalStateException("Not allowed in render phase");

+		}

+	}

+

+	/**

+	 * Not allowed in a portlet. 

+	 * @throws IllegalStateException Not allowed in a portlet.

+	 */

+	public String getLocalAddr() {

+		if(portletRequest instanceof HttpServletRequest) {

+			return ((HttpServletRequest)portletRequest).getLocalAddr();

+		}

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	/**

+	 * Not allowed in a portlet. 

+	 * @throws IllegalStateException Not allowed in a portlet.

+	 */

+	public String getLocalName() {

+		if(portletRequest instanceof HttpServletRequest) {

+			return ((HttpServletRequest)portletRequest).getLocalName();

+		}

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	/**

+	 * Not allowed in a portlet. 

+	 * @throws IllegalStateException Not allowed in a portlet.

+	 */

+	public int getLocalPort() {

+		if(portletRequest instanceof HttpServletRequest) {

+			return ((HttpServletRequest)portletRequest).getLocalPort();

+		}

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletRequest#getLocale()

+	 */

+	public Locale getLocale() {

+		return portletRequest.getLocale();

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletRequest#getLocales()

+	 */

+	public Enumeration getLocales() {

+		return portletRequest.getLocales();

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletRequest#getParameter(java.lang.String)

+	 */

+	public String getParameter(String name) {

+		return portletRequest.getParameter(name);

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletRequest#getParameterMap()

+	 */

+	public Map getParameterMap() {

+		return portletRequest.getParameterMap();

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletRequest#getParameterNames()

+	 */

+	public Enumeration getParameterNames() {

+		return portletRequest.getParameterNames();

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletRequest#getParameterValues(java.lang.String)

+	 */

+	public String[] getParameterValues(String name) {

+		return portletRequest.getParameterValues(name);

+	}

+

+	/**

+	 * Not allowed in a portlet. 

+	 * @throws IllegalStateException Not allowed in a portlet.

+	 */

+	public String getProtocol() {

+		if(portletRequest instanceof HttpServletRequest) {

+			return ((HttpServletRequest)portletRequest).getProtocol();

+		}

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	/**

+	 * Can only be invoked in the event phase.

+	 * @see ServletRequest#getReader()

+	 * @throws IllegalStateException If the portlet is not in the event phase.

+	 */

+	public BufferedReader getReader() throws IOException {

+		if(portletRequest instanceof ActionRequest) {

+			return ((ActionRequest)portletRequest).getReader();

+		}

+		else {

+			throw new IllegalStateException("Not allowed in render phase");

+		}

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletRequest#getRealPath(java.lang.String)

+	 */

+	public String getRealPath(String path) {

+		return portletContext.getRealPath(path);

+	}

+

+	/**

+	 * Not allowed in a portlet. 

+	 * @throws IllegalStateException Not allowed in a portlet.

+	 */

+	public String getRemoteAddr() {

+		if(portletRequest instanceof HttpServletRequest) {

+			return ((HttpServletRequest)portletRequest).getRemoteAddr();

+		}

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	/**

+	 * Not allowed in a portlet. 

+	 * @throws IllegalStateException Not allowed in a portlet.

+	 */

+	public String getRemoteHost() {

+		if(portletRequest instanceof HttpServletRequest) {

+			return ((HttpServletRequest)portletRequest).getRemoteHost();

+		}

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	/**

+	 * Not allowed in a portlet. 

+	 * @throws IllegalStateException Not allowed in a portlet.

+	 */

+	public int getRemotePort() {

+		if(portletRequest instanceof HttpServletRequest) {

+			return ((HttpServletRequest)portletRequest).getRemotePort();

+		}

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	/**

+	 * Get the {@link PortletRequestDispatcher} as a {@link PortletServletRequestDispatcher} instance.

+	 * @see javax.servlet.ServletRequest#getRequestDispatcher(java.lang.String)

+	 */

+	public RequestDispatcher getRequestDispatcher(String path) {

+		return new PortletServletRequestDispatcher(portletContext.getRequestDispatcher(path));

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletRequest#getScheme()

+	 */

+	public String getScheme() {

+		return portletRequest.getScheme();

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletRequest#getServerName()

+	 */

+	public String getServerName() {

+		return portletRequest.getServerName();

+	}

+

+	/**

+	 * Not allowed in a portlet. 

+	 * @throws IllegalStateException Not allowed in a portlet.

+	 */

+	public int getServerPort() {

+		if(portletRequest instanceof HttpServletRequest) {

+			return ((HttpServletRequest)portletRequest).getServerPort();

+		}

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletRequest#isSecure()

+	 */

+	public boolean isSecure() {

+		return portletRequest.isSecure();

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletRequest#removeAttribute(java.lang.String)

+	 */

+	public void removeAttribute(String name) {

+		portletRequest.removeAttribute(name);

+	}

+

+	/* (non-Javadoc)

+	 * @see javax.servlet.ServletRequest#setAttribute(java.lang.String, java.lang.Object)

+	 */

+	public void setAttribute(String name, Object o) {

+		portletRequest.setAttribute(name, o);

+	}

+

+	/**

+	 * Can only be invoked in the event phase.

+	 * @see ServletRequest#setCharacterEncoding(String)

+	 * @throws IllegalStateException If the portlet is not in the event phase.

+	 */

+	public void setCharacterEncoding(String env) throws UnsupportedEncodingException {

+		if(portletRequest instanceof ActionRequest) {

+			((ActionRequest)portletRequest).setCharacterEncoding(env);

+		}

+		else {

+			throw new IllegalStateException("Not allowed in render phase");

+		}

+	}

+	

+	/**

+	 * Get the wrapped {@link PortletRequest} instance. 

+	 * @return The wrapped {@link PortletRequest} instance.

+	 */

+	public PortletRequest getPortletRequest() {

+		return portletRequest;

+	}

+}

diff --git a/core/src/main/java/org/apache/struts2/portlet/servlet/PortletServletRequestDispatcher.java b/core/src/main/java/org/apache/struts2/portlet/servlet/PortletServletRequestDispatcher.java
new file mode 100644
index 0000000..f02f248
--- /dev/null
+++ b/core/src/main/java/org/apache/struts2/portlet/servlet/PortletServletRequestDispatcher.java
@@ -0,0 +1,70 @@
+/*

+ * $Id: $

+ *

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you 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.

+ */

+package org.apache.struts2.portlet.servlet;

+

+import java.io.IOException;

+

+import javax.portlet.PortletException;

+import javax.portlet.PortletRequest;

+import javax.portlet.PortletRequestDispatcher;

+import javax.portlet.PortletResponse;

+import javax.portlet.RenderRequest;

+import javax.portlet.RenderResponse;

+import javax.servlet.RequestDispatcher;

+import javax.servlet.ServletException;

+import javax.servlet.ServletRequest;

+import javax.servlet.ServletResponse;

+

+public class PortletServletRequestDispatcher implements RequestDispatcher {

+

+	private PortletRequestDispatcher portletRequestDispatcher;

+	

+	public PortletServletRequestDispatcher(PortletRequestDispatcher portletRequestDispatcher) {

+		this.portletRequestDispatcher = portletRequestDispatcher;

+	}

+

+	public void forward(ServletRequest request, ServletResponse response) throws ServletException, IOException {

+		throw new IllegalStateException("Not allowed in a portlet");

+		

+	}

+

+	public void include(ServletRequest request, ServletResponse response) throws ServletException, IOException {

+		if(request instanceof PortletServletRequest && response instanceof PortletServletResponse) {

+			PortletRequest req = ((PortletServletRequest)request).getPortletRequest();

+			PortletResponse resp = ((PortletServletResponse)response).getPortletResponse();

+			if(req instanceof RenderRequest && resp instanceof RenderResponse) {

+				try {

+					portletRequestDispatcher.include((RenderRequest)req, (RenderResponse)resp);

+				}

+				catch(PortletException e) {

+					throw new ServletException(e);

+				}

+			}

+			else {

+				throw new IllegalStateException("Can only be invoked in the render phase");

+			}

+		}

+		else {

+			throw new IllegalStateException("Can only be invoked in a portlet");

+		}

+	}

+

+}

diff --git a/core/src/main/java/org/apache/struts2/portlet/servlet/PortletServletResponse.java b/core/src/main/java/org/apache/struts2/portlet/servlet/PortletServletResponse.java
new file mode 100644
index 0000000..63ad69c
--- /dev/null
+++ b/core/src/main/java/org/apache/struts2/portlet/servlet/PortletServletResponse.java
@@ -0,0 +1,233 @@
+/*

+ * $Id: $

+ *

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you 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.

+ */

+package org.apache.struts2.portlet.servlet;

+

+import java.io.IOException;

+import java.io.PrintWriter;

+import java.util.Locale;

+

+import javax.portlet.PortletResponse;

+import javax.portlet.RenderResponse;

+import javax.servlet.ServletOutputStream;

+import javax.servlet.http.Cookie;

+import javax.servlet.http.HttpServletResponse;

+

+public class PortletServletResponse implements HttpServletResponse {

+

+	private PortletResponse portletResponse;

+	

+	public PortletServletResponse(PortletResponse portletResponse) {

+		this.portletResponse = portletResponse;

+	}

+	

+	public void addCookie(Cookie cookie) {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	public void addDateHeader(String name, long date) {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	public void addHeader(String name, String value) {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	public void addIntHeader(String name, int value) {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	public boolean containsHeader(String name) {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	public String encodeRedirectURL(String url) {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	public String encodeRedirectUrl(String url) {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	public String encodeURL(String url) {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	public String encodeUrl(String url) {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	public void sendError(int sc) throws IOException {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	public void sendError(int sc, String msg) throws IOException {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	public void sendRedirect(String location) throws IOException {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	public void setDateHeader(String name, long date) {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	public void setHeader(String name, String value) {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	public void setIntHeader(String name, int value) {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	public void setStatus(int sc) {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	public void setStatus(int sc, String sm) {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	public void flushBuffer() throws IOException {

+		if(portletResponse instanceof RenderResponse) {

+			((RenderResponse)portletResponse).flushBuffer();

+		}

+		else {

+			throw new IllegalStateException("Not allowed in event phase");

+		}

+	}

+

+	public int getBufferSize() {

+		if(portletResponse instanceof RenderResponse) {

+			return ((RenderResponse)portletResponse).getBufferSize();

+		}

+		else {

+			throw new IllegalStateException("Not allowed in event phase");

+		}

+	}

+

+	public String getCharacterEncoding() {

+		if(portletResponse instanceof RenderResponse) {

+			return ((RenderResponse)portletResponse).getCharacterEncoding();

+		}

+		else {

+			throw new IllegalStateException("Not allowed in event phase");

+		}

+	}

+

+	public String getContentType() {

+		if(portletResponse instanceof RenderResponse) {

+			return ((RenderResponse)portletResponse).getContentType();

+		}

+		else {

+			throw new IllegalStateException("Not allowed in event phase");

+		}

+	}

+

+	public Locale getLocale() {

+		if(portletResponse instanceof RenderResponse) {

+			return ((RenderResponse)portletResponse).getLocale();

+		}

+		else {

+			throw new IllegalStateException("Not allowed in event phase");

+		}

+	}

+

+	public ServletOutputStream getOutputStream() throws IOException {

+		if(portletResponse instanceof RenderResponse) {

+			return new PortletServletOutputStream(((RenderResponse)portletResponse).getPortletOutputStream());

+		}

+		else {

+			throw new IllegalStateException("Not allowed in event phase");

+		}

+	}

+

+	public PrintWriter getWriter() throws IOException {

+		if(portletResponse instanceof RenderResponse) {

+			return ((RenderResponse)portletResponse).getWriter();

+		}

+		else {

+			throw new IllegalStateException("Not allowed in event phase");

+		}

+	}

+

+	public boolean isCommitted() {

+		if(portletResponse instanceof RenderResponse) {

+			return ((RenderResponse)portletResponse).isCommitted();

+		}

+		else {

+			throw new IllegalStateException("Not allowed in event phase");

+		}

+	}

+

+	public void reset() {

+		if(portletResponse instanceof RenderResponse) {

+			((RenderResponse)portletResponse).reset();

+		}

+		else {

+			throw new IllegalStateException("Not allowed in event phase");

+		}

+	}

+

+	public void resetBuffer() {

+		if(portletResponse instanceof RenderResponse) {

+			((RenderResponse)portletResponse).resetBuffer();

+		}

+		else {

+			throw new IllegalStateException("Not allowed in event phase");

+		}

+	}

+

+	public void setBufferSize(int size) {

+		if(portletResponse instanceof RenderResponse) {

+			((RenderResponse)portletResponse).setBufferSize(size);

+		}

+		else {

+			throw new IllegalStateException("Not allowed in event phase");

+		}

+	}

+

+	public void setCharacterEncoding(String charset) {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	public void setContentLength(int len) {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	public void setContentType(String type) {

+		if(portletResponse instanceof RenderResponse) {

+			((RenderResponse)portletResponse).setContentType(type);

+		}

+		else {

+			throw new IllegalStateException("Not allowed in event phase");

+		}

+	}

+

+	public void setLocale(Locale loc) {

+		throw new IllegalStateException("Not allowed in a portlet");

+	}

+

+	public PortletResponse getPortletResponse() {

+		return portletResponse;

+	}

+

+}

diff --git a/api/src/main/java/org/apache/struts2/spi/Interceptor.java b/core/src/main/java/org/apache/struts2/portlet/servlet/package.html
similarity index 69%
copy from api/src/main/java/org/apache/struts2/spi/Interceptor.java
copy to core/src/main/java/org/apache/struts2/portlet/servlet/package.html
index 33cd847..80028a3 100644
--- a/api/src/main/java/org/apache/struts2/spi/Interceptor.java
+++ b/core/src/main/java/org/apache/struts2/portlet/servlet/package.html
@@ -1,36 +1,27 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.spi;
-
-/**
- * Intercepts an action request.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface Interceptor {
-
-    /**
-     * Intercepts an action request.
-     *
-     * @param requestContext current request context
-     */
-    String intercept(RequestContext requestContext) throws Exception;
-}
+<!--

+/*

+ * $Id: package.html 559206 2007-07-24 21:01:18Z apetrelli $

+ *

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you 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.

+ */

+-->

+<body>

+	Portlet wrapper objects for some of the servlet api objects. The wrappers simply delegate to the 

+	underlying, corresponding portlet objects. The portlet wrapper objects makes it easier to reuse 

+	interceptors and components from struts2 core.

+</body>
\ No newline at end of file
diff --git a/core/src/main/java/org/apache/struts2/portlet/util/HttpServletRequestMock.java b/core/src/main/java/org/apache/struts2/portlet/util/HttpServletRequestMock.java
deleted file mode 100644
index 9397566..0000000
--- a/core/src/main/java/org/apache/struts2/portlet/util/HttpServletRequestMock.java
+++ /dev/null
@@ -1,278 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.portlet.util;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.security.Principal;
-import java.util.Enumeration;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletInputStream;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-
-/**
- * A simple mock class to interact with Struts 2 API's that require a servlet request
- */
-public class HttpServletRequestMock implements HttpServletRequest {
-
-    private String servletPath;
-    private Map parameterMap;
-    
-    public String getAuthType() {
-        return null;
-    }
-
-    public String getContextPath() {
-        return null;
-    }
-
-    public Cookie[] getCookies() {
-        return null;
-    }
-
-    public long getDateHeader(String arg0) {
-        return 0;
-    }
-
-    public String getHeader(String arg0) {
-        return null;
-    }
-
-    public Enumeration getHeaderNames() {
-        return null;
-    }
-
-    public Enumeration getHeaders(String arg0) {
-        return null;
-    }
-
-    public int getIntHeader(String arg0) {
-        return 0;
-    }
-
-    public String getMethod() {
-        return null;
-    }
-
-    public String getPathInfo() {
-        return null;
-    }
-
-    public String getPathTranslated() {
-        return null;
-    }
-
-    public String getQueryString() {
-        return null;
-    }
-
-    public String getRemoteUser() {
-        return null;
-    }
-
-    public String getRequestURI() {
-        return null;
-    }
-
-    public StringBuffer getRequestURL() {
-        return null;
-    }
-
-    public String getRequestedSessionId() {
-        return null;
-    }
-
-    public String getServletPath() {
-        return servletPath;
-    }
-
-    public HttpSession getSession() {
-        return null;
-    }
-
-    public HttpSession getSession(boolean arg0) {
-        return null;
-    }
-
-    public Principal getUserPrincipal() {
-        return null;
-    }
-
-    public boolean isRequestedSessionIdFromCookie() {
-        return false;
-    }
-
-    public boolean isRequestedSessionIdFromURL() {
-        return false;
-    }
-
-    public boolean isRequestedSessionIdFromUrl() {
-        return false;
-    }
-
-    public boolean isRequestedSessionIdValid() {
-        return false;
-    }
-
-    public boolean isUserInRole(String arg0) {
-        return false;
-    }
-
-    public Object getAttribute(String arg0) {
-        return null;
-    }
-
-    public Enumeration getAttributeNames() {
-        return null;
-    }
-
-    public String getCharacterEncoding() {
-        return null;
-    }
-
-    public int getContentLength() {
-        return 0;
-    }
-
-    public String getContentType() {
-        return null;
-    }
-
-    public ServletInputStream getInputStream() throws IOException {
-        return null;
-    }
-
-    public String getLocalAddr() {
-        return null;
-    }
-
-    public String getLocalName() {
-        return null;
-    }
-
-    public int getLocalPort() {
-        return 0;
-    }
-
-    public Locale getLocale() {
-        return null;
-    }
-
-    public Enumeration getLocales() {
-        return null;
-    }
-
-    public String getParameter(String arg0) {
-        return null;
-    }
-
-    public Map getParameterMap() {
-        return parameterMap;
-    }
-
-    public Enumeration getParameterNames() {
-        return null;
-    }
-
-    public String[] getParameterValues(String arg0) {
-        return null;
-    }
-
-    public String getProtocol() {
-        return null;
-    }
-
-    public BufferedReader getReader() throws IOException {
-        return null;
-    }
-
-    public String getRealPath(String arg0) {
-        return null;
-    }
-
-    public String getRemoteAddr() {
-        return null;
-    }
-
-    public String getRemoteHost() {
-        return null;
-    }
-
-    public int getRemotePort() {
-        return 0;
-    }
-
-    public RequestDispatcher getRequestDispatcher(String arg0) {
-        return null;
-    }
-
-    public String getScheme() {
-        return null;
-    }
-
-    public String getServerName() {
-        return null;
-    }
-
-    public int getServerPort() {
-        return 0;
-    }
-
-    public boolean isSecure() {
-        return false;
-    }
-
-    public void removeAttribute(String arg0) {
-    }
-
-    public void setAttribute(String arg0, Object arg1) {
-    }
-
-    public void setCharacterEncoding(String arg0)
-            throws UnsupportedEncodingException {
-
-    }
-
-    /**
-     * @param parameterMap the parameterMap to set
-     */
-    public HttpServletRequestMock setParameterMap(Map parameterMap) {
-        this.parameterMap = parameterMap;
-        return this;
-    }
-
-    /**
-     * @param servletPath the servletPath to set
-     */
-    public HttpServletRequestMock setServletPath(String servletPath) {
-        this.servletPath = servletPath;
-        return this;
-    }
-    
-    
-
-}
diff --git a/core/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelper.java b/core/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelper.java
index 8e0679d..73e145a 100644
--- a/core/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelper.java
+++ b/core/src/main/java/org/apache/struts2/portlet/util/PortletUrlHelper.java
@@ -22,8 +22,8 @@
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
-import java.util.HashMap;
 import java.util.Iterator;
+import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.StringTokenizer;
 
@@ -59,15 +59,16 @@
      *
      * @param action The action the URL should invoke.
      * @param namespace The namespace of the action to invoke.
+     * @param method The method of the action to invoke.
      * @param params The parameters of the URL.
      * @param type The type of the url, either <tt>action</tt> or <tt>render</tt>
      * @param mode The PortletMode of the URL.
      * @param state The WindowState of the URL.
      * @return The URL String.
      */
-    public static String buildUrl(String action, String namespace, Map params,
+    public static String buildUrl(String action, String namespace, String method, Map params,
             String type, String mode, String state) {
-        return buildUrl(action, namespace, params, null, type, mode, state,
+        return buildUrl(action, namespace, method, params, null, type, mode, state,
                 true, true);
     }
 
@@ -76,9 +77,10 @@
      *
      * @see #buildUrl(String, String, Map, String, String, String)
      */
-    public static String buildUrl(String action, String namespace, Map params,
+    public static String buildUrl(String action, String namespace, String method, Map params,
             String scheme, String type, String portletMode, String windowState,
             boolean includeContext, boolean encodeResult) {
+    	StringBuffer resultingAction = new StringBuffer();
         RenderRequest request = PortletActionContext.getRenderRequest();
         RenderResponse response = PortletActionContext.getRenderResponse();
         LOG.debug("Creating url. Action = " + action + ", Namespace = "
@@ -102,15 +104,17 @@
             }
         }
         if (TextUtils.stringSet(namespace)) {
-            StringBuffer sb = new StringBuffer();
-            sb.append(namespace);
+            resultingAction.append(namespace);
             if(!action.startsWith("/") && !namespace.endsWith("/")) {
-                sb.append("/");
+                resultingAction.append("/");
             }
-            action = sb.append(action).toString();
-            LOG.debug("Resulting actionPath: " + action);
         }
-        params.put(PortletActionConstants.ACTION_PARAM, new String[] { action });
+        resultingAction.append(action);
+        if(TextUtils.stringSet(method)) {
+        	resultingAction.append("!").append(method);
+        }
+        LOG.debug("Resulting actionPath: " + resultingAction);
+        params.put(PortletActionConstants.ACTION_PARAM, new String[] { resultingAction.toString() });
 
         PortletURL url = null;
         if ("action".equalsIgnoreCase(type)) {
@@ -230,7 +234,7 @@
     public static Map ensureParamsAreStringArrays(Map params) {
         Map result = null;
         if (params != null) {
-            result = new HashMap(params.size());
+            result = new LinkedHashMap(params.size());
             Iterator it = params.keySet().iterator();
             while (it.hasNext()) {
                 Object key = it.next();
diff --git a/core/src/main/java/org/apache/struts2/servlet/interceptor/ServletPrincipalProxy.java b/core/src/main/java/org/apache/struts2/servlet/interceptor/ServletPrincipalProxy.java
index 03b776d..de5ff70 100644
--- a/core/src/main/java/org/apache/struts2/servlet/interceptor/ServletPrincipalProxy.java
+++ b/core/src/main/java/org/apache/struts2/servlet/interceptor/ServletPrincipalProxy.java
@@ -1,3 +1,23 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
 package org.apache.struts2.servlet.interceptor;
 
 import org.apache.struts2.interceptor.PrincipalProxy;
diff --git a/core/src/main/java/org/apache/struts2/util/ContainUtil.java b/core/src/main/java/org/apache/struts2/util/ContainUtil.java
index 214ddf9..4d0d852 100644
--- a/core/src/main/java/org/apache/struts2/util/ContainUtil.java
+++ b/core/src/main/java/org/apache/struts2/util/ContainUtil.java
@@ -80,7 +80,7 @@
                 return true;
             }
         } else if (obj1 instanceof Collection) {
-            if (((Collection) obj1).contains(obj2)) {
+            if (((Collection) obj1).contains(obj2) || ((Collection) obj1).contains(obj2.toString())) {
                 //log.debug("obj1 is a collection and contains obj2");
                 return true;
             }
@@ -94,6 +94,9 @@
                     return true;
                 }
             }
+        } else if (obj1.toString().equals(obj2.toString())) {
+            //log.debug("obj1 is an object and it's String representation equals obj2's String representation.");
+            return true;
         } else if (obj1.equals(obj2)) {
             //log.debug("obj1 is an object and equals obj2");
             return true;
diff --git a/core/src/main/java/org/apache/struts2/views/annotations/StrutsTagAttribute.java b/core/src/main/java/org/apache/struts2/views/annotations/StrutsTagAttribute.java
index 34144cc..110aaa1 100644
--- a/core/src/main/java/org/apache/struts2/views/annotations/StrutsTagAttribute.java
+++ b/core/src/main/java/org/apache/struts2/views/annotations/StrutsTagAttribute.java
@@ -36,7 +36,7 @@
 
     boolean required() default false;
 
-    boolean rtexprvalue() default true;
+    boolean rtexprvalue() default false;
 
     String description();
 
diff --git a/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java b/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
index fc5ffb7..f46e120 100644
--- a/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
+++ b/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
@@ -105,7 +105,7 @@
  */
 public class FreemarkerManager {
 
-    private static final Log log = LogFactory.getLog(FreemarkerManager.class);
+    private static final Log LOG = LogFactory.getLog(FreemarkerManager.class);
     public static final String CONFIG_SERVLET_CONTEXT_KEY = "freemarker.Configuration";
     public static final String KEY_EXCEPTION = "exception";
 
@@ -262,7 +262,7 @@
             try {
                 templatePathLoader = new FileTemplateLoader(new File(templatePath));
             } catch (IOException e) {
-                log.error("Invalid template path specified: " + e.getMessage(), e);
+                LOG.error("Invalid template path specified: " + e.getMessage(), e);
             }
         }
 
@@ -317,8 +317,10 @@
      * @see freemarker.template.Configuration#setSettings for the definition of valid settings
      */
     protected void loadSettings(ServletContext servletContext, freemarker.template.Configuration configuration) {
+        InputStream in = null;
+
         try {
-            InputStream in = FileManager.loadFile("freemarker.properties", FreemarkerManager.class);
+            in = FileManager.loadFile("freemarker.properties", FreemarkerManager.class);
 
             if (in != null) {
                 Properties p = new Properties();
@@ -326,9 +328,17 @@
                 configuration.setSettings(p);
             }
         } catch (IOException e) {
-            log.error("Error while loading freemarker settings from /freemarker.properties", e);
+            LOG.error("Error while loading freemarker settings from /freemarker.properties", e);
         } catch (TemplateException e) {
-            log.error("Error while loading freemarker settings from /freemarker.properties", e);
+            LOG.error("Error while loading freemarker settings from /freemarker.properties", e);
+        } finally {
+            if (in != null) {
+                try {
+                    in.close();
+                } catch(IOException io) {
+                    LOG.warn("Unable to close input stream", io);
+                }
+            }
         }
     }
 
diff --git a/core/src/main/java/org/apache/struts2/views/freemarker/PortletFreemarkerResult.java b/core/src/main/java/org/apache/struts2/views/freemarker/PortletFreemarkerResult.java
index 5063126..a010b47 100644
--- a/core/src/main/java/org/apache/struts2/views/freemarker/PortletFreemarkerResult.java
+++ b/core/src/main/java/org/apache/struts2/views/freemarker/PortletFreemarkerResult.java
@@ -20,33 +20,24 @@
  */
 package org.apache.struts2.views.freemarker;
 
-import java.io.IOException;
-import java.io.Writer;
-import java.util.Locale;
-
-import javax.portlet.ActionResponse;
-import javax.portlet.PortletException;
-import javax.portlet.PortletRequestDispatcher;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
+import com.opensymphony.xwork2.ActionInvocation;
+import com.opensymphony.xwork2.inject.Inject;
+import com.opensymphony.xwork2.util.ValueStack;
+import freemarker.template.*;
 import org.apache.struts2.ServletActionContext;
 import org.apache.struts2.dispatcher.StrutsResultSupport;
 import org.apache.struts2.portlet.PortletActionConstants;
 import org.apache.struts2.portlet.context.PortletActionContext;
 import org.apache.struts2.views.util.ResourceUtil;
 
-import com.opensymphony.xwork2.ActionInvocation;
-import com.opensymphony.xwork2.inject.Inject;
-import com.opensymphony.xwork2.util.ValueStack;
-
-import freemarker.template.Configuration;
-import freemarker.template.ObjectWrapper;
-import freemarker.template.Template;
-import freemarker.template.TemplateException;
-import freemarker.template.TemplateModel;
-import freemarker.template.TemplateModelException;
+import javax.portlet.ActionResponse;
+import javax.portlet.PortletException;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.Writer;
+import java.util.Locale;
 
 /**
  */
@@ -136,7 +127,6 @@
     private void executeRenderResult(String location,
                                      ActionInvocation invocation) throws TemplateException, IOException,
             TemplateModelException, PortletException {
-        prepareServletActionContext();
         this.location = location;
         this.invocation = invocation;
         this.configuration = getConfiguration();
@@ -165,17 +155,6 @@
     }
 
     /**
-     *
-     */
-    private void prepareServletActionContext() throws PortletException,
-            IOException {
-        PortletRequestDispatcher disp = PortletActionContext.getPortletConfig()
-                .getPortletContext().getNamedDispatcher("preparator");
-        disp.include(PortletActionContext.getRenderRequest(),
-                PortletActionContext.getRenderResponse());
-    }
-
-    /**
      * This method is called from {@link #doExecute(String, ActionInvocation)}
      * to obtain the FreeMarker configuration object that this result will use
      * for template loading. This is a hook that allows you to custom-configure
diff --git a/core/src/main/java/org/apache/struts2/views/freemarker/tags/StrutsModels.java b/core/src/main/java/org/apache/struts2/views/freemarker/tags/StrutsModels.java
index 640ec2e..5dd3f38 100644
--- a/core/src/main/java/org/apache/struts2/views/freemarker/tags/StrutsModels.java
+++ b/core/src/main/java/org/apache/struts2/views/freemarker/tags/StrutsModels.java
@@ -115,7 +115,7 @@
         return comboBox;
     }
 
-    public AutocompleterModel getAutocompleterModel() {
+    public AutocompleterModel getAutocompleter() {
         if (autocompleterModel == null) {
             autocompleterModel = new AutocompleterModel(stack, req, res);
         }
@@ -242,7 +242,7 @@
         return date;
     }
 
-    public DateTimePickerModel getDateTimePicker() {
+    public DateTimePickerModel getDatetimepicker() {
         if (dateTimePicker == null) {
             dateTimePicker = new DateTimePickerModel(stack, req, res);
         }
diff --git a/core/src/main/java/org/apache/struts2/views/freemarker/tags/TagModel.java b/core/src/main/java/org/apache/struts2/views/freemarker/tags/TagModel.java
index d646301..a1f9965 100644
--- a/core/src/main/java/org/apache/struts2/views/freemarker/tags/TagModel.java
+++ b/core/src/main/java/org/apache/struts2/views/freemarker/tags/TagModel.java
@@ -31,15 +31,16 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.struts2.components.ActionComponent;
 import org.apache.struts2.components.Component;
 import org.apache.struts2.dispatcher.Dispatcher;
 
 import com.opensymphony.xwork2.inject.Container;
 import com.opensymphony.xwork2.util.ValueStack;
 
+import freemarker.template.DefaultObjectWrapper;
 import freemarker.template.SimpleNumber;
 import freemarker.template.SimpleSequence;
+import freemarker.template.TemplateModel;
 import freemarker.template.TemplateModelException;
 import freemarker.template.TemplateTransformModel;
 
@@ -56,18 +57,48 @@
         this.res = res;
     }
 
-    public Writer getWriter(Writer writer, Map params) throws TemplateModelException, IOException {
+    public Writer getWriter(Writer writer, Map params)
+        throws TemplateModelException, IOException {
         Component bean = getBean();
         Container container = Dispatcher.getInstance().getConfigurationManager().getConfiguration().getContainer();
         container.inject(bean);
-        Map basicParams = convertParams(params);
-        bean.copyParams(basicParams);
-        bean.addAllParameters(getComplexParams(params));
+
+        Map unwrappedParameters = unwrapParameters(params);
+        bean.copyParams(unwrappedParameters);
+
         return new CallbackWriter(bean, writer);
     }
 
     protected abstract Component getBean();
 
+    protected Map unwrapParameters(Map params) {
+        Map map = new HashMap(params.size());
+        DefaultObjectWrapper objectWrapper = new DefaultObjectWrapper();
+        for (Iterator iterator = params.entrySet().iterator(); iterator.hasNext();) {
+            Map.Entry entry = (Map.Entry) iterator.next();
+
+            Object value = entry.getValue();
+
+            if (value != null) {
+                // the value should ALWAYS be a decendant of TemplateModel
+                if (value instanceof TemplateModel) {
+                    try {
+                        map.put(entry.getKey(), objectWrapper
+                            .unwrap((TemplateModel) value));
+                    } catch (TemplateModelException e) {
+                        LOG.error("failed to unwrap [" + value
+                            + "] it will be ignored", e);
+                    }
+                }
+                // if it doesn't, we'll do it the old way by just returning the toString() representation
+                else {
+                    map.put(entry.getKey(), value.toString());
+                }
+            }
+        }
+        return map;
+    }
+
     protected Map convertParams(Map params) {
         HashMap map = new HashMap(params.size());
         for (Iterator iterator = params.entrySet().iterator(); iterator.hasNext();) {
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/StrutsBodyTagSupport.java b/core/src/main/java/org/apache/struts2/views/jsp/StrutsBodyTagSupport.java
index 2dab218..b20aa5f 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/StrutsBodyTagSupport.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/StrutsBodyTagSupport.java
@@ -25,6 +25,7 @@
 import javax.servlet.jsp.tagext.BodyTagSupport;
 
 import org.apache.struts2.util.FastByteArrayOutputStream;
+import org.apache.struts2.views.annotations.StrutsTagAttribute;
 import org.apache.struts2.views.util.ContextUtil;
 
 import com.opensymphony.xwork2.util.ValueStack;
@@ -38,10 +39,7 @@
 
     private static final long serialVersionUID = -1201668454354226175L;
 
-    /**
-     * @s.tagattribute required="false" type="String"
-     * description="The id of the tag element."
-     */
+    @StrutsTagAttribute(required=false,description="The id of the tag element")
     public void setId(String string) {
         super.setId(string);
     }
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/TagUtils.java b/core/src/main/java/org/apache/struts2/views/jsp/TagUtils.java
index 4aeb91e..5d1a123 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/TagUtils.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/TagUtils.java
@@ -38,6 +38,7 @@
 
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionInvocation;
+import com.opensymphony.xwork2.config.ConfigurationException;
 import com.opensymphony.xwork2.util.ValueStack;
 import com.opensymphony.xwork2.util.ValueStackFactory;
 
@@ -55,6 +56,11 @@
 
             HttpServletResponse res = (HttpServletResponse) pageContext.getResponse();
             Dispatcher du = Dispatcher.getInstance();
+            if (du == null) {
+                throw new ConfigurationException("The Struts dispatcher cannot be found.  This is usually caused by "+
+                        "using Struts tags without the associated filter. Struts tags are only usable when the request "+
+                        "has passed through its servlet filter, which initializes the Struts dispatcher needed for this tag.");
+            }
             Map extraContext = du.createContextMap(new RequestMap(req),
                     req.getParameterMap(),
                     new SessionMap(req),
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/URLTag.java b/core/src/main/java/org/apache/struts2/views/jsp/URLTag.java
index f8fbb53..847b19f 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/URLTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/URLTag.java
@@ -44,10 +44,12 @@
     protected String method;
     protected String encode;
     protected String includeContext;
+    protected String escapeAmp;
     protected String portletMode;
     protected String windowState;
     protected String portletUrlType;
     protected String anchor;
+    protected String forceAddSchemeHostAndPort;
 
     public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
         return new URL(stack, req, res);
@@ -74,6 +76,12 @@
         if (includeContext != null) {
             url.setIncludeContext(Boolean.valueOf(includeContext).booleanValue());
         }
+        if (escapeAmp != null) {
+            url.setEscapeAmp(Boolean.valueOf(escapeAmp).booleanValue());
+        }
+	if (forceAddSchemeHostAndPort != null) {
+            url.setForceAddSchemeHostAndPort(Boolean.valueOf(forceAddSchemeHostAndPort).booleanValue());
+        }
     }
 
     public void setEncode(String encode) {
@@ -84,6 +92,10 @@
         this.includeContext = includeContext;
     }
 
+    public void setEscapeAmp(String escapeAmp) {
+        this.escapeAmp = escapeAmp;
+    }
+
     public void setIncludeParams(String name) {
         includeParams = name;
     }
@@ -107,12 +119,15 @@
     public void setValue(String value) {
         this.value = value;
     }
+
     public void setPortletMode(String portletMode) {
         this.portletMode = portletMode;
     }
+
     public void setPortletUrlType(String portletUrlType) {
         this.portletUrlType = portletUrlType;
     }
+
     public void setWindowState(String windowState) {
         this.windowState = windowState;
     }
@@ -120,4 +135,8 @@
     public void setAnchor(String anchor) {
         this.anchor = anchor;
     }
+
+    public void setForceAddSchemeHostAndPort(String forceAddSchemeHostAndPort) {
+        this.forceAddSchemeHostAndPort = forceAddSchemeHostAndPort;
+    }
 }
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/iterator/IteratorGeneratorTag.java b/core/src/main/java/org/apache/struts2/views/jsp/iterator/IteratorGeneratorTag.java
index a4dafc7..7838625 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/iterator/IteratorGeneratorTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/iterator/IteratorGeneratorTag.java
@@ -205,7 +205,7 @@
                 count = ((Long)countObj).intValue();
             }
             else if (countObj instanceof Double) {
-                count = ((Long)countObj).intValue();
+                count = ((Double)countObj).intValue();
             }
             else if (countObj instanceof String) {
                 try {
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/iterator/SubsetIteratorTag.java b/core/src/main/java/org/apache/struts2/views/jsp/iterator/SubsetIteratorTag.java
index 7df704f..6a6b2ac 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/iterator/SubsetIteratorTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/iterator/SubsetIteratorTag.java
@@ -194,7 +194,7 @@
 
         // source
         Object source = null;
-        if (sourceAttr == null && sourceAttr.length() <= 0) {
+        if (sourceAttr == null || sourceAttr.length() == 0) {
             source = findValue("top");
         } else {
             source = findValue(sourceAttr);
@@ -214,7 +214,7 @@
                 count = ((Long)countObj).intValue();
             }
             else if (countObj instanceof Double) {
-                count = ((Long)countObj).intValue();
+                count = ((Double)countObj).intValue();
             }
             else if (countObj instanceof String) {
                 try {
@@ -240,7 +240,7 @@
                 start = ((Long)startObj).intValue();
             }
             else if (startObj instanceof Double) {
-                start = ((Long)startObj).intValue();
+                start = ((Double)startObj).intValue();
             }
             else if (startObj instanceof String) {
                 try {
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/package.html b/core/src/main/java/org/apache/struts2/views/jsp/package.html
index f17fa99..de23ede 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/package.html
+++ b/core/src/main/java/org/apache/struts2/views/jsp/package.html
@@ -1 +1,23 @@
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <body>Struts's JSP tag library.</body>
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractRemoteCallUITag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractRemoteCallUITag.java
index 223789f..34955e6 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractRemoteCallUITag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractRemoteCallUITag.java
@@ -34,6 +34,7 @@
     protected String formFilter;
     protected String showErrorTransportText;
     protected String indicator;
+    protected String showLoadingText;
 
     protected void populateParams() {
         super.populateParams();
@@ -52,6 +53,7 @@
         remote.setNotifyTopics(notifyTopics);
         remote.setShowErrorTransportText(showErrorTransportText);
         remote.setIndicator(indicator);
+        remote.setShowLoadingText(showLoadingText);
     }
 
     public void setHref(String href) {
@@ -108,4 +110,8 @@
     public void setIndicator(String indicator) {
         this.indicator = indicator;
     }
+
+    public void setShowLoadingText(String showLoadingText) {
+        this.showLoadingText = showLoadingText;
+    }
 }
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/ui/AnchorTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/AnchorTag.java
index bb275ea..5980b74 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/ui/AnchorTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/AnchorTag.java
@@ -36,7 +36,6 @@
 	private static final long serialVersionUID = -1034616578492431113L;
 
     protected String targets;
-    protected String preInvokeJS;
 
     public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
         return new Anchor(stack, req, res);
@@ -57,6 +56,11 @@
     public void setPreInvokeJS(String preInvokeJS) {
         this.beforeLoading = preInvokeJS;
     }
+    
+    @Deprecated()
+    public void setOnLoadJS(String onLoadJS) {
+        this.afterLoading = onLoadJS;
+    }
 }
 
 
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/ui/AutocompleterTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/AutocompleterTag.java
index e9f38f5..cc7ad70 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/ui/AutocompleterTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/AutocompleterTag.java
@@ -50,7 +50,12 @@
     protected String loadOnTextChange;
     protected String loadMinimumCount;
     protected String showDownArrow;
-
+    protected String templateCssPath;
+    protected String iconPath;
+    protected String keyName;
+    protected String dataFieldName;
+    protected String resultsLimit;
+    
     public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
         return new Autocompleter(stack, req, res);
     }
@@ -75,6 +80,11 @@
         autocompleter.setLoadMinimumCount(loadMinimumCount);
         autocompleter.setLoadOnTextChange(loadOnTextChange);
         autocompleter.setShowDownArrow(showDownArrow);
+        autocompleter.setTemplateCssPath(templateCssPath);
+        autocompleter.setIconPath(iconPath);
+        autocompleter.setKeyName(keyName);
+        autocompleter.setDataFieldName(dataFieldName);
+        autocompleter.setResultsLimit(resultsLimit);
     }
 
     public void setAutoComplete(String autoComplete) {
@@ -145,4 +155,23 @@
         this.showDownArrow = showDownArrow;
     }
 
+    public void setTemplateCssPath(String templateCssPath) {
+        this.templateCssPath = templateCssPath;
+    }
+    
+    public void setIconPath(String iconPath) {
+        this.iconPath = iconPath;
+    }
+
+    public void setKeyName(String keyName) {
+        this.keyName = keyName;
+    }
+
+    public void setDataFieldName(String dataFieldName) {
+        this.dataFieldName = dataFieldName;
+    }
+
+    public void setResultsLimit(String resultsLimit) {
+        this.resultsLimit = resultsLimit;
+    }
 }
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/ui/DateTimePickerTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/DateTimePickerTag.java
index 4efc287..792123c 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/ui/DateTimePickerTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/DateTimePickerTag.java
@@ -50,6 +50,7 @@
     protected String toggleType;
     protected String toggleDuration;
     protected String type;
+    protected String templateCssPath;
 
     public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
         return new DateTimePicker(stack, req, res);
@@ -73,6 +74,7 @@
         dateTimePicker.setToggleType(toggleType);
         dateTimePicker.setToggleDuration(toggleDuration);
         dateTimePicker.setType(type);
+        dateTimePicker.setTemplateCssPath(templateCssPath);
     }
 
     public void setAdjustWeeks(String adjustWeeks) {
@@ -130,4 +132,8 @@
     public void setType(String type) {
         this.type = type;
     }
+    
+    public void setTemplateCssPath(String templateCssPath) {
+        this.templateCssPath = templateCssPath;
+    }
 }
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/ui/DivTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/DivTag.java
index a3a19d3..29471d3 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/ui/DivTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/DivTag.java
@@ -38,7 +38,8 @@
     protected String startTimerListenTopics;
     protected String stopTimerListenTopics;
     protected String refreshOnShow;
-
+    protected String separateScripts;
+    
     public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
         return new Div(stack, req, res);
     }
@@ -53,6 +54,7 @@
         div.setStartTimerListenTopics(startTimerListenTopics);
         div.setStopTimerListenTopics(stopTimerListenTopics);
         div.setRefreshOnShow(refreshOnShow);
+        div.setSeparateScripts(separateScripts);
     }
 
     public void setAutoStart(String autoStart) {
@@ -78,4 +80,8 @@
     public void setRefreshOnShow(String refreshOnShow) {
         this.refreshOnShow = refreshOnShow;
     }
+
+    public void setSeparateScripts(String separateScripts) {
+        this.separateScripts = separateScripts;
+    }
 }
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/ui/OptionTransferSelectTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/OptionTransferSelectTag.java
index a60bfdb..cdc9dac 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/ui/OptionTransferSelectTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/OptionTransferSelectTag.java
@@ -59,6 +59,13 @@
     protected String rightUpLabel;
     protected String rightDownLabel;
 
+    protected String addToLeftOnclick;
+    protected String addToRightOnclick;
+    protected String addAllToLeftOnclick;
+    protected String addAllToRightOnclick;
+    protected String selectAllOnclick;
+    protected String upDownOnLeftOnclick;
+    protected String upDownOnRightOnclick;
 
     public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
         return new OptionTransferSelect(stack, req, res);
@@ -91,6 +98,14 @@
 
         optionTransferSelect.setLeftTitle(leftTitle);
         optionTransferSelect.setRightTitle(rightTitle);
+
+        optionTransferSelect.setAddToLeftOnclick(addToLeftOnclick);
+        optionTransferSelect.setAddToRightOnclick(addToRightOnclick);
+        optionTransferSelect.setAddAllToLeftOnclick(addAllToLeftOnclick);
+        optionTransferSelect.setAddAllToRightOnclick(addAllToRightOnclick);
+        optionTransferSelect.setSelectAllOnclick(selectAllOnclick);
+        optionTransferSelect.setUpDownOnLeftOnclick(upDownOnLeftOnclick);
+        optionTransferSelect.setUpDownOnRightOnclick(upDownOnRightOnclick);
     }
 
 
@@ -272,4 +287,60 @@
     public String getButtonCssStyle() {
         return this.buttonCssStyle;
     }
+
+    public String getAddAllToLeftOnclick() {
+        return this.addAllToLeftOnclick;
+    }
+
+    public void setAddAllToLeftOnclick(String addAllToLeftOnclick) {
+        this.addAllToLeftOnclick = addAllToLeftOnclick;
+    }
+
+    public String getAddAllToRightOnclick() {
+        return this.addAllToRightOnclick;
+    }
+
+    public void setAddAllToRightOnclick(String addAllToRightOnclick) {
+        this.addAllToRightOnclick = addAllToRightOnclick;
+    }
+
+    public String getAddToLeftOnclick() {
+        return this.addToLeftOnclick;
+    }
+
+    public void setAddToLeftOnclick(String addToLeftOnclick) {
+        this.addToLeftOnclick = addToLeftOnclick;
+    }
+
+    public String getAddToRightOnclick() {
+        return this.addToRightOnclick;
+    }
+
+    public void setAddToRightOnclick(String addToRightOnclick) {
+        this.addToRightOnclick = addToRightOnclick;
+    }
+
+    public String getUpDownOnLeftOnclick() {
+        return this.upDownOnLeftOnclick;
+    }
+
+    public void setUpDownOnLeftOnclick(String upDownOnLeftOnclick) {
+        this.upDownOnLeftOnclick = upDownOnLeftOnclick;
+    }
+
+    public String getUpDownOnRightOnclick() {
+        return this.upDownOnRightOnclick;
+    }
+
+    public void setUpDownOnRightOnclick(String upDownOnRightOnclick) {
+        this.upDownOnRightOnclick = upDownOnRightOnclick;
+    }
+
+    public void setSelectAllOnclick(String selectAllOnclick) {
+        this.selectAllOnclick = selectAllOnclick;
+    }
+
+    public String getSelectAllOnclick() {
+        return this.selectAllOnclick;
+    }
 }
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/ui/SubmitTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/SubmitTag.java
index 875f92f..0fd6291 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/ui/SubmitTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/SubmitTag.java
@@ -51,6 +51,7 @@
     protected String src;
     protected String showErrorTransportText;
     protected String indicator;
+    protected String showLoadingText;
 
     //these two are called "preInvokeJS" and "onLoadJS" on the tld
     //Names changed here to keep some consistency
@@ -87,6 +88,7 @@
         submit.setNotifyTopics(notifyTopics);
         submit.setShowErrorTransportText(showErrorTransportText);
         submit.setIndicator(indicator);
+        submit.setShowLoadingText(showLoadingText);
     }
 
     public void setAction(String action) {
@@ -175,4 +177,8 @@
     public void setIndicator(String indicator) {
         this.indicator = indicator;
     }
+
+    public void setShowLoadingText(String showLoadingText) {
+        this.showLoadingText = showLoadingText;
+    }
 }
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/ui/TabbedPanelTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/TabbedPanelTag.java
index 2809c99..c4955b3 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/ui/TabbedPanelTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/TabbedPanelTag.java
@@ -38,6 +38,8 @@
     private String selectedTab;
     private String closeButton;
     private String doLayout;
+    private String templateCssPath;
+    private String useSelectedTabCookie;
 
     public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
         return new TabbedPanel(stack, req, res);
@@ -50,6 +52,8 @@
         tabbedPanel.setCloseButton(closeButton);
         tabbedPanel.setDoLayout(doLayout);
         tabbedPanel.setLabelposition(labelPosition);
+        tabbedPanel.setTemplateCssPath(templateCssPath);
+        tabbedPanel.setUseSelectedTabCookie(useSelectedTabCookie);
     }
 
     public void setSelectedTab(String selectedTab) {
@@ -63,4 +67,12 @@
     public void setDoLayout(String doLayout) {
         this.doLayout = doLayout;
     }
+
+    public void setTemplateCssPath(String templateCssPath) {
+        this.templateCssPath = templateCssPath;
+    }
+
+    public void setUseSelectedTabCookie( String useSelectedTabCookie ) {
+        this.useSelectedTabCookie = useSelectedTabCookie;
+    }
 }
diff --git a/core/src/main/java/org/apache/struts2/views/util/TextUtil.java b/core/src/main/java/org/apache/struts2/views/util/TextUtil.java
index 21d5c99..81f892d 100644
--- a/core/src/main/java/org/apache/struts2/views/util/TextUtil.java
+++ b/core/src/main/java/org/apache/struts2/views/util/TextUtil.java
@@ -159,18 +159,18 @@
         addMapping(0xa1, "&iexcl;", strings); //
         addMapping(0xa2, "&cent;", strings); //
         addMapping(0xa3, "&pound;", strings); //
-        addMapping(0xa9, "&copy;", strings); // �
-        addMapping(0xae, "&reg;", strings); // �
+        addMapping(0xa9, "&copy;", strings); //
+        addMapping(0xae, "&reg;", strings); //
         addMapping(0xbf, "&iquest;", strings); //
 
-        addMapping(0xc0, "&Agrave;", strings); // �
-        addMapping(0xc1, "&Aacute;", strings); // �
-        addMapping(0xc2, "&Acirc;", strings); // �
-        addMapping(0xc3, "&Atilde;", strings); // �
-        addMapping(0xc4, "&Auml;", strings); // �
-        addMapping(0xc5, "&Aring;", strings); // �
-        addMapping(0xc6, "&AElig;", strings); // �
-        addMapping(0xc7, "&Ccedil;", strings); // �
+        addMapping(0xc0, "&Agrave;", strings); //
+        addMapping(0xc1, "&Aacute;", strings); //
+        addMapping(0xc2, "&Acirc;", strings); //
+        addMapping(0xc3, "&Atilde;", strings); //
+        addMapping(0xc4, "&Auml;", strings); //
+        addMapping(0xc5, "&Aring;", strings); //
+        addMapping(0xc6, "&AElig;", strings); //
+        addMapping(0xc7, "&Ccedil;", strings); //
         addMapping(0xc8, "&Egrave;", strings); //
         addMapping(0xc9, "&Eacute;", strings); //
         addMapping(0xca, "&Ecirc;", strings); //
@@ -186,7 +186,7 @@
         addMapping(0xd3, "&Oacute;", strings); //
         addMapping(0xd4, "&Ocirc;", strings); //
         addMapping(0xd5, "&Otilde;", strings); //
-        addMapping(0xd6, "&Ouml;", strings); // �
+        addMapping(0xd6, "&Ouml;", strings); //
         addMapping(0xd7, "&times;", strings); //
         addMapping(0xd8, "&Oslash;", strings); //
         addMapping(0xd9, "&Ugrave;", strings); //
@@ -201,8 +201,8 @@
         addMapping(0xe1, "&aacute;", strings); //
         addMapping(0xe2, "&acirc;", strings); //
         addMapping(0xe3, "&atilde;", strings); //
-        addMapping(0xe4, "&auml;", strings); // �
-        addMapping(0xe5, "&aring;", strings); // �
+        addMapping(0xe4, "&auml;", strings); //
+        addMapping(0xe5, "&aring;", strings); //
         addMapping(0xe6, "&aelig;", strings); //
         addMapping(0xe7, "&ccedil;", strings); //
         addMapping(0xe8, "&egrave;", strings); //
@@ -220,7 +220,7 @@
         addMapping(0xf3, "&oacute;", strings); //
         addMapping(0xf4, "&ocirc;", strings); //
         addMapping(0xf5, "&otilde;", strings); //
-        addMapping(0xf6, "&ouml;", strings); // �
+        addMapping(0xf6, "&ouml;", strings); //
         addMapping(0xf7, "&divide;", strings); //
         addMapping(0xf8, "&oslash;", strings); //
         addMapping(0xf9, "&ugrave;", strings); //
diff --git a/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java b/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java
index d7823fb..446db69 100644
--- a/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java
+++ b/core/src/main/java/org/apache/struts2/views/util/UrlHelper.java
@@ -24,9 +24,11 @@
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.net.URLEncoder;
-import java.util.Collections;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
@@ -37,7 +39,6 @@
 import org.apache.struts2.ServletActionContext;
 import org.apache.struts2.StrutsConstants;
 
-import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.TextParseUtil;
 import com.opensymphony.xwork2.util.ValueStack;
@@ -61,21 +62,22 @@
     private static final int DEFAULT_HTTPS_PORT = 443;
 
     private static final String AMP = "&amp;";
-    
+
     private static int httpPort = DEFAULT_HTTP_PORT;
     private static int httpsPort = DEFAULT_HTTPS_PORT;
     private static String customEncoding;
-    
+
+
     @Inject(StrutsConstants.STRUTS_URL_HTTP_PORT)
     public static void setHttpPort(String val) {
         httpPort = Integer.parseInt(val);
     }
-    
+
     @Inject(StrutsConstants.STRUTS_URL_HTTPS_PORT)
     public static void setHttpsPort(String val) {
         httpsPort = Integer.parseInt(val);
     }
-    
+
     @Inject(StrutsConstants.STRUTS_I18N_ENCODING)
     public static void setCustomEncoding(String val) {
         customEncoding = val;
@@ -90,6 +92,10 @@
     }
 
     public static String buildUrl(String action, HttpServletRequest request, HttpServletResponse response, Map params, String scheme, boolean includeContext, boolean encodeResult, boolean forceAddSchemeHostAndPort) {
+        return buildUrl(action, request, response, params, scheme, includeContext, encodeResult, forceAddSchemeHostAndPort, true);
+    }
+
+    public static String buildUrl(String action, HttpServletRequest request, HttpServletResponse response, Map params, String scheme, boolean includeContext, boolean encodeResult, boolean forceAddSchemeHostAndPort, boolean escapeAmp) {
         StringBuffer link = new StringBuffer();
 
         boolean changedScheme = false;
@@ -103,21 +109,31 @@
             link.append("://");
             link.append(request.getServerName());
 
-            if ((scheme.equals("http") && (httpPort != DEFAULT_HTTP_PORT)) || (scheme.equals("https") && httpsPort != DEFAULT_HTTPS_PORT))
-            {
-                link.append(":");
-                link.append(scheme.equals("http") ? httpPort : httpsPort);
+            if (scheme != null) {
+                // If switching schemes, use the configured port for the particular scheme.
+                if (!scheme.equals(reqScheme)) {
+                    if ((scheme.equals("http") && (httpPort != DEFAULT_HTTP_PORT)) || (scheme.equals("https") && httpsPort != DEFAULT_HTTPS_PORT)) {
+                        link.append(":");
+                        link.append(scheme.equals("http") ? httpPort : httpsPort);
+                    }
+		// Else use the port from the current request.
+                } else {
+                    int reqPort = request.getServerPort();
+
+                    if ((scheme.equals("http") && (reqPort != DEFAULT_HTTP_PORT)) || (scheme.equals("https") && reqPort != DEFAULT_HTTPS_PORT)) {
+                        link.append(":");
+                        link.append(reqPort);
+                    }
+                }
             }
         }
-        else if (
-           (scheme != null) && !scheme.equals(request.getScheme())) {
+        else if ((scheme != null) && !scheme.equals(request.getScheme())) {
             changedScheme = true;
             link.append(scheme);
             link.append("://");
             link.append(request.getServerName());
 
-            if ((scheme.equals("http") && (httpPort != DEFAULT_HTTP_PORT)) || (scheme.equals("https") && httpsPort != DEFAULT_HTTPS_PORT))
-            {
+            if ((scheme.equals("http") && (httpPort != DEFAULT_HTTP_PORT)) || (scheme.equals("https") && httpsPort != DEFAULT_HTTPS_PORT)) {
                 link.append(":");
                 link.append(scheme.equals("http") ? httpPort : httpsPort);
             }
@@ -166,12 +182,20 @@
         }
 
         //if the action was not explicitly set grab the params from the request
-        buildParametersString(params, link);
+        if (escapeAmp) {
+            buildParametersString(params, link);
+        } else {
+            buildParametersString(params, link, "&");
+        }
 
-        String result;
+        String result = link.toString();
+
+        while (result.indexOf("<script>") > 0) {
+            result = result.replaceAll("<script>", "script");
+        }
 
         try {
-            result = encodeResult ? response.encodeURL(link.toString()) : link.toString();
+             result = encodeResult ? response.encodeURL(result) : result;
         } catch (Exception ex) {
             // Could not encode the URL for some reason
             // Use it unchanged
@@ -295,7 +319,26 @@
                     }
                     if (paramName != null) {
                         String translatedParamValue = translateAndDecode(paramValue);
-                        queryParams.put(paramName, translatedParamValue);
+
+                        if(queryParams.containsKey(paramName)) {
+                            // WW-1619 append new param value to existing value(s)
+                            Object currentParam = queryParams.get(paramName);
+                            if(currentParam instanceof String) {
+                                queryParams.put(paramName, new String[] {
+                                        (String) currentParam, translatedParamValue});
+                            } else {
+                                String currentParamValues[] = (String[]) currentParam;
+                                List paramList = new ArrayList(Arrays
+                                    .asList(currentParamValues));
+                                paramList.add(translatedParamValue);
+                                String newParamValues[] = new String[paramList
+                                    .size()];
+                                queryParams.put(paramName, paramList
+                                    .toArray(newParamValues));
+                            }
+                        } else {
+                            queryParams.put(paramName, translatedParamValue);
+                        }
                     }
                 }
             }
diff --git a/core/src/main/java/org/apache/struts2/views/util/package.html b/core/src/main/java/org/apache/struts2/views/util/package.html
index 27945fa..f77c6d5 100644
--- a/core/src/main/java/org/apache/struts2/views/util/package.html
+++ b/core/src/main/java/org/apache/struts2/views/util/package.html
@@ -1 +1,23 @@
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <body>Miscellaneous helper classes for all views.</body>
diff --git a/core/src/main/java/org/apache/struts2/views/velocity/package.html b/core/src/main/java/org/apache/struts2/views/velocity/package.html
index 82188fd..47cb6e2 100644
--- a/core/src/main/java/org/apache/struts2/views/velocity/package.html
+++ b/core/src/main/java/org/apache/struts2/views/velocity/package.html
@@ -1 +1,23 @@
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <body>Classes for views using Velocity.</body>
diff --git a/core/src/main/java/org/apache/struts2/views/xslt/AbstractAdapterNode.java b/core/src/main/java/org/apache/struts2/views/xslt/AbstractAdapterNode.java
index 0ad0545..f90dad1 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/AbstractAdapterNode.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/AbstractAdapterNode.java
@@ -131,8 +131,10 @@
     public Node getChildBeforeOrAfter(Node child, boolean before) {
         log.debug("getChildBeforeOrAfter: ");
         List adapters = getChildAdapters();
-        log.debug("childAdapters = " + adapters);
-        log.debug("child = " + child);
+        if (log.isDebugEnabled()) {
+            log.debug("childAdapters = " + adapters);
+            log.debug("child = " + child);
+        }
         int index = adapters.indexOf(child);
         if (index < 0)
             throw new StrutsException(child + " is no child of " + this);
@@ -251,7 +253,7 @@
                     + ((next == null) ? "null" : next.getNodeName()));
         }
 
-        return getParent().getChildAfter(this);
+        return next;
     }
 
     public Node getPreviousSibling() {
diff --git a/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java b/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
index cf7c3a3..a55184a 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
@@ -22,7 +22,6 @@
 
 import java.io.IOException;
 import java.io.PrintWriter;
-import java.io.Writer;
 import java.net.URL;
 import java.util.HashMap;
 import java.util.Map;
@@ -100,7 +99,7 @@
  * &lt;/result&gt;</pre>
  *
  * <p>
- * Without it there would be an endless x/y/x/y/x/y/... elements.
+ * Without it there would be endless x/y/x/y/x/y/... elements.
  * </p>
  *
  * <p>
@@ -231,7 +230,7 @@
     private String matchingPattern;
 
     /** Indicates the property name patterns which should be excluded from the xml. */
-    private String exludingPattern;
+    private String excludingPattern;
 
     /** Indicates the ognl expression respresenting the bean which is to be exposed as xml. */
     private String exposedValue;
@@ -285,12 +284,12 @@
         this.matchingPattern = matchingPattern;
     }
 
-    public String getExludingPattern() {
-        return exludingPattern;
+    public String getExcludingPattern() {
+        return excludingPattern;
     }
 
-    public void setExludingPattern(String exludingPattern) {
-        this.exludingPattern = exludingPattern;
+    public void setExcludingPattern(String excludingPattern) {
+        this.excludingPattern = excludingPattern;
     }
 
     /**
@@ -315,8 +314,6 @@
         try {
             HttpServletResponse response = ServletActionContext.getResponse();
 
-            Writer writer = response.getWriter();
-
             // Create a transformer for the stylesheet.
             Templates templates = null;
             Transformer transformer;
@@ -354,13 +351,11 @@
             LOG.debug("xmlSource = " + xmlSource);
             transformer.transform(xmlSource, new StreamResult(out));
 
-            out.close(); // ...and flush...
+            out.flush(); // ...and flush...
 
             if (LOG.isDebugEnabled()) {
                 LOG.debug("Time:" + (System.currentTimeMillis() - startTime) + "ms");
             }
-
-            writer.flush();
         } catch (Exception e) {
             LOG.error("Unable to render XSLT Template, '" + location + "'", e);
             throw e;
diff --git a/core/src/main/java/org/apache/struts2/views/xslt/package.html b/core/src/main/java/org/apache/struts2/views/xslt/package.html
index ed05a0a..7e0a622 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/package.html
+++ b/core/src/main/java/org/apache/struts2/views/xslt/package.html
@@ -1,3 +1,25 @@
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <body>
 <p>
 The new xslt view supports an extensible Java XML adapter framework that makes
diff --git a/core/src/main/resources/META-INF/README.txt b/core/src/main/resources/META-INF/README.txt
new file mode 100644
index 0000000..71cb1b7
--- /dev/null
+++ b/core/src/main/resources/META-INF/README.txt
@@ -0,0 +1,3 @@
+TLD file is generated inside META-INF after compilation.
+If META-INF is empty, Maven will not copy it to the "target/classes" folder.
+Please do not remove META-INF, or this file.
\ No newline at end of file
diff --git a/core/src/main/resources/META-INF/struts-tags.tld b/core/src/main/resources/META-INF/struts-tags.tld
deleted file mode 100644
index 43af4d1..0000000
--- a/core/src/main/resources/META-INF/struts-tags.tld
+++ /dev/null
@@ -1,9158 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">

-<taglib>

-  <tlib-version>2.2.3</tlib-version>

-  <jsp-version>1.2</jsp-version>

-  <short-name>s</short-name>

-  <uri>/struts-tags</uri>

-  <display-name>"Struts Tags"</display-name>

-  <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 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>

-  <tag>

-    <name>action</name>

-    <tag-class>org.apache.struts2.views.jsp.ActionTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Execute an action from within a view]]></description>

-    <attribute>

-      <name>executeResult</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Whether the result of this action (probably a view) should be executed/rendered]]></description>

-    </attribute>

-    <attribute>

-      <name>flush</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Whether the writer should be flush upon end of action component tag, default to true]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>ignoreContextParams</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Whether the request parameters are to be included when the action is invoked]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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><![CDATA[Namespace for action to call]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>actionerror</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.ActionErrorTag</tag-class>

-    <body-content>empty</body-content>

-    <description><![CDATA[Render action errors if they exists]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>actionmessage</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.ActionMessageTag</tag-class>

-    <body-content>empty</body-content>

-    <description><![CDATA[Render action messages if they exists]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>a</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.AnchorTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Render a HTML href element that when clicked can optionally call a URL via remote XMLHttpRequest and updates its targets]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>errorText</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The text to display to the user if the is an error fetching the content]]></description>

-    </attribute>

-    <attribute>

-      <name>executeScripts</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Javascript code in the fetched content will be executed]]></description>

-    </attribute>

-    <attribute>

-      <name>formFilter</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Function name used to filter the fields of the form.]]></description>

-    </attribute>

-    <attribute>

-      <name>formId</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Form id whose fields will be serialized and passed as parameters]]></description>

-    </attribute>

-    <attribute>

-      <name>handler</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Javascript function name that will make the request]]></description>

-    </attribute>

-    <attribute>

-      <name>href</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The URL to call to obtain the content. Note: If used with ajax context, the value must be set as an url tag value.]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>indicator</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Id of element that will be shown while making request]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>listenTopics</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Topic that will trigger the remote call]]></description>

-    </attribute>

-    <attribute>

-      <name>loadingText</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Text to be shown while content is being fetched]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>notifyTopics</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Topics that will published when the remote call completes]]></description>

-    </attribute>

-    <attribute>

-      <name>onLoadJS</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Deprecated. Use 'notifyTopics'. Javascript code execute after reload]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>openTemplate</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set template to use for opening the rendered html.]]></description>

-    </attribute>

-    <attribute>

-      <name>preInvokeJS</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Deprecated. Use 'notifyTopics'. Javascript code execute before reload]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>showErrorTransportText</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set whether errors will be shown or not]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>targets</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Comma delimited list of ids of the elements whose content will be updated]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>append</name>

-    <tag-class>org.apache.struts2.views.jsp.iterator.AppendIteratorTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Append the values of a list of iterators to one iterator]]></description>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The id of which if supplied will have the resultant appended iterator stored under in the stack's context]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>autocompleter</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.AutocompleterTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Renders a combobox with autocomplete and AJAX capabilities]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>autoComplete</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Whether autocompleter should make suggestion on the textbox]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>delay</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Delay before making the search]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Enable or disable autocompleter]]></description>

-    </attribute>

-    <attribute>

-      <name>dropdownHeight</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Dropdown's height in pixels]]></description>

-    </attribute>

-    <attribute>

-      <name>dropdownWidth</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Dropdown's width]]></description>

-    </attribute>

-    <attribute>

-      <name>emptyOption</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Decide if an empty option is to be inserted. Default false.]]></description>

-    </attribute>

-    <attribute>

-      <name>forceValidOption</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Force selection to be one of the options]]></description>

-    </attribute>

-    <attribute>

-      <name>formFilter</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Function name used to filter the fields of the form]]></description>

-    </attribute>

-    <attribute>

-      <name>formId</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Form id whose fields will be serialized and passed as parameters]]></description>

-    </attribute>

-    <attribute>

-      <name>headerKey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the header key for the header option.]]></description>

-    </attribute>

-    <attribute>

-      <name>headerValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the header value for the header option.]]></description>

-    </attribute>

-    <attribute>

-      <name>href</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The URL used to load the options]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>indicator</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Id of element that will be shown while request is made]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>list</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Iteratable source to populate from.]]></description>

-    </attribute>

-    <attribute>

-      <name>listKey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key used to retrive the option key.]]></description>

-    </attribute>

-    <attribute>

-      <name>listValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the value used to retrive the option value.]]></description>

-    </attribute>

-    <attribute>

-      <name>listenTopics</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Topic that will trigger a reload]]></description>

-    </attribute>

-    <attribute>

-      <name>loadMinimumCount</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Minimum number of characters that will force the content to be loaded]]></description>

-    </attribute>

-    <attribute>

-      <name>loadOnTextChange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Options will be reloaded everytime a character is typed on the textbox]]></description>

-    </attribute>

-    <attribute>

-      <name>maxLength</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Deprecated. Use maxlength instead.]]></description>

-    </attribute>

-    <attribute>

-      <name>maxlength</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[HTML maxlength attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>notifyTopics</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Topics that will be published when content is reloaded]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>readonly</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Whether the input is readonly]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>searchType</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[how the search must be performed, options are: 'startstring', 'startword' and 'substring']]></description>

-    </attribute>

-    <attribute>

-      <name>showDownArrow</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Show or hide the down arrow button]]></description>

-    </attribute>

-    <attribute>

-      <name>size</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[HTML size attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>bean</name>

-    <tag-class>org.apache.struts2.views.jsp.BeanTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Instantiate a JavaBean and place it in the context]]></description>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The class name of the bean to be instantiated (must respect JavaBean specification)]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>checkbox</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.CheckboxTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Render a checkbox input field]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>fieldValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The actual HTML value attribute of the checkbox.]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>checkboxlist</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.CheckboxListTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Render a list of checkboxes]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>list</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.]]></description>

-    </attribute>

-    <attribute>

-      <name>listKey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Property of list objects to get field value from]]></description>

-    </attribute>

-    <attribute>

-      <name>listValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Property of list objects to get field content from]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>combobox</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.ComboBoxTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Widget that fills a text box from a select]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>emptyOption</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Decide if an empty option is to be inserted. Default false.]]></description>

-    </attribute>

-    <attribute>

-      <name>headerKey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the header key for the header option.]]></description>

-    </attribute>

-    <attribute>

-      <name>headerValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the header value for the header option.]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>list</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Iteratable source to populate from. If this is missing, the select widget is simply not displayed.]]></description>

-    </attribute>

-    <attribute>

-      <name>listKey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key used to retrive the option key.]]></description>

-    </attribute>

-    <attribute>

-      <name>listValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the value used to retrive the option value.]]></description>

-    </attribute>

-    <attribute>

-      <name>maxLength</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Deprecated. Use maxlength instead.]]></description>

-    </attribute>

-    <attribute>

-      <name>maxlength</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[HTML maxlength attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>readonly</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Whether the input is readonly]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>size</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[HTML size attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>date</name>

-    <tag-class>org.apache.struts2.views.jsp.DateTag</tag-class>

-    <body-content>empty</body-content>

-    <description><![CDATA[Render a formatted date.]]></description>

-    <attribute>

-      <name>format</name>

-      <required>false</required>

-      <rtexprvalue>false</rtexprvalue>

-      <description><![CDATA[Date or DateTime format pattern]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The date value to format]]></description>

-    </attribute>

-    <attribute>

-      <name>nice</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Whether to print out the date nicely]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>datetimepicker</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.DateTimePickerTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Render datetimepicker]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>adjustWeeks</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If true, weekly size of calendar changes to acomodate the month if false, 42 day format is used]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>dayWidth</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[How to render the names of the days in the header(narrow, abbr or wide)]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>displayFormat</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[A pattern used for the visual display of the formatted date, e.g. dd/MM/yyyy]]></description>

-    </attribute>

-    <attribute>

-      <name>displayWeeks</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Total weeks to display]]></description>

-    </attribute>

-    <attribute>

-      <name>endDate</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Last available date in the calendar set]]></description>

-    </attribute>

-    <attribute>

-      <name>formatLength</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Type of formatting used for visual display. Possible values are long, short, medium or full]]></description>

-    </attribute>

-    <attribute>

-      <name>iconPath</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Path to icon used for the dropdown]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>language</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Language to display this widget in]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>startDate</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[First available date in the calendar set]]></description>

-    </attribute>

-    <attribute>

-      <name>staticDisplay</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Disable all incremental controls, must pick a date in the current display]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>toggleDuration</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Duration of toggle in milliseconds]]></description>

-    </attribute>

-    <attribute>

-      <name>toggleType</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[oggle type of the dropdown. Possible values are plain,wipe,explode,fade]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>type</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Defines the type of the picker on the dropdown. Possible values are 'date' for a DateTimePicker, and 'time' for a timePicker]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-    <attribute>

-      <name>weekStartsOn</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Adjusts the first day of the week 0==Sunday..6==Saturday]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>debug</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.DebugTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Prints debugging information]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>div</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.DivTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Render HTML div providing content from remote call via AJAX]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>afterLoading</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Deprecated. Use 'notifyTopics'. Javascript code execute after reload]]></description>

-    </attribute>

-    <attribute>

-      <name>autoStart</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Start timer automatically]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>delay</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[How long to wait before fetching the content (in milliseconds)]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>errorText</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The text to display to the user if the is an error fetching the content]]></description>

-    </attribute>

-    <attribute>

-      <name>executeScripts</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Javascript code in the fetched content will be executed]]></description>

-    </attribute>

-    <attribute>

-      <name>formFilter</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Function name used to filter the fields of the form.]]></description>

-    </attribute>

-    <attribute>

-      <name>formId</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Form id whose fields will be serialized and passed as parameters]]></description>

-    </attribute>

-    <attribute>

-      <name>handler</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Javascript function name that will make the request]]></description>

-    </attribute>

-    <attribute>

-      <name>href</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The URL to call to obtain the content. Note: If used with ajax context, the value must be set as an url tag value.]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>indicator</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Id of element that will be shown while making request]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>listenTopics</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Topic that will trigger the remote call]]></description>

-    </attribute>

-    <attribute>

-      <name>loadingText</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Text to be shown while content is being fetched]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>notifyTopics</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Topics that will published when the remote call completes]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>openTemplate</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set template to use for opening the rendered html.]]></description>

-    </attribute>

-    <attribute>

-      <name>refreshOnShow</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Content will be loaded when div becomes visible, used only inside tabbedPanel]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>showErrorTransportText</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set whether errors will be shown or not]]></description>

-    </attribute>

-    <attribute>

-      <name>startTimerListenTopics</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Topics that will start the timer (for autoupdate)]]></description>

-    </attribute>

-    <attribute>

-      <name>stopTimerListenTopics</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Topics that will stop the timer (for autoupdate)]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>updateFreq</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[How often to reload the content (in milliseconds)]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>doubleselect</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.DoubleSelectTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Renders two HTML select elements with second one changing displayed values depending on selected entry of first one.]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleAccesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute.]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleCssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class for the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleCssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style for the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleDisabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Decides if a disable attribute should be added to the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleEmptyOption</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Decides if the second list will add an empty option]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleHeaderKey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The header key for the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleHeaderValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The header value for the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleId</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The id of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleList</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The second iterable source to populate from.]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleListKey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the list key of the second attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleListValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The value expression to use for second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleMultiple</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Decides if multiple attribute should be set on the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleName</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name for complete component]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onblur attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onchange attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onclick attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOndblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the ondbclick attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onfocus attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onkeydown attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onkeypress attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onkeyup attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onmousedown attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onmousemove attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onmouseout attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onmouseover attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onmouseup attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onselect attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleSize</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the size attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The value expression for complete component]]></description>

-    </attribute>

-    <attribute>

-      <name>emptyOption</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Decides of an empty option is to be inserted in the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>formName</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The form name this component resides in and populates to]]></description>

-    </attribute>

-    <attribute>

-      <name>headerKey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the header key of the second list. Must not be empty! '-1' and '' is correct, '' is bad.]]></description>

-    </attribute>

-    <attribute>

-      <name>headerValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the header value of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>list</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.]]></description>

-    </attribute>

-    <attribute>

-      <name>listKey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Property of list objects to get field value from]]></description>

-    </attribute>

-    <attribute>

-      <name>listValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Property of list objects to get field content from]]></description>

-    </attribute>

-    <attribute>

-      <name>multiple</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Creates a multiple select. The tag will pre-select multiple values if the values are passed as an Array (of appropriate types) via the value attribute.]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>size</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Size of the element box (# of elements to show)]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>else</name>

-    <tag-class>org.apache.struts2.views.jsp.ElseTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Else tag]]></description>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>elseif</name>

-    <tag-class>org.apache.struts2.views.jsp.ElseIfTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Elseif tag]]></description>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>test</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Expression to determine if body of tag is to be displayed]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>fielderror</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.FieldErrorTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Render field error (all or partial depending on param tag nested)if they exists]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>file</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.FileTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Render a file input field]]></description>

-    <attribute>

-      <name>accept</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[HTML accept attribute to indicate accepted file mimetypes]]></description>

-    </attribute>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>size</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[HTML size attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>form</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.FormTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Renders an input form]]></description>

-    <attribute>

-      <name>acceptcharset</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The accepted charsets for this form. The values may be comma or blank delimited.]]></description>

-    </attribute>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>action</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set action nane to submit to, without .action suffix]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>enctype</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[HTML form enctype attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>method</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[HTML form method attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>namespace</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Namespace for action to submit to]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onsubmit</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[HTML onsubmit attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>openTemplate</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set template to use for opening the rendered html.]]></description>

-    </attribute>

-    <attribute>

-      <name>portletMode</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[he portlet mode to display after the form submit]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>target</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[HTML form target attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>validate</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Whether client side/remote validation should be performed. Only useful with theme xhtml/ajax]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-    <attribute>

-      <name>windowState</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The window state to display after the form submit]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>component</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.ComponentTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Render a custom ui widget]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>head</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.HeadTag</tag-class>

-    <body-content>empty</body-content>

-    <description><![CDATA[Render a chunk of HEAD for your HTML file]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>calendarcss</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The jscalendar css theme to use]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>debug</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set to true to enable debugging mode for AJAX themes]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>hidden</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.HiddenTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Render a hidden input field]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>i18n</name>

-    <tag-class>org.apache.struts2.views.jsp.I18nTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Get a resource bundle and place it on the value stack]]></description>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Name of ressource bundle to use (eg foo/bar/customBundle)]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>if</name>

-    <tag-class>org.apache.struts2.views.jsp.IfTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[If tag]]></description>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>test</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Expression to determine if body of tag is to be displayed]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>include</name>

-    <tag-class>org.apache.struts2.views.jsp.IncludeTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Include a servlet's output (result of servlet or a JSP page)]]></description>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The jsp/servlet output to include]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>inputtransferselect</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.InputTransferSelectTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Renders an input form]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>addLabel</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[the label used for the add button]]></description>

-    </attribute>

-    <attribute>

-      <name>allowRemoveAll</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Determine whether the remove all button will display]]></description>

-    </attribute>

-    <attribute>

-      <name>allowUpDown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Determine whether items in the list can be reordered]]></description>

-    </attribute>

-    <attribute>

-      <name>buttonCssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[the css class used for rendering buttons]]></description>

-    </attribute>

-    <attribute>

-      <name>buttonCssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[the css style used for rendering buttons]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>downLabel</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[the label used for the down button]]></description>

-    </attribute>

-    <attribute>

-      <name>headerKey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[the header key of the select box]]></description>

-    </attribute>

-    <attribute>

-      <name>headerValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[the header value of the select box]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>leftTitle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[the left hand title]]></description>

-    </attribute>

-    <attribute>

-      <name>list</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.]]></description>

-    </attribute>

-    <attribute>

-      <name>listKey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Property of list objects to get field value from]]></description>

-    </attribute>

-    <attribute>

-      <name>listValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Property of list objects to get field content from]]></description>

-    </attribute>

-    <attribute>

-      <name>multiple</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Determine whether or not multiple entries are shown]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>removeAllLabel</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[the label used for the remove all button]]></description>

-    </attribute>

-    <attribute>

-      <name>removeLabel</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[the label used for the remove button]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>rightTitle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[the right hand title]]></description>

-    </attribute>

-    <attribute>

-      <name>size</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[the size of the select box]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>upLabel</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[the label used for the up button]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>iterator</name>

-    <tag-class>org.apache.struts2.views.jsp.IteratorTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Iterate over a iterable value]]></description>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>status</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If specified, an instanceof IteratorStatus will be pushed into stack upon each iteration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[the iteratable source to iterate over, else an the object itself will be put into a newly created List]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>label</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.LabelTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Render a label that displays read-only information]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>for</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ HTML for attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>merge</name>

-    <tag-class>org.apache.struts2.views.jsp.iterator.MergeIteratorTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Merge the values of a list of iterators into one iterator]]></description>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The id where the resultant merged iterator will be stored in the stack's context]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>optgroup</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.OptGroupTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Renders a Select Tag's OptGroup Tag]]></description>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the disable attribute.]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the label attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>list</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the list attribute.]]></description>

-    </attribute>

-    <attribute>

-      <name>listKey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the listKey attribute.]]></description>

-    </attribute>

-    <attribute>

-      <name>listValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the listValue attribute.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>optiontransferselect</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.OptionTransferSelectTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Renders an input form]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>addAllToLeftLabel</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set Add To Left button label]]></description>

-    </attribute>

-    <attribute>

-      <name>addAllToRightLabel</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set Add All To Right button label]]></description>

-    </attribute>

-    <attribute>

-      <name>addToLeftLabel</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set Add To Left button label]]></description>

-    </attribute>

-    <attribute>

-      <name>addToRightLabel</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set Add To Right button label]]></description>

-    </attribute>

-    <attribute>

-      <name>allowAddAllToLeft</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Enable Add All To Left button]]></description>

-    </attribute>

-    <attribute>

-      <name>allowAddAllToRight</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Enable Add All To Right button]]></description>

-    </attribute>

-    <attribute>

-      <name>allowAddToLeft</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Enable Add To Left button]]></description>

-    </attribute>

-    <attribute>

-      <name>allowAddToRight</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Enable Add To Right button]]></description>

-    </attribute>

-    <attribute>

-      <name>allowSelectAll</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Enable Select All button]]></description>

-    </attribute>

-    <attribute>

-      <name>allowUpDownOnLeft</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Enable up / down on the left side]]></description>

-    </attribute>

-    <attribute>

-      <name>allowUpDownOnRight</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Enable up / down on the right side]]></description>

-    </attribute>

-    <attribute>

-      <name>buttonCssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set buttons css class]]></description>

-    </attribute>

-    <attribute>

-      <name>buttonCssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set button css style]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleAccesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute.]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleCssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class for the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleCssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style for the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleDisabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Decides if a disable attribute should be added to the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleEmptyOption</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Decides if the second list will add an empty option]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleHeaderKey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The header key for the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleHeaderValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The header value for the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleId</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The id of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleList</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The second iterable source to populate from.]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleListKey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the list key of the second attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleListValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The value expression to use for second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleMultiple</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Decides if multiple attribute should be set on the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleName</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name for complete component]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onblur attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onchange attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onclick attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOndblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the ondbclick attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onfocus attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onkeydown attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onkeypress attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onkeyup attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onmousedown attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onmousemove attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onmouseout attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onmouseover attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onmouseup attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleOnselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the onselect attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleSize</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the size attribute of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>doubleValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The value expression for complete component]]></description>

-    </attribute>

-    <attribute>

-      <name>emptyOption</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Decides of an empty option is to be inserted in the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>formName</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The form name this component resides in and populates to]]></description>

-    </attribute>

-    <attribute>

-      <name>headerKey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the header key of the second list. Must not be empty! '-1' and '' is correct, '' is bad.]]></description>

-    </attribute>

-    <attribute>

-      <name>headerValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the header value of the second list]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>leftDownLabel</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Down label for the left side.]]></description>

-    </attribute>

-    <attribute>

-      <name>leftTitle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set Left title]]></description>

-    </attribute>

-    <attribute>

-      <name>leftUpLabel</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Up label for the left side]]></description>

-    </attribute>

-    <attribute>

-      <name>list</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.]]></description>

-    </attribute>

-    <attribute>

-      <name>listKey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Property of list objects to get field value from]]></description>

-    </attribute>

-    <attribute>

-      <name>listValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Property of list objects to get field content from]]></description>

-    </attribute>

-    <attribute>

-      <name>multiple</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Creates a multiple select. The tag will pre-select multiple values if the values are passed as an Array (of appropriate types) via the value attribute.]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>rightDownLabel</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Down label for the left side.]]></description>

-    </attribute>

-    <attribute>

-      <name>rightTitle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set Right title]]></description>

-    </attribute>

-    <attribute>

-      <name>rightUpLabel</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Up label for the right side.]]></description>

-    </attribute>

-    <attribute>

-      <name>selectAllLabel</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set Select All button label]]></description>

-    </attribute>

-    <attribute>

-      <name>size</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Size of the element box (# of elements to show)]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>param</name>

-    <tag-class>org.apache.struts2.views.jsp.ParamTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Parametrize other tags]]></description>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Name of Parameter to set]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Value expression for Parameter to set]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>password</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.PasswordTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Render an HTML input tag of type password]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>maxLength</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Deprecated. Use maxlength instead.]]></description>

-    </attribute>

-    <attribute>

-      <name>maxlength</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[HTML maxlength attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>readonly</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Whether the input is readonly]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>showPassword</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Whether to show input]]></description>

-    </attribute>

-    <attribute>

-      <name>size</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[HTML size attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>property</name>

-    <tag-class>org.apache.struts2.views.jsp.PropertyTag</tag-class>

-    <body-content>empty</body-content>

-    <description><![CDATA[Print out expression which evaluates against the stack]]></description>

-    <attribute>

-      <name>default</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The default value to be used if <u>value</u> attribute is null]]></description>

-    </attribute>

-    <attribute>

-      <name>escape</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Whether to escape HTML]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Value to be displayed]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>push</name>

-    <tag-class>org.apache.struts2.views.jsp.PushTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Push value on stack for simplified usage.]]></description>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Value to push on stack]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>radio</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.RadioTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Renders a radio button input field]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>list</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.]]></description>

-    </attribute>

-    <attribute>

-      <name>listKey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Property of list objects to get field value from]]></description>

-    </attribute>

-    <attribute>

-      <name>listValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Property of list objects to get field content from]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>reset</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.ResetTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Render a reset button]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>action</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set action attribute.]]></description>

-    </attribute>

-    <attribute>

-      <name>align</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[HTML align attribute.]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Supply a reset button text apart from reset value. Will have no effect for <i>input</i> type reset, since button text will always be the value parameter.]]></description>

-    </attribute>

-    <attribute>

-      <name>labelposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>method</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set method attribute.]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>type</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The type of submit to use. Valid values are <i>input</i>, <i>button</i> and <i>image</i>.]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>select</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.SelectTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Render a select element]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>emptyOption</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Whether or not to add an empty (--) option after the header option]]></description>

-    </attribute>

-    <attribute>

-      <name>headerKey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Key for first item in list. Must not be empty! '-1' and '' is correct, '' is bad.]]></description>

-    </attribute>

-    <attribute>

-      <name>headerValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Value expression for first item in list]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>list</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.]]></description>

-    </attribute>

-    <attribute>

-      <name>listKey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Property of list objects to get field value from]]></description>

-    </attribute>

-    <attribute>

-      <name>listValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Property of list objects to get field content from]]></description>

-    </attribute>

-    <attribute>

-      <name>multiple</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Creates a multiple select. The tag will pre-select multiple values if the values are passed as an Array (of appropriate types) via the value attribute. Passing a Collection may work too? Haven't tested this.]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>size</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Size of the element box (# of elements to show)]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>set</name>

-    <tag-class>org.apache.struts2.views.jsp.SetTag</tag-class>

-    <body-content>empty</body-content>

-    <description><![CDATA[Assigns a value to a variable in a specified scope]]></description>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ The name of the new variable that is assigned the value of <i>value</i>]]></description>

-    </attribute>

-    <attribute>

-      <name>scope</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The scope in which to assign the variable. Can be <b>application</b>, <b>session</b>, <b>request</b>, <b>page</b>, or <b>action</b>.]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The value that is assigned to the variable named <i>name</i>]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>submit</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.SubmitTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Render a submit button]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>action</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set action attribute.]]></description>

-    </attribute>

-    <attribute>

-      <name>align</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[HTML align attribute.]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>errorText</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The text to display to the user if the is an error fetching the content]]></description>

-    </attribute>

-    <attribute>

-      <name>executeScripts</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Javascript code in the fetched content will be executed]]></description>

-    </attribute>

-    <attribute>

-      <name>formFilter</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Function name used to filter the fields of the form.]]></description>

-    </attribute>

-    <attribute>

-      <name>formId</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Form id whose fields will be serialized and passed as parameters]]></description>

-    </attribute>

-    <attribute>

-      <name>handler</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Javascript function name that will make the request]]></description>

-    </attribute>

-    <attribute>

-      <name>href</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The URL to call to obtain the content. Note: If used with ajax context, the value must be set as an url tag value.]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>indicator</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set indicator]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>listenTopics</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Topic that will trigger the remote call]]></description>

-    </attribute>

-    <attribute>

-      <name>loadingText</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Text to be shown while content is being fetched]]></description>

-    </attribute>

-    <attribute>

-      <name>method</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set method attribute.]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>notifyTopics</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Topics that will published when the remote call completes]]></description>

-    </attribute>

-    <attribute>

-      <name>onLoadJS</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Deprecated. Use 'notifyTopics'. Javascript code execute after reload]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>preInvokeJS</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Deprecated. Use 'notifyTopics'. Javascript code execute before reload]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>showErrorTransportText</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set whether errors will be shown or not]]></description>

-    </attribute>

-    <attribute>

-      <name>src</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Supply an image src for <i>image</i> type submit button. Will have no effect for types <i>input</i> and <i>button</i>.]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>targets</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Comma delimited list of ids of the elements whose content will be updated]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme to use for the element. <b>This tag will usually use the ajax theme.</b>]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>type</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The type of submit to use. Valid values are <i>input</i>, <i>button</i> and <i>image</i>.]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>tabbedPanel</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.TabbedPanelTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Render a tabbedPanel widget.]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>closeButton</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Where the close button will be placed, possible values are 'tab' and 'pane']]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>doLayout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If doLayout is false, the tab container's height equals the height of the currently selected tab]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The id to assign to the component.]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>openTemplate</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set template to use for opening the rendered html.]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>selectedTab</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ The id of the tab that will be selected by default]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>text</name>

-    <tag-class>org.apache.struts2.views.jsp.TextTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Render a I18n text message]]></description>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Name of resource property to fetch]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>textarea</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.TextareaTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Render HTML textarea tag.]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>cols</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[HTML cols attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>readonly</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Whether the textarea is readonly]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>rows</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[HTML rows attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-    <attribute>

-      <name>wrap</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[HTML wrap attribute]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>textfield</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.TextFieldTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Render an HTML input field of type text]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>maxLength</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Deprecated. Use maxlength instead.]]></description>

-    </attribute>

-    <attribute>

-      <name>maxlength</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[HTML maxlength attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>readonly</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Whether the input is readonly]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>size</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[HTML size attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>token</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.TokenTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Stop double-submission of forms]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>tree</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.TreeTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Render a tree widget.]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>blankIconSrc</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Blank icon image source.]]></description>

-    </attribute>

-    <attribute>

-      <name>childCollectionProperty</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The childCollectionProperty property.]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>expandIconSrcMinus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Expand icon (-) image source.]]></description>

-    </attribute>

-    <attribute>

-      <name>expandIconSrcPlus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Expand Icon (+) image source.]]></description>

-    </attribute>

-    <attribute>

-      <name>gridIconSrcC</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Image source for under child item child icons.]]></description>

-    </attribute>

-    <attribute>

-      <name>gridIconSrcL</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Image source for last child grid.]]></description>

-    </attribute>

-    <attribute>

-      <name>gridIconSrcP</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Image source for under parent item child icons.]]></description>

-    </attribute>

-    <attribute>

-      <name>gridIconSrcV</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Image source for vertical line.]]></description>

-    </attribute>

-    <attribute>

-      <name>gridIconSrcX</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Image source for grid for sole root item.]]></description>

-    </attribute>

-    <attribute>

-      <name>gridIconSrcY</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Image source for grid for last root item.]]></description>

-    </attribute>

-    <attribute>

-      <name>iconHeight</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Icon height]]></description>

-    </attribute>

-    <attribute>

-      <name>iconWidth</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Icon width]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>nodeIdProperty</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The nodeIdProperty property.]]></description>

-    </attribute>

-    <attribute>

-      <name>nodeTitleProperty</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The nodeTitleProperty property.]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>openTemplate</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set template to use for opening the rendered html.]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>rootNode</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The rootNode property.]]></description>

-    </attribute>

-    <attribute>

-      <name>showGrid</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Show grid]]></description>

-    </attribute>

-    <attribute>

-      <name>showRootGrid</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The showRootGrid property (default true).]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateCssPath</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Template css path]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>toggle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The toggle property (either 'explode' or 'fade')]]></description>

-    </attribute>

-    <attribute>

-      <name>toggleDuration</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Toggle duration in milliseconds]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>treeCollapsedTopic</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The treeCollapsedTopic property.]]></description>

-    </attribute>

-    <attribute>

-      <name>treeExpandedTopic</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The treeExpandedTopic property.]]></description>

-    </attribute>

-    <attribute>

-      <name>treeSelectedTopic</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The treeSelectedTopic property]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>treenode</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.TreeNodeTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Render a tree node within a tree widget.]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Label expression used for rendering tree node label.]]></description>

-    </attribute>

-    <attribute>

-      <name>labelposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>openTemplate</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set template to use for opening the rendered html.]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>url</name>

-    <tag-class>org.apache.struts2.views.jsp.URLTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[This tag is used to create a URL]]></description>

-    <attribute>

-      <name>action</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[he action generate url for, if not using value]]></description>

-    </attribute>

-    <attribute>

-      <name>anchor</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The anchor for this URL]]></description>

-    </attribute>

-    <attribute>

-      <name>encode</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Whether to encode parameters]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>includeContext</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Whether actual context should be included in url]]></description>

-    </attribute>

-    <attribute>

-      <name>includeParams</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The includeParams attribute may have the value 'none', 'get' or 'all']]></description>

-    </attribute>

-    <attribute>

-      <name>method</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The method of action to use]]></description>

-    </attribute>

-    <attribute>

-      <name>namespace</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The namespace to use]]></description>

-    </attribute>

-    <attribute>

-      <name>portletMode</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The resulting portlet mode]]></description>

-    </attribute>

-    <attribute>

-      <name>portletUrlType</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Specifies if this should be a portlet render or action url]]></description>

-    </attribute>

-    <attribute>

-      <name>scheme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set scheme attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The target value to use, if not using action]]></description>

-    </attribute>

-    <attribute>

-      <name>windowState</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The resulting portlet window state]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>updownselect</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.UpDownSelectTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Create a Select component with buttons to move the elements in the select component up and down]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>allowMoveDown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Whether move down button should be displayed]]></description>

-    </attribute>

-    <attribute>

-      <name>allowMoveUp</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Whether move up button should be displayed]]></description>

-    </attribute>

-    <attribute>

-      <name>allowSelectAll</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Whether or not select all button should be displayed]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>emptyOption</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Whether or not to add an empty (--) option after the header option]]></description>

-    </attribute>

-    <attribute>

-      <name>headerKey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Key for first item in list. Must not be empty! '-1' and '' is correct, '' is bad.]]></description>

-    </attribute>

-    <attribute>

-      <name>headerValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Value expression for first item in list]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>list</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.]]></description>

-    </attribute>

-    <attribute>

-      <name>listKey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Property of list objects to get field value from]]></description>

-    </attribute>

-    <attribute>

-      <name>listValue</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Property of list objects to get field content from]]></description>

-    </attribute>

-    <attribute>

-      <name>moveDownLabel</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Text to display on the move down button]]></description>

-    </attribute>

-    <attribute>

-      <name>moveUpLabel</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Text to display on the move up button]]></description>

-    </attribute>

-    <attribute>

-      <name>multiple</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Creates a multiple select. The tag will pre-select multiple values if the values are passed as an Array (of appropriate types) via the value attribute. Passing a Collection may work too? Haven't tested this.]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>selectAllLabel</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Text to display on the select all button]]></description>

-    </attribute>

-    <attribute>

-      <name>size</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Size of the element box (# of elements to show)]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>table</name>

-    <tag-class>org.apache.struts2.views.jsp.ui.table.WebTableTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Instantiate a JavaBean and place it in the context]]></description>

-    <attribute>

-      <name>accesskey</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssClass</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css class to use for element]]></description>

-    </attribute>

-    <attribute>

-      <name>cssStyle</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The css style definitions for element ro use]]></description>

-    </attribute>

-    <attribute>

-      <name>disabled</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>

-    </attribute>

-    <attribute>

-      <name>key</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>label</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <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[Define label position of form element (top/left)]]></description>

-    </attribute>

-    <attribute>

-      <name>name</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The name to set for element]]></description>

-    </attribute>

-    <attribute>

-      <name>onblur</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onchange</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>ondblclick</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onfocus</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeydown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeypress</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onkeyup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousedown</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmousemove</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseout</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseover</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onmouseup</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>onselect</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>required</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>

-    </attribute>

-    <attribute>

-      <name>requiredposition</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Define required position of required form element (left|right)]]></description>

-    </attribute>

-    <attribute>

-      <name>sortColumn</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Index of column to sort data by]]></description>

-    </attribute>

-    <attribute>

-      <name>sortOrder</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set sort order. Allowed values are NONE, ASC and DESC]]></description>

-    </attribute>

-    <attribute>

-      <name>sortable</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Whether the table should be sortable. Requires that model implements org.apache.struts2.components.table.SortableTableModel if set to true.]]></description>

-    </attribute>

-    <attribute>

-      <name>tabindex</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>template</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>templateDir</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The template directory.]]></description>

-    </attribute>

-    <attribute>

-      <name>theme</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>

-    </attribute>

-    <attribute>

-      <name>title</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltip</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip of this particular component]]></description>

-    </attribute>

-    <attribute>

-      <name>tooltipConfig</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Set the tooltip configuration]]></description>

-    </attribute>

-    <attribute>

-      <name>value</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Preset the value of input element.]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>generator</name>

-    <tag-class>org.apache.struts2.views.jsp.iterator.IteratorGeneratorTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Generate an iterator for a iterable source.]]></description>

-    <attribute>

-      <name>converter</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The converter to convert the String entry parsed from <i>val</i> into an object]]></description>

-    </attribute>

-    <attribute>

-      <name>count</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The max number entries to be in the iterator]]></description>

-    </attribute>

-    <attribute>

-      <name>id</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The id to store the resultant iterator into page context, if such id is supplied]]></description>

-    </attribute>

-    <attribute>

-      <name>separator</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The separator to be used in separating the <i>val</i> into entries of the iterator]]></description>

-    </attribute>

-    <attribute>

-      <name>val</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The source to be parsed into an iterator]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>sort</name>

-    <tag-class>org.apache.struts2.views.jsp.iterator.SortIteratorTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Sort a List using a Comparator both passed in as the tag attribute.]]></description>

-    <attribute>

-      <name>comparator</name>

-      <required>true</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The comparator to use]]></description>

-    </attribute>

-    <attribute>

-      <name>source</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[The iterable source to sort]]></description>

-    </attribute>

-  </tag>

-  <tag>

-    <name>subset</name>

-    <tag-class>org.apache.struts2.views.jsp.iterator.SubsetIteratorTag</tag-class>

-    <body-content>JSP</body-content>

-    <description><![CDATA[Takes an iterator and outputs a subset of it.]]></description>

-    <attribute>

-      <name>count</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Indicate the number of entries to be in the resulting subset iterator]]></description>

-    </attribute>

-    <attribute>

-      <name>decider</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Extension to plug-in a decider to determine if that particular entry is to be included in the resulting subset iterator]]></description>

-    </attribute>

-    <attribute>

-      <name>source</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Indicate the source of which the resulting subset iterator is to be derived base on]]></description>

-    </attribute>

-    <attribute>

-      <name>start</name>

-      <required>false</required>

-      <rtexprvalue>true</rtexprvalue>

-      <description><![CDATA[Indicate the starting index (eg. first entry is 0) of entries in the source to be available as the first entry in the resulting subset iterator]]></description>

-    </attribute>

-  </tag>

-</taglib>

diff --git a/core/src/main/resources/NOTICE.txt b/core/src/main/resources/NOTICE.txt
index cd13ec4..0795328 100644
--- a/core/src/main/resources/NOTICE.txt
+++ b/core/src/main/resources/NOTICE.txt
@@ -2,4 +2,5 @@
 Copyright 2000-2007 The Apache Software Foundation
 
 This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
\ No newline at end of file
+The Apache Software Foundation (http://www.apache.org/).
+Dojo (http://dojotoolkit.org/).
diff --git a/core/src/main/resources/org/apache/struts2/default.properties b/core/src/main/resources/org/apache/struts2/default.properties
index 7a3f6b5..fc5f839 100644
--- a/core/src/main/resources/org/apache/struts2/default.properties
+++ b/core/src/main/resources/org/apache/struts2/default.properties
@@ -1,3 +1,22 @@
+#  $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+# 
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you 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.
+
 ### START SNIPPET: complete_file
 
 ### Struts default properties
@@ -31,7 +50,9 @@
 ### if specified, the default object type determiner can be overridden here
 ### Note: short-hand notation is supported in some cases, such as "tiger" or "notiger"
 ###       Alternatively, you can provide a com.opensymphony.xwork2.util.ObjectTypeDeterminer implementation name here
-### Note: if you have the xwork-tiger.jar within your classpath, GenericsObjectTypeDeterminer is used by default
+### Note: By default, com.opensymphony.xwork2.util.DefaultObjectTypeDeterminer is used which handles type detection
+###       using generics. com.opensymphony.xwork2.util.GenericsObjectTypeDeterminer was deprecated since XWork 2, it's
+###       functions are integrated in DefaultObjectTypeDeterminer now.
 ###       To disable tiger support use the "notiger" property value here.
 #struts.objectTypeDeterminer = tiger
 #struts.objectTypeDeterminer = notiger
@@ -145,6 +166,10 @@
 ### MUST extends off org.apache.struts2.views.freemarker.FreemarkerManager
 #struts.freemarker.manager.classname=org.apache.struts2.views.freemarker.FreemarkerManager
 
+### Enables caching of FreeMarker templates
+### Has the same effect as copying the templates under WEB_APP/templates
+struts.freemarker.templatesCache=false
+
 ### See the StrutsBeanWrapper javadocs for more information
 struts.freemarker.wrapper.altMap=true
 
diff --git a/core/src/main/resources/org/apache/struts2/dispatcher/error.ftl b/core/src/main/resources/org/apache/struts2/dispatcher/error.ftl
index 79043dc..450eee2 100644
--- a/core/src/main/resources/org/apache/struts2/dispatcher/error.ftl
+++ b/core/src/main/resources/org/apache/struts2/dispatcher/error.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <html>
 <head>
     <title>Struts Problem Report</title>
diff --git a/core/src/main/resources/org/apache/struts2/interceptor/debugging/console.ftl b/core/src/main/resources/org/apache/struts2/interceptor/debugging/console.ftl
index 14b39b5..ff3a0a1 100644
--- a/core/src/main/resources/org/apache/struts2/interceptor/debugging/console.ftl
+++ b/core/src/main/resources/org/apache/struts2/interceptor/debugging/console.ftl
@@ -1,6 +1,28 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <html>
 <head>
-    <script language="javascript">
+    <script type="text/javascript">
     var baseUrl = "<@s.url value="/struts" includeParams="none"/>";
     window.open(baseUrl+"/webconsole.html", 'OGNL Console','width=500,height=450,'+
         'status=no,toolbar=no,menubar=no');
diff --git a/core/src/main/resources/org/apache/struts2/interceptor/debugging/webconsole.css b/core/src/main/resources/org/apache/struts2/interceptor/debugging/webconsole.css
index 293e2fc..2dc1fde 100644
--- a/core/src/main/resources/org/apache/struts2/interceptor/debugging/webconsole.css
+++ b/core/src/main/resources/org/apache/struts2/interceptor/debugging/webconsole.css
@@ -1,3 +1,24 @@
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
 .wc-results {

     overflow: auto; 

     margin: 0px; 

diff --git a/core/src/main/resources/org/apache/struts2/interceptor/debugging/webconsole.html b/core/src/main/resources/org/apache/struts2/interceptor/debugging/webconsole.html
index ce093c9..2145cd8 100644
--- a/core/src/main/resources/org/apache/struts2/interceptor/debugging/webconsole.html
+++ b/core/src/main/resources/org/apache/struts2/interceptor/debugging/webconsole.html
@@ -1,3 +1,25 @@
+<!--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <html>
 <head>
         <link rel="stylesheet" type="text/css" href="webconsole.css" />
diff --git a/core/src/main/resources/org/apache/struts2/interceptor/debugging/webconsole.js b/core/src/main/resources/org/apache/struts2/interceptor/debugging/webconsole.js
index 2e7783b..fb55d49 100644
--- a/core/src/main/resources/org/apache/struts2/interceptor/debugging/webconsole.js
+++ b/core/src/main/resources/org/apache/struts2/interceptor/debugging/webconsole.js
@@ -1,3 +1,24 @@
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
   function printResult(result_string)
   {
       var result_div = document.getElementById('wc-result');
diff --git a/core/src/main/resources/org/apache/struts2/interceptor/package.html b/core/src/main/resources/org/apache/struts2/interceptor/package.html
index 1413ca1..8ef40bd 100644
--- a/core/src/main/resources/org/apache/struts2/interceptor/package.html
+++ b/core/src/main/resources/org/apache/struts2/interceptor/package.html
@@ -1 +1,23 @@
+<!--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <body>Web specific interceptor classes.</body>
diff --git a/core/src/main/resources/org/apache/struts2/interceptor/wait.ftl b/core/src/main/resources/org/apache/struts2/interceptor/wait.ftl
index 1d1869f..634d98d 100644
--- a/core/src/main/resources/org/apache/struts2/interceptor/wait.ftl
+++ b/core/src/main/resources/org/apache/struts2/interceptor/wait.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <html>
     <head>
         <meta http-equiv="refresh" content="5;url=<@s.url includeParams="none"/>"/>
diff --git a/core/src/main/resources/org/apache/struts2/package.html b/core/src/main/resources/org/apache/struts2/package.html
index 5ed3ff0..6371b69 100644
--- a/core/src/main/resources/org/apache/struts2/package.html
+++ b/core/src/main/resources/org/apache/struts2/package.html
@@ -1 +1,23 @@
+<!--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <body>Main Struts interfaces and classes.</body>
diff --git a/core/src/main/resources/org/apache/struts2/static/CommonFunctions.js b/core/src/main/resources/org/apache/struts2/static/CommonFunctions.js
index dfcf587..02fa20b 100644
--- a/core/src/main/resources/org/apache/struts2/static/CommonFunctions.js
+++ b/core/src/main/resources/org/apache/struts2/static/CommonFunctions.js
@@ -1,3 +1,23 @@
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
 
 /**
  *      Methods for the tabbed component
diff --git a/core/src/main/resources/org/apache/struts2/static/dojo/struts/ComboBox.css b/core/src/main/resources/org/apache/struts2/static/dojo/struts/ComboBox.css
index 86a4c5b..b98f2a4 100644
--- a/core/src/main/resources/org/apache/struts2/static/dojo/struts/ComboBox.css
+++ b/core/src/main/resources/org/apache/struts2/static/dojo/struts/ComboBox.css
@@ -1,3 +1,24 @@
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
 .dojoComboBoxOuter {

 	border: 0px !important;

 	margin: 0px !important;

diff --git a/core/src/main/resources/org/apache/struts2/static/dojo/struts/Util.js b/core/src/main/resources/org/apache/struts2/static/dojo/struts/Util.js
index 975d394..ab07110 100644
--- a/core/src/main/resources/org/apache/struts2/static/dojo/struts/Util.js
+++ b/core/src/main/resources/org/apache/struts2/static/dojo/struts/Util.js
@@ -1,3 +1,23 @@
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
 dojo.provide("struts.Util");
 
 struts.Util.passThroughArgs = function(args, target){
diff --git a/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js
index b9456e6..6f2b658 100644
--- a/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js
+++ b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js
@@ -1,3 +1,24 @@
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
 dojo.provide("struts.widget.Bind");
 
 dojo.require("dojo.widget.HtmlWidget");
@@ -119,6 +140,8 @@
        if(this.executeScripts) {
          //update targets content
          var parsed = this.parse(data);
+         this.setContent(parsed.text);
+           
          //eval scripts
          if(parsed.scripts && parsed.scripts.length > 0) {
            var scripts = "";
@@ -127,7 +150,6 @@
            }
            (new Function('_container_', scripts+'; return this;'))(this);
          }
-         this.setContent(parsed.text);
        }
        else {
          this.setContent(data);
diff --git a/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindAnchor.js b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindAnchor.js
index 20d8de7..48f7178 100644
--- a/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindAnchor.js
+++ b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindAnchor.js
@@ -1,3 +1,24 @@
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
 dojo.provide("struts.widget.BindAnchor");
 
 dojo.require("dojo.widget.HtmlWidget");
diff --git a/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindDiv.js b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindDiv.js
index 525972d..b7d1f7b 100644
--- a/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindDiv.js
+++ b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindDiv.js
@@ -1,3 +1,24 @@
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
 dojo.provide("struts.widget.BindDiv");
 
 dojo.require("dojo.io");
@@ -249,6 +270,123 @@
         this.log("starting timer with update interval " + this.updateFreq);
         this.timer.start();
       }
+    },
+    
+    //from Dojo's ContentPane
+    //TODO: remove when fixed on Dojo
+    splitAndFixPaths:function (s, url) {
+      var titles = [], scripts = [], tmp = [];
+      var match = [], requires = [], attr = [], styles = [];
+      var str = "", path = "", fix = "", tagFix = "", tag = "", origPath = "";
+      if (!url) {
+        url = "./";
+      }
+      if (s) {
+        var regex = /<title[^>]*>([\s\S]*?)<\/title>/i;
+        while (match = regex.exec(s)) {
+          titles.push(match[1]);
+          s = s.substring(0, match.index) + s.substr(match.index + match[0].length);
+        }
+        if (this.adjustPaths) {
+          var regexFindTag = /<[a-z][a-z0-9]*[^>]*\s(?:(?:src|href|style)=[^>])+[^>]*>/i;
+          var regexFindAttr = /\s(src|href|style)=(['"]?)([\w()\[\]\/.,\\'"-:;#=&?\s@!]+?)\2/i;
+          var regexProtocols = /^(?:[#]|(?:(?:https?|ftps?|file|javascript|mailto|news):))/;
+          while (tag = regexFindTag.exec(s)) {
+            str += s.substring(0, tag.index);
+            s = s.substring((tag.index + tag[0].length), s.length);
+            tag = tag[0];
+            tagFix = "";
+            while (attr = regexFindAttr.exec(tag)) {
+              path = "";
+              origPath = attr[3];
+              switch (attr[1].toLowerCase()) {
+                case "src":
+                case "href":
+                if (regexProtocols.exec(origPath)) {
+                  path = origPath;
+                } else {
+                  path = (new dojo.uri.Uri(url, origPath).toString());
+                }
+                break;
+                case "style":
+                path = dojo.html.fixPathsInCssText(origPath, url);
+                break;
+                default:
+                path = origPath;
+              }
+              fix = " " + attr[1] + "=" + attr[2] + path + attr[2];
+              tagFix += tag.substring(0, attr.index) + fix;
+              tag = tag.substring((attr.index + attr[0].length), tag.length);
+            }
+            str += tagFix + tag;
+          }
+          s = str + s;
+        }
+        regex = /(?:<(style)[^>]*>([\s\S]*?)<\/style>|<link ([^>]*rel=['"]?stylesheet['"]?[^>]*)>)/i;
+        while (match = regex.exec(s)) {
+          if (match[1] && match[1].toLowerCase() == "style") {
+            styles.push(dojo.html.fixPathsInCssText(match[2], url));
+          } else {
+            if (attr = match[3].match(/href=(['"]?)([^'">]*)\1/i)) {
+              styles.push({path:attr[2]});
+            }
+          }
+          s = s.substring(0, match.index) + s.substr(match.index + match[0].length);
+        }
+        var regex = /<script([^>]*)>([\s\S]*?)<\/script>/i;
+        var regexSrc = /src=(['"]?)([^"']*)\1/i;
+        var regexDojoJs = /.*(\bdojo\b\.js(?:\.uncompressed\.js)?)$/;
+        var regexInvalid = /(?:var )?\bdjConfig\b(?:[\s]*=[\s]*\{[^}]+\}|\.[\w]*[\s]*=[\s]*[^;\n]*)?;?|dojo\.hostenv\.writeIncludes\(\s*\);?/g;
+        var regexRequires = /dojo\.(?:(?:require(?:After)?(?:If)?)|(?:widget\.(?:manager\.)?registerWidgetPackage)|(?:(?:hostenv\.)?setModulePrefix|registerModulePath)|defineNamespace)\((['"]).*?\1\)\s*;?/;
+        while (match = regex.exec(s)) {
+          if (this.executeScripts && match[1]) {
+            if (attr = regexSrc.exec(match[1])) {
+              if (regexDojoJs.exec(attr[2])) {
+                dojo.debug("Security note! inhibit:" + attr[2] + " from  being loaded again.");
+              } else {
+                scripts.push({path:attr[2]});
+              }
+            }
+          }
+          if (match[2]) {
+            var sc = match[2].replace(regexInvalid, "");
+            if (!sc) {
+              continue;
+            }
+            while (tmp = regexRequires.exec(sc)) {
+              requires.push(tmp[0]);
+              sc = sc.substring(0, tmp.index) + sc.substr(tmp.index + tmp[0].length);
+            }
+            if (this.executeScripts) {
+              scripts.push(sc);
+            }
+          }
+          s = s.substr(0, match.index) + s.substr(match.index + match[0].length);
+        }
+        if (this.extractContent) {
+          match = s.match(/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im);
+          if (match) {
+            s = match[1];
+          }
+        }
+        if (this.executeScripts && this.scriptSeparation) {
+          var regex = /(<[a-zA-Z][a-zA-Z0-9]*\s[^>]*?\S=)((['"])[^>]*scriptScope[^>]*>)/;
+          var regexAttr = /([\s'";:\(])scriptScope(.*)/;
+          str = "";
+          while (tag = regex.exec(s)) {
+            tmp = ((tag[3] == "'") ? "\"" : "'");
+            fix = "";
+            str += s.substring(0, tag.index) + tag[1];
+            while (attr = regexAttr.exec(tag[2])) {
+              tag[2] = tag[2].substring(0, attr.index) + attr[1] + "dojo.widget.byId(" + tmp + this.widgetId + tmp + ").scriptScope" + attr[2];
+            }
+            str += tag[2];
+            s = s.substr(tag.index + tag[0].length);
+          }
+          s = str + s;
+        }
+      }
+      return {"xml":s, "styles":styles, "titles":titles, "requires":requires, "scripts":scripts, "url":url};
     }
   }
 );
diff --git a/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/ComboBox.js b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/ComboBox.js
index 8b06744..9e5461b 100644
--- a/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/ComboBox.js
+++ b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/ComboBox.js
@@ -1,3 +1,24 @@
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
 dojo.provide("struts.widget.ComboBox");
 
 dojo.require("dojo.html.*");
@@ -21,13 +42,15 @@
 
   this.formId = "";
   this.formFilter = "";
+  this.firstRequest = true;
 
   this.cbox = null;
   this.init = function(/*Widget*/ cbox, /*DomNode*/ node){
     this.cbox = cbox;
     this.formId = cbox.formId;
     this.formFilter = cbox.formFilter;
-
+    this.searchLimit = cbox.searchLimit;
+    
     if(!dojo.string.isBlank(cbox.dataUrl)){
       this.getData(cbox.dataUrl);
     }else{
@@ -59,18 +82,57 @@
       formNode: dojo.byId(this.formId),
       formFilter: window[this.formFilter],
       load: dojo.lang.hitch(this, function(type, data, evt) {
-         //show indicator
-         dojo.html.hide(this.cbox.indicator);
+        //show indicator
+        dojo.html.hide(this.cbox.indicator);
 
-        this.cbox.notify.apply(this.cbox, [data, type, evt]);
-        if(!dojo.lang.isArray(data)){
-          var arrData = [];
-          for(var key in data){
-            arrData.push([data[key], key]);
-          }
-          data = arrData;
+        //if notifyTopics is published on the first request (onload)
+        //the value of listeners will be reset
+        if(!this.firstRequest) {
+          this.cbox.notify.apply(this.cbox, [data, type, evt]);
+        }
+        var arrData = null;
+        var dataByName = data[this.cbox.dataFieldName];
+        if(!dojo.lang.isArray(data)) {
+           //if there is a dataFieldName, take it
+           if(dataByName) {
+             if(dojo.lang.isArray(dataByName)) {
+                //ok, it is an array
+                arrData = dataByName;
+             } else if(dojo.lang.isObject(dataByName)) {
+                //it is an object, treat it like a map
+                arrData = [];
+                for(var key in dataByName){
+                    arrData.push([dataByName[key], key]);
+                }
+             }
+           } else {
+             //try to find a match
+             var tmpArrData = [];
+             for(var key in data){
+               //does it start with the field name? take it
+               if(dojo.string.startsWith(key, this.cbox.name)) {
+                 arrData = data[key];
+                 break;
+               } else {
+                 //if nathing else is found, we will use values in this 
+                 //object as the data
+                 tmpArrData.push([data[key], key]);
+               }
+               //grab the first array found, we will use it if nothing else
+               //is found
+               if(!arrData && dojo.lang.isArray(data[key]) && !dojo.lang.isString(data[key])) {
+                 arrData = data[key];
+               }
+             }
+             if(!arrData) {
+               arrData = tmpArrData;
+             }
+           }
+           
+           data = arrData;
         }
         this.setData(data);
+        this.firstRequest = false;
       }),
       mimetype: "text/json"
     });
@@ -167,6 +229,13 @@
   this.setData = function(/*Array*/ pdata){
     // populate this.data and initialize lookup structures
     this.data = pdata;
+    //all ellements must be a key and value pair
+    for(var i = 0; i < this.data.length; i++) {
+      var element = this.data[i];
+      if(!dojo.lang.isArray(element)) {
+        this.data[i] = [element, element];
+      }
+    }
   };
 
   if(dataPairs){
@@ -205,7 +274,11 @@
   //dojo has "stringstart" which is invalid
   searchType: "STARTSTRING",
 
+  dataFieldName : ""  ,
+  keyName: "",
   templateCssPath: dojo.uri.dojoUri("struts/ComboBox.css"),
+  
+  searchLimit : 30,
   //from Dojo's  ComboBox
   showResultList: function() {
   // Our dear friend IE doesnt take max-height so we need to calculate that on our own every time
@@ -315,7 +388,7 @@
     }
 
     //better name
-    this.comboBoxSelectionValue.name = this.name + "Key";
+    this.comboBoxSelectionValue.name = dojo.string.isBlank(this.keyName) ? this.name + "Key" : this.keyName;
 
     //init values
     this.comboBoxValue.value = this.initialValue;
diff --git a/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/StrutsTimePicker.js b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/StrutsTimePicker.js
new file mode 100644
index 0000000..b7594ae
--- /dev/null
+++ b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/StrutsTimePicker.js
@@ -0,0 +1,56 @@
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
+//If we use "TimePicker" for the name, Dojo get's confused and breaks
+//TODO remove this file on nect Dojo release
+
+dojo.provide("struts.widget.StrutsTimePicker");
+
+dojo.require("dojo.widget.DropdownTimePicker");
+
+dojo.widget.defineWidget(
+  "struts.widget.StrutsTimePicker",
+  dojo.widget.DropdownTimePicker, {
+  widgetType : "TimePicker",
+
+  inputName: "",
+  name: "",
+  
+  postCreate: function() {
+    struts.widget.StrutsTimePicker.superclass.postCreate.apply(this, arguments);
+  
+    if(this.value.toLowerCase() == "today") {
+      this.value = dojo.date.toRfc3339(new Date());
+    }
+
+    this.inputNode.name = this.name;
+    this.valueNode.name = this.inputName;
+  },
+  
+  onSetTime: function() {
+    struts.widget.StrutsTimePicker.superclass.onSetTime.apply(this, arguments);
+    if(this.timePicker.selectedTime.anyTime){
+      this.valueNode.value = "";
+    } else {
+      this.valueNode.value = dojo.date.toRfc3339(this.timePicker.time);
+    }
+  }
+});
\ No newline at end of file
diff --git a/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/__package__.js
index 1ecffb0..5fa9ae5 100644
--- a/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/__package__.js
+++ b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/__package__.js
@@ -1,8 +1,29 @@
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
 dojo.kwCompoundRequire({
 	common: ["struts.widget.Bind",
 	         "struts.widget.BindDiv",
 	         "struts.widget.BindAnchor",
 	         "struts.widget.ComboBox",
-            "struts.widget.DatePicker"]
+             "struts.widget.StrutsTimePicker"]
 });
 dojo.provide("struts.widget.*");
diff --git a/core/src/main/resources/org/apache/struts2/static/dojo/struts/widgets/dropdowncontainer.css b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widgets/dropdowncontainer.css
index e69de29..ffffcd3 100644
--- a/core/src/main/resources/org/apache/struts2/static/dojo/struts/widgets/dropdowncontainer.css
+++ b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widgets/dropdowncontainer.css
@@ -0,0 +1,21 @@
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
diff --git a/core/src/main/resources/org/apache/struts2/static/inputtransferselect.js b/core/src/main/resources/org/apache/struts2/static/inputtransferselect.js
index df45895..a934eac 100644
--- a/core/src/main/resources/org/apache/struts2/static/inputtransferselect.js
+++ b/core/src/main/resources/org/apache/struts2/static/inputtransferselect.js
@@ -1,3 +1,24 @@
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
 function addOption(objTextBox, objTargetElement) {
     var value = objTextBox.value;
     if(value != null && value != '') {
diff --git a/core/src/main/resources/org/apache/struts2/static/optiontransferselect.js b/core/src/main/resources/org/apache/struts2/static/optiontransferselect.js
index 3f2d62b..3bb4844 100644
--- a/core/src/main/resources/org/apache/struts2/static/optiontransferselect.js
+++ b/core/src/main/resources/org/apache/struts2/static/optiontransferselect.js
@@ -1,3 +1,24 @@
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
 function moveSelectedOptions(objSourceElement, objTargetElement, toSort, notMove1, notMove2) {
     var test1 = compile(notMove1);
     var test2 = compile(notMove2);
diff --git a/core/src/main/resources/org/apache/struts2/static/tabs.css b/core/src/main/resources/org/apache/struts2/static/tabs.css
index 4db96bb..4a3f6b6 100644
--- a/core/src/main/resources/org/apache/struts2/static/tabs.css
+++ b/core/src/main/resources/org/apache/struts2/static/tabs.css
@@ -1,3 +1,24 @@
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
 .tab_header {
 	position: relative;
 	width: 100%;
diff --git a/core/src/main/resources/org/apache/struts2/static/tree.css b/core/src/main/resources/org/apache/struts2/static/tree.css
index 0af721d..1a5b5d7 100644
--- a/core/src/main/resources/org/apache/struts2/static/tree.css
+++ b/core/src/main/resources/org/apache/struts2/static/tree.css
@@ -1,3 +1,24 @@
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
 .dojoTree {
 	font: caption;
 	font-size: 11px;
diff --git a/core/src/main/resources/org/apache/struts2/static/validationClient.js b/core/src/main/resources/org/apache/struts2/static/validationClient.js
index 3ce1362..1f1a044 100644
--- a/core/src/main/resources/org/apache/struts2/static/validationClient.js
+++ b/core/src/main/resources/org/apache/struts2/static/validationClient.js
@@ -1,3 +1,24 @@
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
 /**
  *
  * Common code to interface with the validationServlet 
diff --git a/core/src/main/resources/org/apache/struts2/struts-messages.properties b/core/src/main/resources/org/apache/struts2/struts-messages.properties
index 0e8a16c..e19efa7 100644
--- a/core/src/main/resources/org/apache/struts2/struts-messages.properties
+++ b/core/src/main/resources/org/apache/struts2/struts-messages.properties
@@ -1,3 +1,22 @@
+#  $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+# 
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you 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.
+
 struts.messages.invalid.token=The form has already been processed or no token was supplied, please try again.
 struts.internal.invalid.token=Form token {0} does not match the session token {1}.
 
diff --git a/core/src/main/resources/org/apache/struts2/struts-messages_da.properties b/core/src/main/resources/org/apache/struts2/struts-messages_da.properties
index 5577418..06ec2ab 100644
--- a/core/src/main/resources/org/apache/struts2/struts-messages_da.properties
+++ b/core/src/main/resources/org/apache/struts2/struts-messages_da.properties
@@ -1,3 +1,22 @@
+#  $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+# 
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you 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.
+
 struts.messages.invalid.token=Denne form er allerede blevet behandlet eller der mangler en token, venligst pr�v igen.
 struts.internal.invalid.token=Form token {0} passer ikke med den token som findes i session {1}.
 
diff --git a/core/src/main/resources/org/apache/struts2/struts-messages_de.properties b/core/src/main/resources/org/apache/struts2/struts-messages_de.properties
index fe6e943..508617e 100644
--- a/core/src/main/resources/org/apache/struts2/struts-messages_de.properties
+++ b/core/src/main/resources/org/apache/struts2/struts-messages_de.properties
@@ -1,3 +1,22 @@
+#  $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+# 
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you 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.
+
 struts.messages.invalid.token=Das Formular wurde bereits verarbeitet oder es wurde kein Token angegeben, bitte versuchen Sie es erneut.
 struts.internal.invalid.token=Das Formular Token {0} stimmt nicht mit dem Session Token {1} \u00fcberein.
 
diff --git a/core/src/main/resources/org/apache/struts2/struts-messages_pl.properties b/core/src/main/resources/org/apache/struts2/struts-messages_pl.properties
index df0fd69..a760aa5 100644
--- a/core/src/main/resources/org/apache/struts2/struts-messages_pl.properties
+++ b/core/src/main/resources/org/apache/struts2/struts-messages_pl.properties
@@ -1,3 +1,22 @@
+#  $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+# 
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you 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.
+
 struts.messages.invalid.token=Formularz zosta\u0142 ju\u017c przetworzony lub nie za\u0142\u0105czono tokena, spr\u00f3buj ponownie.
 struts.internal.invalid.token=Token formularza {0} nie pasuje do tokena sesji {1}.
 
diff --git a/core/src/main/resources/org/apache/struts2/struts-messages_pt.properties b/core/src/main/resources/org/apache/struts2/struts-messages_pt.properties
new file mode 100644
index 0000000..7096e90
--- /dev/null
+++ b/core/src/main/resources/org/apache/struts2/struts-messages_pt.properties
@@ -0,0 +1,32 @@
+#  $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $

+# 

+#  Licensed to the Apache Software Foundation (ASF) under one

+#  or more contributor license agreements.  See the NOTICE file

+#  distributed with this work for additional information

+#  regarding copyright ownership.  The ASF licenses this file

+#  to you 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.

+

+struts.messages.invalid.token=O formulario já foi processado ou nenhum token foi gerado, por favor tente novamente.

+struts.internal.invalid.token=O token do formulário {0} é diferente do token de sessão {1}.

+

+struts.messages.bypass.request=Ignorando {0}/ {1}

+struts.messages.current.file=Arquivo {0} {1} {2} {3}

+struts.messages.invalid.file=Não foi possível encontra um Nome de Arquivo para {0}. Verifique se um arquivo válido foi submetido.

+struts.messages.invalid.content.type=Não foi possível encontrar um Content-Type para {0}. Verifique se um arquivo válido foi submetido.

+struts.messages.removing.file=Removendo arquivo {0} {1}

+struts.messages.error.uploading=Erro de uploading: {0}

+struts.messages.error.file.too.large=Arquivo muito grande: {0} "{1}" {2}

+struts.messages.error.content.type.not.allowed=Content-Type não permitido: {0} "{1}" {2}

+

+devmode.notification=Notificação para o Desenvolvedor (altere o paramêtro struts.devMode para false para desabilitar esta mensagem):\n{0}

diff --git a/core/src/main/resources/org/apache/struts2/util/package.html b/core/src/main/resources/org/apache/struts2/util/package.html
index 91196fc..431d1ce 100644
--- a/core/src/main/resources/org/apache/struts2/util/package.html
+++ b/core/src/main/resources/org/apache/struts2/util/package.html
@@ -1 +1,23 @@
+<!--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <body>Miscellaneous helper classes.</body>
diff --git a/core/src/main/resources/org/apache/struts2/views/freemarker/package.html b/core/src/main/resources/org/apache/struts2/views/freemarker/package.html
index 328048c..523a346 100644
--- a/core/src/main/resources/org/apache/struts2/views/freemarker/package.html
+++ b/core/src/main/resources/org/apache/struts2/views/freemarker/package.html
@@ -1 +1,23 @@
+<!--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <body>Classes for views using FreeMarker.</body>
diff --git a/core/src/main/resources/org/apache/struts2/views/jsp/iterator/package.html b/core/src/main/resources/org/apache/struts2/views/jsp/iterator/package.html
index f175d47..a7b2362 100644
--- a/core/src/main/resources/org/apache/struts2/views/jsp/iterator/package.html
+++ b/core/src/main/resources/org/apache/struts2/views/jsp/iterator/package.html
@@ -1 +1,23 @@
+<!--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <body>Struts's JSP tag library for iterator handling.</body>
diff --git a/core/src/main/resources/org/apache/struts2/views/jsp/ui/package.html b/core/src/main/resources/org/apache/struts2/views/jsp/ui/package.html
index 80662cf..9ba61ae 100644
--- a/core/src/main/resources/org/apache/struts2/views/jsp/ui/package.html
+++ b/core/src/main/resources/org/apache/struts2/views/jsp/ui/package.html
@@ -1 +1,23 @@
+<!--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <body>Struts' JSP UI tags.</body>
diff --git a/core/src/main/resources/org/apache/struts2/views/jsp/ui/table/package.html b/core/src/main/resources/org/apache/struts2/views/jsp/ui/table/package.html
index 5755685..b42f47d 100644
--- a/core/src/main/resources/org/apache/struts2/views/jsp/ui/table/package.html
+++ b/core/src/main/resources/org/apache/struts2/views/jsp/ui/table/package.html
@@ -1 +1,23 @@
+<!--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <body>JSP UI tags for modeling tables.</body>
diff --git a/core/src/main/resources/overview.html b/core/src/main/resources/overview.html
index 6573508..31f30aa 100644
--- a/core/src/main/resources/overview.html
+++ b/core/src/main/resources/overview.html
@@ -1,3 +1,25 @@
+<!--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <body>
 
 This document is the API specification for Struts - note, Struts is built on top of
diff --git a/core/src/main/resources/struts-2.0.dtd b/core/src/main/resources/struts-2.0.dtd
index b3c74af..ff4ea28 100644
--- a/core/src/main/resources/struts-2.0.dtd
+++ b/core/src/main/resources/struts-2.0.dtd
@@ -1,4 +1,26 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 
 <!-- START SNIPPET: strutsDtd -->
 
@@ -13,7 +35,7 @@
 
 <!ELEMENT struts (package|include|bean|constant)*>
 
-<!ELEMENT package (result-types?, interceptors?, default-interceptor-ref?, default-action-ref?, global-results?, global-exception-mappings?, action*)>
+<!ELEMENT package (result-types?, interceptors?, default-interceptor-ref?, default-action-ref?, default-class-ref?, global-results?, global-exception-mappings?, action*)>
 <!ATTLIST package
     name CDATA #REQUIRED
     extends CDATA #IMPLIED
@@ -39,7 +61,7 @@
     class CDATA #REQUIRED
 >
 
-<!ELEMENT interceptor-stack (interceptor-ref+)>
+<!ELEMENT interceptor-stack (interceptor-ref*)>
 <!ATTLIST interceptor-stack
     name CDATA #REQUIRED
 >
@@ -59,6 +81,11 @@
     name CDATA #REQUIRED
 >
 
+<!ELEMENT default-class-ref (param*)>
+<!ATTLIST default-class-ref
+    class CDATA #REQUIRED
+>
+
 <!ELEMENT global-results (result+)>
 
 <!ELEMENT global-exception-mappings (exception-mapping+)>
diff --git a/core/src/main/resources/struts-default.xml b/core/src/main/resources/struts-default.xml
index ab7605d..43c0502 100644
--- a/core/src/main/resources/struts-default.xml
+++ b/core/src/main/resources/struts-default.xml
@@ -1,100 +1,130 @@
 <?xml version="1.0" encoding="UTF-8" ?>
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 
 <!DOCTYPE struts PUBLIC
     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
     "http://struts.apache.org/dtds/struts-2.0.dtd">
-    
+
 <struts>
-	<bean class="com.opensymphony.xwork2.ObjectFactory" name="xwork" />
-	<bean type="com.opensymphony.xwork2.ObjectFactory" name="struts" class="org.apache.struts2.impl.StrutsObjectFactory" />
-	
-	<bean type="com.opensymphony.xwork2.ActionProxyFactory" name="xwork" class="com.opensymphony.xwork2.DefaultActionProxyFactory"/>
-	<bean type="com.opensymphony.xwork2.ActionProxyFactory" name="struts" class="org.apache.struts2.impl.StrutsActionProxyFactory"/>
-	
-	<bean type="com.opensymphony.xwork2.util.ObjectTypeDeterminer" name="tiger" class="com.opensymphony.xwork2.util.GenericsObjectTypeDeterminer"/>
-	<bean type="com.opensymphony.xwork2.util.ObjectTypeDeterminer" name="notiger" class="com.opensymphony.xwork2.util.DefaultObjectTypeDeterminer"/>
-	<bean type="com.opensymphony.xwork2.util.ObjectTypeDeterminer" name="struts" class="com.opensymphony.xwork2.util.DefaultObjectTypeDeterminer"/>
-    
+    <bean class="com.opensymphony.xwork2.ObjectFactory" name="xwork" />
+    <bean type="com.opensymphony.xwork2.ObjectFactory" name="struts" class="org.apache.struts2.impl.StrutsObjectFactory" />
+
+    <bean type="com.opensymphony.xwork2.ActionProxyFactory" name="xwork" class="com.opensymphony.xwork2.DefaultActionProxyFactory"/>
+    <bean type="com.opensymphony.xwork2.ActionProxyFactory" name="struts" class="org.apache.struts2.impl.StrutsActionProxyFactory"/>
+
+    <bean type="com.opensymphony.xwork2.util.ObjectTypeDeterminer" name="tiger" class="com.opensymphony.xwork2.util.GenericsObjectTypeDeterminer"/>
+    <bean type="com.opensymphony.xwork2.util.ObjectTypeDeterminer" name="notiger" class="com.opensymphony.xwork2.util.DefaultObjectTypeDeterminer"/>
+    <bean type="com.opensymphony.xwork2.util.ObjectTypeDeterminer" name="struts" class="com.opensymphony.xwork2.util.DefaultObjectTypeDeterminer"/>
+
     <bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="struts" class="org.apache.struts2.dispatcher.mapper.DefaultActionMapper" />
     <bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="composite" class="org.apache.struts2.dispatcher.mapper.CompositeActionMapper" />
     <bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="restful" class="org.apache.struts2.dispatcher.mapper.RestfulActionMapper" />
     <bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="restful2" class="org.apache.struts2.dispatcher.mapper.Restful2ActionMapper" />
-    
+
     <bean type="org.apache.struts2.dispatcher.multipart.MultiPartRequest" name="struts" class="org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest" scope="default" optional="true"/>
     <bean type="org.apache.struts2.dispatcher.multipart.MultiPartRequest" name="jakarta" class="org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest" scope="default" optional="true" />
-    
+
     <bean type="org.apache.struts2.views.TagLibrary" name="s" class="org.apache.struts2.views.DefaultTagLibrary" />
-    
+
     <bean class="org.apache.struts2.views.freemarker.FreemarkerManager" name="struts" optional="true"/>
     <bean class="org.apache.struts2.views.velocity.VelocityManager" name="struts" optional="true" />
-    
+
     <bean class="org.apache.struts2.components.template.TemplateEngineManager" />
     <bean type="org.apache.struts2.components.template.TemplateEngine" name="ftl" class="org.apache.struts2.components.template.FreemarkerTemplateEngine" />
     <bean type="org.apache.struts2.components.template.TemplateEngine" name="vm" class="org.apache.struts2.components.template.VelocityTemplateEngine" />
     <bean type="org.apache.struts2.components.template.TemplateEngine" name="jsp" class="org.apache.struts2.components.template.JspTemplateEngine" />
 
-	<bean type="com.opensymphony.xwork2.util.XWorkConverter" name="xwork1" class="com.opensymphony.xwork2.util.XWorkConverter" />    
+    <bean type="com.opensymphony.xwork2.util.XWorkConverter" name="xwork1" class="com.opensymphony.xwork2.util.XWorkConverter" />
     <bean type="com.opensymphony.xwork2.util.XWorkConverter" name="struts" class="com.opensymphony.xwork2.util.AnnotationXWorkConverter" />
-    
+    <bean type="com.opensymphony.xwork2.TextProvider" name="xwork1" class="com.opensymphony.xwork2.TextProviderSupport" />
+    <bean type="com.opensymphony.xwork2.TextProvider" name="struts" class="com.opensymphony.xwork2.TextProviderSupport" />
+
     <!--  Only have static injections -->
+    <bean class="com.opensymphony.xwork2.ObjectFactory" static="true" />
+    <bean class="com.opensymphony.xwork2.util.XWorkConverter" static="true" />
     <bean class="com.opensymphony.xwork2.util.OgnlValueStack" static="true" />
+    <bean class="com.opensymphony.xwork2.validator.ValidatorFileParser" static="true" />
     <bean class="org.apache.struts2.dispatcher.Dispatcher" static="true" />
     <bean class="org.apache.struts2.components.Include" static="true" />
     <bean class="org.apache.struts2.dispatcher.FilterDispatcher" static="true" />
     <bean class="org.apache.struts2.views.util.ContextUtil" static="true" />
     <bean class="org.apache.struts2.views.util.UrlHelper" static="true" />
-    <bean class="com.opensymphony.xwork2.util.XWorkConverter" static="true" />
-    <bean class="com.opensymphony.xwork2.ObjectFactory" static="true" />
-	
-    <package name="struts-default">
+
+    <package name="struts-default" abstract="true">
         <result-types>
             <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>
             <result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>
             <result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/>
             <result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/>
             <result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>
-            <result-type name="redirect-action" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
+            <result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
             <result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/>
             <result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/>
             <result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>
+            <result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />
+            <!-- Deprecated name form scheduled for removal in Struts 2.1.0. The camelCase versions are preferred. See ww-1707 -->
+            <result-type name="redirect-action" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
             <result-type name="plaintext" class="org.apache.struts2.dispatcher.PlainTextResult" />
         </result-types>
 
+
         <interceptors>
             <interceptor name="alias" class="com.opensymphony.xwork2.interceptor.AliasInterceptor"/>
             <interceptor name="autowiring" class="com.opensymphony.xwork2.spring.interceptor.ActionAutowiringInterceptor"/>
             <interceptor name="chain" class="com.opensymphony.xwork2.interceptor.ChainingInterceptor"/>
             <interceptor name="conversionError" class="org.apache.struts2.interceptor.StrutsConversionErrorInterceptor"/>
+            <interceptor name="cookie" class="org.apache.struts2.interceptor.CookieInterceptor"/>
             <interceptor name="createSession" class="org.apache.struts2.interceptor.CreateSessionInterceptor" />
             <interceptor name="debugging" class="org.apache.struts2.interceptor.debugging.DebuggingInterceptor" />
-            <interceptor name="external-ref" class="com.opensymphony.xwork2.interceptor.ExternalReferencesInterceptor"/>
+            <interceptor name="externalRef" class="com.opensymphony.xwork2.interceptor.ExternalReferencesInterceptor"/>
             <interceptor name="execAndWait" class="org.apache.struts2.interceptor.ExecuteAndWaitInterceptor"/>
             <interceptor name="exception" class="com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor"/>
             <interceptor name="fileUpload" class="org.apache.struts2.interceptor.FileUploadInterceptor"/>
             <interceptor name="i18n" class="com.opensymphony.xwork2.interceptor.I18nInterceptor"/>
             <interceptor name="logger" class="com.opensymphony.xwork2.interceptor.LoggingInterceptor"/>
-            <interceptor name="model-driven" class="com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor"/>
-            <interceptor name="scoped-model-driven" class="com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor"/>
+            <interceptor name="modelDriven" class="com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor"/>
+            <interceptor name="scopedModelDriven" class="com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor"/>
             <interceptor name="params" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor"/>
             <interceptor name="prepare" class="com.opensymphony.xwork2.interceptor.PrepareInterceptor"/>
-            <interceptor name="static-params" class="com.opensymphony.xwork2.interceptor.StaticParametersInterceptor"/>
+            <interceptor name="staticParams" class="com.opensymphony.xwork2.interceptor.StaticParametersInterceptor"/>
             <interceptor name="scope" class="org.apache.struts2.interceptor.ScopeInterceptor"/>
-            <interceptor name="servlet-config" class="org.apache.struts2.interceptor.ServletConfigInterceptor"/>
+            <interceptor name="servletConfig" class="org.apache.struts2.interceptor.ServletConfigInterceptor"/>
             <interceptor name="sessionAutowiring" class="org.apache.struts2.spring.interceptor.SessionContextAutowiringInterceptor"/>
             <interceptor name="timer" class="com.opensymphony.xwork2.interceptor.TimerInterceptor"/>
             <interceptor name="token" class="org.apache.struts2.interceptor.TokenInterceptor"/>
-            <interceptor name="token-session" class="org.apache.struts2.interceptor.TokenSessionStoreInterceptor"/>
+            <interceptor name="tokenSession" class="org.apache.struts2.interceptor.TokenSessionStoreInterceptor"/>
             <interceptor name="validation" class="org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor"/>
             <interceptor name="workflow" class="com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor"/>
             <interceptor name="store" class="org.apache.struts2.interceptor.MessageStoreInterceptor" />
             <interceptor name="checkbox" class="org.apache.struts2.interceptor.CheckboxInterceptor" />
             <interceptor name="profiling" class="org.apache.struts2.interceptor.ProfilingActivationInterceptor" />
             <interceptor name="roles" class="org.apache.struts2.interceptor.RolesInterceptor" />
-            
+
             <!-- Basic stack -->
             <interceptor-stack name="basicStack">
                 <interceptor-ref name="exception"/>
-                <interceptor-ref name="servlet-config"/>
+                <interceptor-ref name="servletConfig"/>
                 <interceptor-ref name="prepare"/>
                 <interceptor-ref name="checkbox"/>
                 <interceptor-ref name="params"/>
@@ -116,7 +146,7 @@
 
             <!-- Sample model-driven stack  -->
             <interceptor-stack name="modelDrivenStack">
-                <interceptor-ref name="model-driven"/>
+                <interceptor-ref name="modelDriven"/>
                 <interceptor-ref name="basicStack"/>
             </interceptor-stack>
 
@@ -148,14 +178,14 @@
                 <interceptor-ref name="exception"/>
                 <interceptor-ref name="alias"/>
                 <interceptor-ref name="params"/>
-                <interceptor-ref name="servlet-config"/>
+                <interceptor-ref name="servletConfig"/>
                 <interceptor-ref name="prepare"/>
                 <interceptor-ref name="i18n"/>
                 <interceptor-ref name="chain"/>
-                <interceptor-ref name="model-driven"/>
+                <interceptor-ref name="modelDriven"/>
                 <interceptor-ref name="fileUpload"/>
                 <interceptor-ref name="checkbox"/>
-                <interceptor-ref name="static-params"/>
+                <interceptor-ref name="staticParams"/>
                 <interceptor-ref name="params"/>
                 <interceptor-ref name="conversionError"/>
                 <interceptor-ref name="validation">
@@ -180,19 +210,19 @@
             <interceptor-stack name="defaultStack">
                 <interceptor-ref name="exception"/>
                 <interceptor-ref name="alias"/>
-                <interceptor-ref name="servlet-config"/>
+                <interceptor-ref name="servletConfig"/>
                 <interceptor-ref name="prepare"/>
                 <interceptor-ref name="i18n"/>
                 <interceptor-ref name="chain"/>
                 <interceptor-ref name="debugging"/>
                 <interceptor-ref name="profiling"/>
-                <interceptor-ref name="scoped-model-driven"/>
-                <interceptor-ref name="model-driven"/>
+                <interceptor-ref name="scopedModelDriven"/>
+                <interceptor-ref name="modelDriven"/>
                 <interceptor-ref name="fileUpload"/>
                 <interceptor-ref name="checkbox"/>
-                <interceptor-ref name="static-params"/>
+                <interceptor-ref name="staticParams"/>
                 <interceptor-ref name="params">
-                	<param name="excludeParams">dojo\..*</param>
+                  <param name="excludeParams">dojo\..*</param>
                 </interceptor-ref>
                 <interceptor-ref name="conversionError"/>
                 <interceptor-ref name="validation">
@@ -221,9 +251,17 @@
                     <param name="excludeMethods">input,back,cancel</param>
                 </interceptor-ref>
             </interceptor-stack>
-            
+
+            <!-- Deprecated name forms scheduled for removal in Struts 2.1.0. The camelCase versions are preferred. See ww-1707 -->
+            <interceptor name="external-ref" class="com.opensymphony.xwork2.interceptor.ExternalReferencesInterceptor"/>
+            <interceptor name="model-driven" class="com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor"/>
+            <interceptor name="static-params" class="com.opensymphony.xwork2.interceptor.StaticParametersInterceptor"/>
+            <interceptor name="scoped-model-driven" class="com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor"/>
+            <interceptor name="servlet-config" class="org.apache.struts2.interceptor.ServletConfigInterceptor"/>
+            <interceptor name="token-session" class="org.apache.struts2.interceptor.TokenSessionStoreInterceptor"/>
+
        </interceptors>
-        
+
         <default-interceptor-ref name="defaultStack"/>
     </package>
 
diff --git a/core/src/main/resources/struts-portlet-default.xml b/core/src/main/resources/struts-portlet-default.xml
index 20df8d1..76488a6 100644
--- a/core/src/main/resources/struts-portlet-default.xml
+++ b/core/src/main/resources/struts-portlet-default.xml
@@ -1,37 +1,70 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-
+<!--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <!DOCTYPE struts PUBLIC
-    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
-    "http://struts.apache.org/dtds/struts-2.0.dtd">
-    
+        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
+        "http://struts.apache.org/dtds/struts-2.0.dtd">
+
 <struts>
     <package name="struts-portlet-default" extends="struts-default">
 
-	   <result-types>
-			<result-type name="dispatcher" class="org.apache.struts2.portlet.result.PortletResult" default="true"/>
-			<result-type name="freemarker" class="org.apache.struts2.views.freemarker.PortletFreemarkerResult"/>
-			<result-type name="velocity" class="org.apache.struts2.portlet.result.PortletVelocityResult"/>
-	   </result-types>
-       
-       <interceptors>
-        <interceptor name="portlet-preferences" class="org.apache.struts2.portlet.interceptor.PortletPreferencesInterceptor"/>
-        <interceptor-stack name="portletDefaultStack">
-            <interceptor-ref name="defaultStack"/>
-            <interceptor-ref name="portlet-preferences" />
-        </interceptor-stack>
-        
-       </interceptors>
-       
-       <default-interceptor-ref name="portletDefaultStack"/>
-       
-	   <action name="renderDirect" class="org.apache.struts2.portlet.dispatcher.DirectRenderFromEventAction">
-	   		<result name="success">${location}</result>
-	   </action>
-	   <action name="freemarkerDirect" class="org.apache.struts2.portlet.dispatcher.DirectRenderFromEventAction">
-	   		<result type="freemarker" name="success">${location}</result>
-	   </action>
-	   <action name="velocityDirect" class="org.apache.struts2.portlet.dispatcher.DirectRenderFromEventAction">
-	   		<result type="velocity" name="success">${location}</result>
-	   </action>
-	</package>
+        <result-types>
+            <result-type name="dispatcher" class="org.apache.struts2.portlet.result.PortletResult" default="true"/>
+            <result-type name="redirect" class="org.apache.struts2.portlet.result.PortletResult"/>
+		    <result-type name="redirectAction" class="org.apache.struts2.portlet.result.PortletActionRedirectResult"/>
+            <result-type name="freemarker" class="org.apache.struts2.views.freemarker.PortletFreemarkerResult"/>
+            <result-type name="velocity" class="org.apache.struts2.portlet.result.PortletVelocityResult"/>
+        </result-types>
+
+        <interceptors>
+            <interceptor name="portletAware" class="org.apache.struts2.portlet.interceptor.PortletAwareInterceptor"/>
+            <interceptor name="portletState" class="org.apache.struts2.portlet.interceptor.PortletStateInterceptor"/>
+            <!-- Default stack for operating in portlet environment -->
+            <interceptor-stack name="portletDefaultStack">
+                <interceptor-ref name="portletState"/>
+                <interceptor-ref name="defaultStack"/>
+                <interceptor-ref name="portletAware"/>
+            </interceptor-stack>
+            <!-- Extension of the default portlet stack which also includes the token interceptor -->
+            <interceptor-stack name="portletDefaultStackWithToken">
+                <interceptor-ref name="portletState"/>
+                <interceptor-ref name="token"/>
+                <interceptor-ref name="defaultStack"/>
+                <interceptor-ref name="portletAware"/>
+            </interceptor-stack>
+
+        </interceptors>
+
+        <default-interceptor-ref name="portletDefaultStack"/>
+
+        <action name="renderDirect" class="org.apache.struts2.portlet.dispatcher.DirectRenderFromEventAction">
+            <result name="success">${location}</result>
+        </action>
+        <action name="freemarkerDirect" class="org.apache.struts2.portlet.dispatcher.DirectRenderFromEventAction">
+            <result type="freemarker" name="success">${location}</result>
+        </action>
+        <action name="velocityDirect" class="org.apache.struts2.portlet.dispatcher.DirectRenderFromEventAction">
+            <result type="velocity" name="success">${location}</result>
+        </action>
+    </package>
 </struts>
diff --git a/core/src/main/resources/struts.vm b/core/src/main/resources/struts.vm
index c908156..2d863c6 100644
--- a/core/src/main/resources/struts.vm
+++ b/core/src/main/resources/struts.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 #macro(bean $bean_name $name)
    #set ($name = $struts.bean($bean_name))
 #end
diff --git a/core/src/main/resources/template/ajax/a.ftl b/core/src/main/resources/template/ajax/a.ftl
index 236716b..619b085 100644
--- a/core/src/main/resources/template/ajax/a.ftl
+++ b/core/src/main/resources/template/ajax/a.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <a dojoType="struts:BindAnchor"
   <#include "/${parameters.templateDir}/ajax/ajax-common.ftl" />
   <#include "/${parameters.templateDir}/simple/scripting-events.ftl" />
diff --git a/core/src/main/resources/template/ajax/ajax-common.ftl b/core/src/main/resources/template/ajax/ajax-common.ftl
index ddd1031..00b48bd 100644
--- a/core/src/main/resources/template/ajax/ajax-common.ftl
+++ b/core/src/main/resources/template/ajax/ajax-common.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
   <#if parameters.id?if_exists != "">
   	id="${parameters.id?html}"<#rt/>
   </#if>
@@ -61,3 +83,6 @@
   <#if parameters.showErrorTransportText?exists>
     showError="${parameters.showErrorTransportText?string?html}"<#rt/>
   </#if>
+  <#if parameters.showLoadingText?exists>
+    showLoading="${parameters.showLoadingText?string?html}"<#rt/>
+  </#if>
diff --git a/core/src/main/resources/template/ajax/autocompleter.ftl b/core/src/main/resources/template/ajax/autocompleter.ftl
index 3ab6588..f96aa0e 100644
--- a/core/src/main/resources/template/ajax/autocompleter.ftl
+++ b/core/src/main/resources/template/ajax/autocompleter.ftl
@@ -1,3 +1,25 @@
+<#--

+/*

+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $

+ *

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you 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.

+ */

+-->

 <input dojoType="struts:ComboBox"<#rt/>

 <#if parameters.id?if_exists != "">

  id="${parameters.id?html}"<#rt/>

@@ -38,6 +60,9 @@
 <#if parameters.get("size")?exists>

  size="${parameters.get("size")?html}"<#rt/>

 </#if>

+<#if parameters.keyName?if_exists != "">

+ keyName="${parameters.keyName?html}"<#rt/>

+</#if>

 <#if parameters.maxlength?exists>

  maxlength="${parameters.maxlength?string?html}"<#rt/>

 </#if>

@@ -77,6 +102,18 @@
 <#if parameters.showDownArrow?exists>

  visibleDownArrow="${parameters.showDownArrow?string?html}"<#rt/>

 </#if>

+<#if parameters.iconPath?if_exists != "">

+ buttonSrc="<@s.url value='${parameters.iconPath}' encode="false" includeParams='none'/>"<#rt/>

+</#if>

+<#if parameters.templateCssPath?if_exists != "">

+ templateCssPath="<@s.url value='${parameters.templateCssPath}' encode="false" includeParams='none'/>"

+</#if>

+<#if parameters.dataFieldName?if_exists != "">

+ dataFieldName="${parameters.dataFieldName?html}"

+</#if>

+<#if parameters.searchLimit?if_exists != "">

+ searchLimit="${parameters.searchLimit?html}"

+</#if>

 <#include "/${parameters.templateDir}/simple/scripting-events.ftl" />

 >

 

diff --git a/core/src/main/resources/template/ajax/controlheader.ftl b/core/src/main/resources/template/ajax/controlheader.ftl
index 505348e..5456e67 100644
--- a/core/src/main/resources/template/ajax/controlheader.ftl
+++ b/core/src/main/resources/template/ajax/controlheader.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#--include "/${parameters.templateDir}/xhtml/controlheader-core.ftl" /-->
 <#if parameters.form?exists && parameters.form.validate?default(false) == true>
 	<#-- can't mutate the data model in freemarker -->
diff --git a/core/src/main/resources/template/ajax/div-close.ftl b/core/src/main/resources/template/ajax/div-close.ftl
index 04f5b84..df3667c 100644
--- a/core/src/main/resources/template/ajax/div-close.ftl
+++ b/core/src/main/resources/template/ajax/div-close.ftl
@@ -1 +1,23 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 </div>
diff --git a/core/src/main/resources/template/ajax/div.ftl b/core/src/main/resources/template/ajax/div.ftl
index 81779c1..c78703a 100644
--- a/core/src/main/resources/template/ajax/div.ftl
+++ b/core/src/main/resources/template/ajax/div.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <div dojoType="struts:BindDiv"
   <#if parameters.delay?exists>
     delay="${parameters.delay?c}"<#rt/>
@@ -14,6 +36,12 @@
   <#if parameters.stopTimerListenTopics?if_exists != "">
     stopTimerListenTopics="${parameters.stopTimerListenTopics?html}"<#rt/>
   </#if>
+  <#if parameters.refreshOnShow?exists>
+    refreshOnShow="${parameters.refreshOnShow?string?html}"<#rt/>
+  </#if>
+  <#if parameters.separateScripts?exists>
+    scriptSeparation="${parameters.separateScripts?string?html}"<#rt/>
+  </#if>
   <#include "/${parameters.templateDir}/ajax/ajax-common.ftl" />
   <#include "/${parameters.templateDir}/simple/scripting-events.ftl" />
 >
diff --git a/core/src/main/resources/template/ajax/dojoRequire.js b/core/src/main/resources/template/ajax/dojoRequire.js
index 10188b6..f2aae70 100644
--- a/core/src/main/resources/template/ajax/dojoRequire.js
+++ b/core/src/main/resources/template/ajax/dojoRequire.js
@@ -1,3 +1,24 @@
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
 dojo.require("dojo.io.BrowserIO");
 dojo.require("dojo.event.topic");
 
@@ -9,5 +30,6 @@
 dojo.require("struts.widget.BindDiv");
 dojo.require("struts.widget.BindAnchor");
 dojo.require("struts.widget.ComboBox");
+dojo.require("struts.widget.StrutsTimePicker")
 dojo.require("dojo.widget.Editor2");
 dojo.hostenv.writeIncludes(); // not needed, but allows the Venkman debugger to work with the includes
diff --git a/core/src/main/resources/template/ajax/form-close.ftl b/core/src/main/resources/template/ajax/form-close.ftl
index c7724ba..476b1a6 100644
--- a/core/src/main/resources/template/ajax/form-close.ftl
+++ b/core/src/main/resources/template/ajax/form-close.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 
 <#if (parameters.customOnsubmitEnabled?default(false))>
 <script type="text/javascript">
@@ -83,7 +105,7 @@
  Code that will add javascript needed for tooltips
 --><#t/>
 	<#lt/><!-- javascript that is needed for tooltips -->
-	<#lt/><script language="JavaScript" type="text/javascript">dojo.require("dojo.widget.html.Tooltip");dojo.require("dojo.fx.html");</script>
+	<#lt/><script type="text/javascript">dojo.require("dojo.widget.Tooltip");dojo.require("dojo.fx.html");</script>
 
 </table>
 </form>
diff --git a/core/src/main/resources/template/ajax/form.ftl b/core/src/main/resources/template/ajax/form.ftl
index afd18e0..12ca888 100644
--- a/core/src/main/resources/template/ajax/form.ftl
+++ b/core/src/main/resources/template/ajax/form.ftl
@@ -1,9 +1,31 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#if parameters.validate?exists>
-<script src="${base}/struts/validationClient.js"></script>
-<script src="${base}/dwr/interface/validator.js"></script>
-<script src="${base}/dwr/engine.js"></script>
-<script src="${base}/struts/ajax/validation.js"></script>
-<script src="${base}/struts/${themeProperties.parent}/validation.js"></script>
+<script type="text/javascript" src="${base}/struts/validationClient.js"></script>
+<script type="text/javascript" src="${base}/dwr/interface/validator.js"></script>
+<script type="text/javascript" src="${base}/dwr/engine.js"></script>
+<script type="text/javascript" src="${base}/struts/ajax/validation.js"></script>
+<script type="text/javascript" src="${base}/struts/${themeProperties.parent}/validation.js"></script>
 </#if>
 <form<#rt/>
 <#if parameters.namespace?exists>
diff --git a/core/src/main/resources/template/ajax/head.ftl b/core/src/main/resources/template/ajax/head.ftl
index bd85e3b..eaf7947 100644
--- a/core/src/main/resources/template/ajax/head.ftl
+++ b/core/src/main/resources/template/ajax/head.ftl
@@ -1,6 +1,28 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#--include "/${parameters.templateDir}/xhtml/head.ftl" /-->
 <#include "/${parameters.templateDir}/${themeProperties.parent}/head.ftl" />
-<script language="JavaScript" type="text/javascript"
+<script type="text/javascript"
         src="<@s.url value='/struts/ajax/dojoRequire.js' includeParams='none' encode='false'  />"></script>
-<script language="JavaScript" type="text/javascript"
+<script type="text/javascript"
         src="<@s.url value='/struts/CommonFunctions.js' includeParams='none' encode='false'/>"></script>
diff --git a/core/src/main/resources/template/ajax/submit.ftl b/core/src/main/resources/template/ajax/submit.ftl
index 8f24203..81e80ac 100644
--- a/core/src/main/resources/template/ajax/submit.ftl
+++ b/core/src/main/resources/template/ajax/submit.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <tr>
     <td colspan="2"><div <#rt/>
 <#if parameters.align?exists>
diff --git a/core/src/main/resources/template/ajax/tab-close.ftl b/core/src/main/resources/template/ajax/tab-close.ftl
index 04f5b84..df3667c 100644
--- a/core/src/main/resources/template/ajax/tab-close.ftl
+++ b/core/src/main/resources/template/ajax/tab-close.ftl
@@ -1 +1,23 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 </div>
diff --git a/core/src/main/resources/template/ajax/tab.ftl b/core/src/main/resources/template/ajax/tab.ftl
index e87404e..77b632c 100644
--- a/core/src/main/resources/template/ajax/tab.ftl
+++ b/core/src/main/resources/template/ajax/tab.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <div id="${parameters.id}" cacheContent="false"
   <#if parameters.title?if_exists != "">
     label="${parameters.title?html}"<#rt/>
diff --git a/core/src/main/resources/template/ajax/textarea.ftl b/core/src/main/resources/template/ajax/textarea.ftl
index 2804955..9dcfa45 100644
--- a/core/src/main/resources/template/ajax/textarea.ftl
+++ b/core/src/main/resources/template/ajax/textarea.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 
 <textarea<#rt/>
diff --git a/core/src/main/resources/template/ajax/theme.properties b/core/src/main/resources/template/ajax/theme.properties
index 1b04afa..257f75d 100644
--- a/core/src/main/resources/template/ajax/theme.properties
+++ b/core/src/main/resources/template/ajax/theme.properties
@@ -1 +1,20 @@
+#  $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+# 
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you 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.
+
 parent=xhtml
diff --git a/core/src/main/resources/template/ajax/tree-close.ftl b/core/src/main/resources/template/ajax/tree-close.ftl
index 811591b..912791a 100644
--- a/core/src/main/resources/template/ajax/tree-close.ftl
+++ b/core/src/main/resources/template/ajax/tree-close.ftl
@@ -1 +1,23 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#if parameters.label?exists></div></#if></div>
diff --git a/core/src/main/resources/template/ajax/tree.ftl b/core/src/main/resources/template/ajax/tree.ftl
index ee6fc92..7884b90 100644
--- a/core/src/main/resources/template/ajax/tree.ftl
+++ b/core/src/main/resources/template/ajax/tree.ftl
@@ -1,4 +1,26 @@
- <script language="JavaScript" type="text/javascript">
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+ <script type="text/javascript">
         <!--
         dojo.require("dojo.lang.*");
         dojo.require("dojo.widget.*");
diff --git a/core/src/main/resources/template/ajax/treenode-close.ftl b/core/src/main/resources/template/ajax/treenode-close.ftl
index 04f5b84..df3667c 100644
--- a/core/src/main/resources/template/ajax/treenode-close.ftl
+++ b/core/src/main/resources/template/ajax/treenode-close.ftl
@@ -1 +1,23 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 </div>
diff --git a/core/src/main/resources/template/ajax/treenode-include.ftl b/core/src/main/resources/template/ajax/treenode-include.ftl
index 02c2d1d..03e56d0 100644
--- a/core/src/main/resources/template/ajax/treenode-include.ftl
+++ b/core/src/main/resources/template/ajax/treenode-include.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <div dojoType="TreeNode" title="${stack.findValue(parameters.nodeTitleProperty)}" id="${stack.findValue(parameters.nodeIdProperty)}">
 <#list stack.findValue(parameters.childCollectionProperty.toString()) as child>
     ${stack.push(child)}
diff --git a/core/src/main/resources/template/ajax/treenode.ftl b/core/src/main/resources/template/ajax/treenode.ftl
index 858ed45..8412cb0 100644
--- a/core/src/main/resources/template/ajax/treenode.ftl
+++ b/core/src/main/resources/template/ajax/treenode.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <div dojoType="TreeNode" 
 	<#if parameters.childIconSrc?exists>
 	childIconSrc="<@s.url value='${parameters.childIconSrc}' includeParams='none' encode='false' />"
diff --git a/core/src/main/resources/template/ajax/validation.js b/core/src/main/resources/template/ajax/validation.js
index c485aec..f55c409 100644
--- a/core/src/main/resources/template/ajax/validation.js
+++ b/core/src/main/resources/template/ajax/validation.js
@@ -1,3 +1,24 @@
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
 var strutsValidator = new ValidationClient("$!base/validation");
 strutsValidator.onErrors = function(input, errors) {
 
diff --git a/core/src/main/resources/template/archive/ajax/a-close.vm b/core/src/main/resources/template/archive/ajax/a-close.vm
index 937be08..8232fea 100644
--- a/core/src/main/resources/template/archive/ajax/a-close.vm
+++ b/core/src/main/resources/template/archive/ajax/a-close.vm
@@ -1 +1,21 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 </a>
diff --git a/core/src/main/resources/template/archive/ajax/a.vm b/core/src/main/resources/template/archive/ajax/a.vm
index 27b56b2..93109a3 100644
--- a/core/src/main/resources/template/archive/ajax/a.vm
+++ b/core/src/main/resources/template/archive/ajax/a.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 <a dojoType="BindAnchor" evalResult="true"
 #if ($parameters.id) id="$!struts.htmlEncode($parameters.id)" #end
 #if ($parameters.href) href="$!struts.htmlEncode($parameters.href)" #end
diff --git a/core/src/main/resources/template/archive/ajax/div-close.vm b/core/src/main/resources/template/archive/ajax/div-close.vm
index 04f5b84..e9517d9 100644
--- a/core/src/main/resources/template/archive/ajax/div-close.vm
+++ b/core/src/main/resources/template/archive/ajax/div-close.vm
@@ -1 +1,21 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 </div>
diff --git a/core/src/main/resources/template/archive/ajax/div.vm b/core/src/main/resources/template/archive/ajax/div.vm
index 4f7f280..386b17b 100644
--- a/core/src/main/resources/template/archive/ajax/div.vm
+++ b/core/src/main/resources/template/archive/ajax/div.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 <div dojoType='BindDiv'
 #if ($parameters.id) id="$!struts.htmlEncode($parameters.id)" #end
 #if ($parameters.href) href="$!parameters.href" #end
diff --git a/core/src/main/resources/template/archive/ajax/form-close.vm b/core/src/main/resources/template/archive/ajax/form-close.vm
index fec0774..48a1498 100644
--- a/core/src/main/resources/template/archive/ajax/form-close.vm
+++ b/core/src/main/resources/template/archive/ajax/form-close.vm
@@ -1,2 +1,22 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 </table>
 </form>
diff --git a/core/src/main/resources/template/archive/ajax/form.vm b/core/src/main/resources/template/archive/ajax/form.vm
index 487b0c1..9251ef6 100644
--- a/core/src/main/resources/template/archive/ajax/form.vm
+++ b/core/src/main/resources/template/archive/ajax/form.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 #if ($parameters.validate)
 <script src="$!base/struts/validationClient.js"></script>
 <script src="$!base/dwr/interface/validator.js"></script>
diff --git a/core/src/main/resources/template/archive/ajax/submit.vm b/core/src/main/resources/template/archive/ajax/submit.vm
index ebdce82..a1cce86 100644
--- a/core/src/main/resources/template/archive/ajax/submit.vm
+++ b/core/src/main/resources/template/archive/ajax/submit.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 <button type="submit" dojoType="BindButton"<#rt/>
 #if ($parameters.form && $parameters.form.id)  formId="$parameters.form.id" #end
 #if ($parameters.name) name="$!struts.htmlEncode($parameters.name)" #end
diff --git a/core/src/main/resources/template/archive/ajax/tab-close.vm b/core/src/main/resources/template/archive/ajax/tab-close.vm
index 3a2e84b..09806e0 100644
--- a/core/src/main/resources/template/archive/ajax/tab-close.vm
+++ b/core/src/main/resources/template/archive/ajax/tab-close.vm
@@ -1,7 +1,27 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
     </div>
     </div>
 
-    <script language="JavaScript" type="text/javascript">
+    <script type="text/javascript">
         var tabpanelc_$!parameters.id = new TabContent( "$!parameters.id", $!parameters.remote );
         dojo.event.topic.subscribe( "$!parameters.subscribeTopicName", tabpanelc_$!parameters.id, "updateVisibility" );
     </script>
diff --git a/core/src/main/resources/template/archive/ajax/tab.vm b/core/src/main/resources/template/archive/ajax/tab.vm
index 9e76f4c..6a77840 100644
--- a/core/src/main/resources/template/archive/ajax/tab.vm
+++ b/core/src/main/resources/template/archive/ajax/tab.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 <div class="tab_contents_header" id="tab_contents_${parameters.id}">
     <div class="tab_contents"
          id="tab_contents_update_${parameters.id}"
diff --git a/core/src/main/resources/template/archive/simple/checkbox.vm b/core/src/main/resources/template/archive/simple/checkbox.vm
index 59a5856..4c22157 100644
--- a/core/src/main/resources/template/archive/simple/checkbox.vm
+++ b/core/src/main/resources/template/archive/simple/checkbox.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 <input type="checkbox" name="$!struts.htmlEncode($parameters.name)" value="$!struts.htmlEncode($parameters.fieldValue)"
 #if ($parameters.nameValue)        checked="checked"                                        #end
 #if ($parameters.disabled && $parameters.disabled == true)
diff --git a/core/src/main/resources/template/archive/simple/checkboxlist.vm b/core/src/main/resources/template/archive/simple/checkboxlist.vm
index a4e7178..8f28f0f 100644
--- a/core/src/main/resources/template/archive/simple/checkboxlist.vm
+++ b/core/src/main/resources/template/archive/simple/checkboxlist.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 #set( $items = $parameters.list )
 #if( $items )
     #set( $itemCount = 0 )
@@ -16,7 +36,7 @@
         #end
         <input type="checkbox" name="$!struts.htmlEncode($parameters.name)" value="$!struts.htmlEncode($itemKey)"
         #parse("/$parameters.templateDir/simple/scripting-events.vm")
-        id="$!struts.htmlEncode($parameters.name)-$itemCount" #if( $tag.contains($parameters.nameValue, $itemKey) ) checked="checked" #end/>
+        id="$!struts.htmlEncode($parameters.name)-$itemCount" #if( $tag.contains($parameters.nameValue, $itemKey) ) checked="checked" #end />
         <label for="$!struts.htmlEncode($parameters.name)-$itemCount" class="checkboxLabel">$!struts.htmlEncode($itemValue)</label><br />
         #set ($trash = $stack.pop())
     #end
diff --git a/core/src/main/resources/template/archive/simple/combobox.vm b/core/src/main/resources/template/archive/simple/combobox.vm
index 7012c48..d78ec03 100644
--- a/core/src/main/resources/template/archive/simple/combobox.vm
+++ b/core/src/main/resources/template/archive/simple/combobox.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 <input type="text"
                                    name="$!struts.htmlEncode($parameters.name)"
 #if ($parameters.size)             size="$!struts.htmlEncode($parameters.size)"            #end
@@ -11,7 +31,7 @@
 #if ($parameters.cssClass)         class="$!struts.htmlEncode($parameters.cssClass)"       #end
 #if ($parameters.cssStyle)         style="$!struts.htmlEncode($parameters.cssStyle)"       #end
 #parse("/$parameters.templateDir/simple/scripting-events.vm")
-/><br/>
+/><br />
 
 #if ($parameters.list)
 <select onChange="this.form.elements['$!struts.htmlEncode($parameters.name)'].value=this.options[this.selectedIndex].value"
diff --git a/core/src/main/resources/template/archive/simple/debug.vm b/core/src/main/resources/template/archive/simple/debug.vm
index 127d946..9a871de 100644
--- a/core/src/main/resources/template/archive/simple/debug.vm
+++ b/core/src/main/resources/template/archive/simple/debug.vm
@@ -1,4 +1,24 @@
-<script language="JavaScript" type="text/javascript">
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
+<script type="text/javascript">
 <!--
     function toggleDebug(debugId) {
         var debugDiv = document.getElementById(debugId);
@@ -13,14 +33,14 @@
     }
 -->
 </script>
-<p/>
+<p />
 
 #set ($id = $parameters.id)
 #if ($id) #else #set ($id = 'debug') #end
 <a href="#" onclick="toggleDebug('$id');return false;">[Debug]</a>
 <div style="display:none" id="$id">
 <h2>Struts ValueStack Debug</h2>
-<p/>
+<p />
 
 #set($contextMap = $stack.context)
 
@@ -60,6 +80,6 @@
     #set ($index = $index + 1)
     #end
 </table>
-<p/>
+<p />
 
 </div>
diff --git a/core/src/main/resources/template/archive/simple/doubleselect.vm b/core/src/main/resources/template/archive/simple/doubleselect.vm
index 47873e8..636d5ee 100644
--- a/core/src/main/resources/template/archive/simple/doubleselect.vm
+++ b/core/src/main/resources/template/archive/simple/doubleselect.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 `#parse("/$parameters.templateDir/simple/select.vm")
 #set ( $startCount = 0)
 #if ($parameters.headerKey && $parameters.headerValue)
@@ -7,7 +27,7 @@
     #set ( $startCount = $startCount + 1)
 #end
 
-<br/>
+<br />
 <select name="$!struts.htmlEncode($parameters.doubleName)"
     #if ($parameters.disabled)         disabled="disabled"                                         #end
     #if ($parameters.doubleTabindex)   tabindex="$!struts.htmlEncode($parameters.doubleTabindex)" #end
diff --git a/core/src/main/resources/template/archive/simple/empty.vm b/core/src/main/resources/template/archive/simple/empty.vm
index e69de29..19e4e71 100644
--- a/core/src/main/resources/template/archive/simple/empty.vm
+++ b/core/src/main/resources/template/archive/simple/empty.vm
@@ -0,0 +1,20 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
diff --git a/core/src/main/resources/template/archive/simple/file.vm b/core/src/main/resources/template/archive/simple/file.vm
index 2f081de..fa5edaa 100644
--- a/core/src/main/resources/template/archive/simple/file.vm
+++ b/core/src/main/resources/template/archive/simple/file.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 <input type="file"
                                    name="$!struts.htmlEncode($parameters.name)"
 #if ($parameters.size)             size="$!struts.htmlEncode($parameters.size)"            #end
diff --git a/core/src/main/resources/template/archive/simple/form-close.vm b/core/src/main/resources/template/archive/simple/form-close.vm
index 5582354..aca4876 100644
--- a/core/src/main/resources/template/archive/simple/form-close.vm
+++ b/core/src/main/resources/template/archive/simple/form-close.vm
@@ -1 +1,21 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 </form>
diff --git a/core/src/main/resources/template/archive/simple/form.vm b/core/src/main/resources/template/archive/simple/form.vm
index 9d27628..0d934f6 100644
--- a/core/src/main/resources/template/archive/simple/form.vm
+++ b/core/src/main/resources/template/archive/simple/form.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 <form
 #if ($parameters.namespace) namespace="$!parameters.namespace"                  #end
 #if ($parameters.id)        id="$!struts.htmlEncode($parameters.id)"           #end
diff --git a/core/src/main/resources/template/archive/simple/hidden.vm b/core/src/main/resources/template/archive/simple/hidden.vm
index b996520..67b3028 100644
--- a/core/src/main/resources/template/archive/simple/hidden.vm
+++ b/core/src/main/resources/template/archive/simple/hidden.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 <input
     type="hidden"
     #if ($parameters.name)      name="$!struts.htmlEncode($parameters.name)"       #end
diff --git a/core/src/main/resources/template/archive/simple/label.vm b/core/src/main/resources/template/archive/simple/label.vm
index d5fabe5..60a55d6 100644
--- a/core/src/main/resources/template/archive/simple/label.vm
+++ b/core/src/main/resources/template/archive/simple/label.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 <label
 #if ($parameters.id)               id="$!struts.htmlEncode($parameters.id)"                #end
 #if ($parameters.cssClass)         class="$!struts.htmlEncode($parameters.cssClass)"       #end
diff --git a/core/src/main/resources/template/archive/simple/password.vm b/core/src/main/resources/template/archive/simple/password.vm
index 20bbd5c..0b2e785 100644
--- a/core/src/main/resources/template/archive/simple/password.vm
+++ b/core/src/main/resources/template/archive/simple/password.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 <input type="password"
                                    name="$!struts.htmlEncode($parameters.name)"
 #if ($parameters.size)             size="$!struts.htmlEncode($parameters.size)"            #end
diff --git a/core/src/main/resources/template/archive/simple/radiomap.vm b/core/src/main/resources/template/archive/simple/radiomap.vm
index e518f15..4052c21 100644
--- a/core/src/main/resources/template/archive/simple/radiomap.vm
+++ b/core/src/main/resources/template/archive/simple/radiomap.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 #set( $items = $parameters.list )
 #if( $items )
     #foreach( $item in $items )
diff --git a/core/src/main/resources/template/archive/simple/scripting-events.vm b/core/src/main/resources/template/archive/simple/scripting-events.vm
index 6378a64..ff4fed7 100644
--- a/core/src/main/resources/template/archive/simple/scripting-events.vm
+++ b/core/src/main/resources/template/archive/simple/scripting-events.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 #if ($parameters.onclick)     onclick="$!struts.htmlEncode($parameters.onclick)"         #end
 #if ($parameters.ondblclick)  ondblclick="$!struts.htmlEncode($parameters.ondblclick)"   #end
 #if ($parameters.onmousedown) onmousedown="$!struts.htmlEncode($parameters.onmousedown)" #end
diff --git a/core/src/main/resources/template/archive/simple/select.vm b/core/src/main/resources/template/archive/simple/select.vm
index ed73488..f675bcd 100644
--- a/core/src/main/resources/template/archive/simple/select.vm
+++ b/core/src/main/resources/template/archive/simple/select.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 <select name="$!struts.htmlEncode($parameters.name)"
     #if ($parameters.size)             size="$!struts.htmlEncode($parameters.size)"         #end
     #if ($parameters.disabled)         disabled="disabled"                                   #end
diff --git a/core/src/main/resources/template/archive/simple/submit.vm b/core/src/main/resources/template/archive/simple/submit.vm
index 0101b39..b05fb10 100644
--- a/core/src/main/resources/template/archive/simple/submit.vm
+++ b/core/src/main/resources/template/archive/simple/submit.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 <input type="submit"
 #if ($parameters.name)       name="$!struts.htmlEncode($parameters.name)"           #end
 #if ($parameters.nameValue)  value="$!struts.htmlEncode($parameters.nameValue)"     #end
diff --git a/core/src/main/resources/template/archive/simple/table.vm b/core/src/main/resources/template/archive/simple/table.vm
index 2ab7c15..ec30cf1 100644
--- a/core/src/main/resources/template/archive/simple/table.vm
+++ b/core/src/main/resources/template/archive/simple/table.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 #set($webTable=$tag)
 #set($tableModel=$webTable.Model)
 
@@ -31,12 +51,12 @@
                                                                 <td align="bottom">
 
                                                                     #if(($webTable.sortColumn == $curColumn.offset) && ($webTable.sortOrder == 'ASC'))
-                                                                        <img src="#tag( URL "value='/images/sorted_asc.gif'")" border="0" align="bottom"/>                                                                    #else
+                                                                        <img src="#tag( URL "value='/images/sorted_asc.gif'")" border="0" align="bottom" />                                                                    #else
                                                                         <a href="#bodytag( URL )
                                                                                     #param( $webTable.sortColumnLinkName $curColumn.offset)
                                                                                     #param( $webTable.sortOrderLinkName 'ASC')
                                                                                  #end">
-                                                                       <img src="#tag( URL "value='/images/unsorted_asc.gif'")" border="0" align="bottom"/></a>
+                                                                       <img src="#tag( URL "value='/images/unsorted_asc.gif'")" border="0" align="bottom" /></a>
                                                                     #end
                                                                 </td>
 												            </tr>
@@ -44,12 +64,12 @@
 
                                                                 <td align="top">
                                                                     #if(($webTable.sortColumn == $curColumn.offset) && ($webTable.sortOrder == 'DESC'))
-                                                                        <img src="#tag( URL "value='/images/sorted_desc.gif'")" border="0" align="top"/>
+                                                                        <img src="#tag( URL "value='/images/sorted_desc.gif'")" border="0" align="top" />
                                                                     #else
                                                                         <a href="#bodytag( URL )
                                                                                     #param( $webTable.sortColumnLinkName $curColumn.offset)
                                                                                     #param( $webTable.sortOrderLinkName 'DESC')
-                                                                                  #end"><img src="#tag( URL "value='/images/unsorted_desc.gif'")" border="0" align="top"/></a>
+                                                                                  #end"><img src="#tag( URL "value='/images/unsorted_desc.gif'")" border="0" align="top" /></a>
                                                                     #end
                                                                 </td>
                                                             </tr>
diff --git a/core/src/main/resources/template/archive/simple/text.vm b/core/src/main/resources/template/archive/simple/text.vm
index 3a42444..662f202 100644
--- a/core/src/main/resources/template/archive/simple/text.vm
+++ b/core/src/main/resources/template/archive/simple/text.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 <input type="text"
                                    name="$!struts.htmlEncode($parameters.name)"
 #if ($parameters.size)             size="$!struts.htmlEncode($parameters.size)"            #end
diff --git a/core/src/main/resources/template/archive/simple/textarea.vm b/core/src/main/resources/template/archive/simple/textarea.vm
index 4b15042..ebe2cb2 100644
--- a/core/src/main/resources/template/archive/simple/textarea.vm
+++ b/core/src/main/resources/template/archive/simple/textarea.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 <textarea name="$!struts.htmlEncode($parameters.name)"
           cols="$!struts.htmlEncode($parameters.cols)"
           rows="$!struts.htmlEncode($parameters.rows)"
diff --git a/core/src/main/resources/template/archive/simple/token.vm b/core/src/main/resources/template/archive/simple/token.vm
index 6b1a429..1309c23 100644
--- a/core/src/main/resources/template/archive/simple/token.vm
+++ b/core/src/main/resources/template/archive/simple/token.vm
@@ -1,2 +1,22 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 <input type="hidden" name="$!{parameters.tokenNameField}" value="$struts.htmlEncode($!parameters.name)"/>
 <input type="hidden" name="$!parameters.name" value="$struts.htmlEncode($!parameters.token)"/>
diff --git a/core/src/main/resources/template/archive/xhtml/checkbox.vm b/core/src/main/resources/template/archive/xhtml/checkbox.vm
index 090d3b4..07ceb48 100644
--- a/core/src/main/resources/template/archive/xhtml/checkbox.vm
+++ b/core/src/main/resources/template/archive/xhtml/checkbox.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 #if( $fieldErrors.get($parameters.name) )
   #set ($hasFieldErrors = $fieldErrors.get($parameters.name))
   #foreach ($error in $fieldErrors.get($parameters.name))
diff --git a/core/src/main/resources/template/archive/xhtml/checkboxlist.vm b/core/src/main/resources/template/archive/xhtml/checkboxlist.vm
index d97021c..52041f9 100644
--- a/core/src/main/resources/template/archive/xhtml/checkboxlist.vm
+++ b/core/src/main/resources/template/archive/xhtml/checkboxlist.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 #parse( "/$parameters.templateDir/xhtml/controlheader.vm" )
 #parse( "/$parameters.templateDir/simple/checkboxlist.vm" )
 #parse( "/$parameters.templateDir/xhtml/controlfooter.vm" )
diff --git a/core/src/main/resources/template/archive/xhtml/combobox.vm b/core/src/main/resources/template/archive/xhtml/combobox.vm
index a56c5b0..520183a 100644
--- a/core/src/main/resources/template/archive/xhtml/combobox.vm
+++ b/core/src/main/resources/template/archive/xhtml/combobox.vm
@@ -1 +1,21 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 #parse("/$parameters.templateDir/xhtml/controlheader.vm")#parse("/$parameters.templateDir/simple/combobox.vm")#parse("/$parameters.templateDir/xhtml/controlfooter.vm")
diff --git a/core/src/main/resources/template/archive/xhtml/controlfooter.vm b/core/src/main/resources/template/archive/xhtml/controlfooter.vm
index 4af2dd7..97887a0 100644
--- a/core/src/main/resources/template/archive/xhtml/controlfooter.vm
+++ b/core/src/main/resources/template/archive/xhtml/controlfooter.vm
@@ -1,2 +1,22 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 $!{parameters.after}</td>
 </tr>
diff --git a/core/src/main/resources/template/archive/xhtml/controlheader.vm b/core/src/main/resources/template/archive/xhtml/controlheader.vm
index 0e33bb7..a12f681 100644
--- a/core/src/main/resources/template/archive/xhtml/controlheader.vm
+++ b/core/src/main/resources/template/archive/xhtml/controlheader.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 ## Only show message if errors are available.
 ## This will be done if ActionSupport is used.
 #if( $fieldErrors.get($parameters.name) )
diff --git a/core/src/main/resources/template/archive/xhtml/debug.vm b/core/src/main/resources/template/archive/xhtml/debug.vm
index 94ebc5a..9a461e8 100644
--- a/core/src/main/resources/template/archive/xhtml/debug.vm
+++ b/core/src/main/resources/template/archive/xhtml/debug.vm
@@ -1 +1,21 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 #parse("/$parameters.templateDir/xhtml/controlheader.vm")#parse("/$parameters.templateDir/simple/debug.vm")#parse("/$parameters.templateDir/xhtml/controlfooter.vm")
diff --git a/core/src/main/resources/template/archive/xhtml/doubleselect.vm b/core/src/main/resources/template/archive/xhtml/doubleselect.vm
index 231b653..f47d0e0 100644
--- a/core/src/main/resources/template/archive/xhtml/doubleselect.vm
+++ b/core/src/main/resources/template/archive/xhtml/doubleselect.vm
@@ -1 +1,21 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 #parse("/$parameters.templateDir/xhtml/controlheader.vm")#parse("/$parameters.templateDir/simple/doubleselect.vm")#parse("/$parameters.templateDir/xhtml/controlfooter.vm")
diff --git a/core/src/main/resources/template/archive/xhtml/empty.vm b/core/src/main/resources/template/archive/xhtml/empty.vm
index e69de29..19e4e71 100644
--- a/core/src/main/resources/template/archive/xhtml/empty.vm
+++ b/core/src/main/resources/template/archive/xhtml/empty.vm
@@ -0,0 +1,20 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
diff --git a/core/src/main/resources/template/archive/xhtml/file.vm b/core/src/main/resources/template/archive/xhtml/file.vm
index cd6d6e5..a80564a 100644
--- a/core/src/main/resources/template/archive/xhtml/file.vm
+++ b/core/src/main/resources/template/archive/xhtml/file.vm
@@ -1 +1,21 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 #parse("/$parameters.templateDir/xhtml/controlheader.vm")#parse("/$parameters.templateDir/simple/file.vm")#parse("/$parameters.templateDir/xhtml/controlfooter.vm")
diff --git a/core/src/main/resources/template/archive/xhtml/form-close.vm b/core/src/main/resources/template/archive/xhtml/form-close.vm
index bcd446c..1599997 100644
--- a/core/src/main/resources/template/archive/xhtml/form-close.vm
+++ b/core/src/main/resources/template/archive/xhtml/form-close.vm
@@ -1,2 +1,22 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 </table>
 #parse("/$parameters.templateDir/simple/form-close.vm")
diff --git a/core/src/main/resources/template/archive/xhtml/form.vm b/core/src/main/resources/template/archive/xhtml/form.vm
index 1fcfd09..9a7e8be 100644
--- a/core/src/main/resources/template/archive/xhtml/form.vm
+++ b/core/src/main/resources/template/archive/xhtml/form.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 #if ($parameters.validate && $parameters.validate == true)
 <script src="${base}/struts/validationClient.js"></script>
 <script src="${base}/dwr/interface/validator.js"></script>
diff --git a/core/src/main/resources/template/archive/xhtml/hidden.vm b/core/src/main/resources/template/archive/xhtml/hidden.vm
index 4cbaa07..1b32d3d 100644
--- a/core/src/main/resources/template/archive/xhtml/hidden.vm
+++ b/core/src/main/resources/template/archive/xhtml/hidden.vm
@@ -1 +1,21 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 #parse("/$parameters.templateDir/simple/hidden.vm")
diff --git a/core/src/main/resources/template/archive/xhtml/label.vm b/core/src/main/resources/template/archive/xhtml/label.vm
index 3d32ecf..8f6b0bd 100644
--- a/core/src/main/resources/template/archive/xhtml/label.vm
+++ b/core/src/main/resources/template/archive/xhtml/label.vm
@@ -1 +1,21 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 #parse("/$parameters.templateDir/xhtml/controlheader.vm")#parse("/$parameters.templateDir/simple/label.vm")#parse("/$parameters.templateDir/xhtml/controlfooter.vm")
diff --git a/core/src/main/resources/template/archive/xhtml/password.vm b/core/src/main/resources/template/archive/xhtml/password.vm
index 2d81e8d..9c804c9 100644
--- a/core/src/main/resources/template/archive/xhtml/password.vm
+++ b/core/src/main/resources/template/archive/xhtml/password.vm
@@ -1 +1,21 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 #parse("/$parameters.templateDir/xhtml/controlheader.vm")#parse("/$parameters.templateDir/simple/password.vm")#parse("/$parameters.templateDir/xhtml/controlfooter.vm")
diff --git a/core/src/main/resources/template/archive/xhtml/radiomap.vm b/core/src/main/resources/template/archive/xhtml/radiomap.vm
index 0c20eb1..6292db5 100644
--- a/core/src/main/resources/template/archive/xhtml/radiomap.vm
+++ b/core/src/main/resources/template/archive/xhtml/radiomap.vm
@@ -1 +1,21 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 #parse("/$parameters.templateDir/xhtml/controlheader.vm")#parse("/$parameters.templateDir/simple/radiomap.vm")#parse("/$parameters.templateDir/xhtml/controlfooter.vm")
diff --git a/core/src/main/resources/template/archive/xhtml/select.vm b/core/src/main/resources/template/archive/xhtml/select.vm
index fb7d82f..0f3825c 100644
--- a/core/src/main/resources/template/archive/xhtml/select.vm
+++ b/core/src/main/resources/template/archive/xhtml/select.vm
@@ -1 +1,21 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 #parse("/$parameters.templateDir/xhtml/controlheader.vm")#parse("/$parameters.templateDir/simple/select.vm")#parse("/$parameters.templateDir/xhtml/controlfooter.vm")
diff --git a/core/src/main/resources/template/archive/xhtml/submit.vm b/core/src/main/resources/template/archive/xhtml/submit.vm
index d7f7753..29f11ca 100644
--- a/core/src/main/resources/template/archive/xhtml/submit.vm
+++ b/core/src/main/resources/template/archive/xhtml/submit.vm
@@ -1,3 +1,23 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 <tr>
     <td colspan="2"><div #if ($parameters.align) align="$!struts.htmlEncode($parameters.align)" #end
 >#parse("/$parameters.templateDir/simple/submit.vm")</div>#parse( "/$parameters.templateDir/xhtml/controlfooter.vm" )
diff --git a/core/src/main/resources/template/archive/xhtml/table.vm b/core/src/main/resources/template/archive/xhtml/table.vm
index e03c58b..cc819c4 100644
--- a/core/src/main/resources/template/archive/xhtml/table.vm
+++ b/core/src/main/resources/template/archive/xhtml/table.vm
@@ -1 +1,21 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 #parse("/$parameters.templateDir/simple/table.vm")
diff --git a/core/src/main/resources/template/archive/xhtml/text.vm b/core/src/main/resources/template/archive/xhtml/text.vm
index c50c7b4..a3279df 100644
--- a/core/src/main/resources/template/archive/xhtml/text.vm
+++ b/core/src/main/resources/template/archive/xhtml/text.vm
@@ -1 +1,21 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 #parse("/$parameters.templateDir/xhtml/controlheader.vm")#parse("/$parameters.templateDir/simple/text.vm")#parse("/$parameters.templateDir/xhtml/controlfooter.vm")
diff --git a/core/src/main/resources/template/archive/xhtml/textarea.vm b/core/src/main/resources/template/archive/xhtml/textarea.vm
index 060376b..ff22ec4 100644
--- a/core/src/main/resources/template/archive/xhtml/textarea.vm
+++ b/core/src/main/resources/template/archive/xhtml/textarea.vm
@@ -1,2 +1,22 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 #parse("/$parameters.templateDir/xhtml/controlheader.vm")#parse("/$parameters.templateDir/simple/textarea.vm")#parse("/$parameters.templateDir/xhtml/controlfooter.vm")
 
diff --git a/core/src/main/resources/template/archive/xhtml/token.vm b/core/src/main/resources/template/archive/xhtml/token.vm
index e30f12c..6b8e420 100644
--- a/core/src/main/resources/template/archive/xhtml/token.vm
+++ b/core/src/main/resources/template/archive/xhtml/token.vm
@@ -1 +1,21 @@
+#*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *#
 #parse("/$parameters.templateDir/simple/token.vm")
diff --git a/core/src/main/resources/template/css_xhtml/checkbox.ftl b/core/src/main/resources/template/css_xhtml/checkbox.ftl
index 603f9fd..2784eb9 100644
--- a/core/src/main/resources/template/css_xhtml/checkbox.ftl
+++ b/core/src/main/resources/template/css_xhtml/checkbox.ftl
@@ -1,4 +1,26 @@
 <#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<#--
 NOTE: The 'header' stuff that follows is in this one file for checkbox due to the fact
 that for checkboxes we do not want the label field to show up as checkboxes handle their own
 lables
@@ -72,4 +94,11 @@
 >${parameters.label?html}</label><#rt/>
 </#if>
 </#if>
-<#include "/${parameters.templateDir}/css_xhtml/controlfooter.ftl" /><#nt/>
+<#if parameters.label?exists>
+<#if parameters.labelposition?default("top") == 'top'>
+</div> <#rt/>
+<#else>
+</span> <#rt/>
+</#if>
+</#if>
+</div>
diff --git a/core/src/main/resources/template/css_xhtml/checkboxlist.ftl b/core/src/main/resources/template/css_xhtml/checkboxlist.ftl
index 87dddf4..0e8344e 100644
--- a/core/src/main/resources/template/css_xhtml/checkboxlist.ftl
+++ b/core/src/main/resources/template/css_xhtml/checkboxlist.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#--include "/${parameters.templateDir}/css_xhtml/controlheader.ftl" /-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/checkboxlist.ftl" />
diff --git a/core/src/main/resources/template/css_xhtml/combobox.ftl b/core/src/main/resources/template/css_xhtml/combobox.ftl
index e905e05..05f4440 100644
--- a/core/src/main/resources/template/css_xhtml/combobox.ftl
+++ b/core/src/main/resources/template/css_xhtml/combobox.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#--include "/${parameters.templateDir}/css_xhtml/controlheader.ftl" /-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/combobox.ftl" />
diff --git a/core/src/main/resources/template/css_xhtml/control-close.ftl b/core/src/main/resources/template/css_xhtml/control-close.ftl
index e69de29..b85734e 100644
--- a/core/src/main/resources/template/css_xhtml/control-close.ftl
+++ b/core/src/main/resources/template/css_xhtml/control-close.ftl
@@ -0,0 +1,22 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
diff --git a/core/src/main/resources/template/css_xhtml/control.ftl b/core/src/main/resources/template/css_xhtml/control.ftl
index e69de29..b85734e 100644
--- a/core/src/main/resources/template/css_xhtml/control.ftl
+++ b/core/src/main/resources/template/css_xhtml/control.ftl
@@ -0,0 +1,22 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
diff --git a/core/src/main/resources/template/css_xhtml/controlfooter.ftl b/core/src/main/resources/template/css_xhtml/controlfooter.ftl
index 4dc84ac..eba6df9 100644
--- a/core/src/main/resources/template/css_xhtml/controlfooter.ftl
+++ b/core/src/main/resources/template/css_xhtml/controlfooter.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 ${parameters.after?if_exists}<#t/>
     <#lt/>
 <#if parameters.labelposition?default("top") == 'top'>
diff --git a/core/src/main/resources/template/css_xhtml/controlheader-core.ftl b/core/src/main/resources/template/css_xhtml/controlheader-core.ftl
index ee3c8bb..1cfc6c4 100644
--- a/core/src/main/resources/template/css_xhtml/controlheader-core.ftl
+++ b/core/src/main/resources/template/css_xhtml/controlheader-core.ftl
@@ -1,4 +1,26 @@
 <#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<#--
 	Only show message if errors are available.
 	This will be done if ActionSupport is used.
 -->
@@ -43,7 +65,7 @@
 <#include "/${parameters.templateDir}/xhtml/tooltip.ftl" />
 	</label><#t/>
 <#if parameters.labelposition?default("top") == 'top'>
-</div> <br/><#rt/>
+</div> <br /><#rt/>
 <#else>
 </span> <#rt/>
 </#if>
diff --git a/core/src/main/resources/template/css_xhtml/controlheader.ftl b/core/src/main/resources/template/css_xhtml/controlheader.ftl
index d564d49..7cc9907 100644
--- a/core/src/main/resources/template/css_xhtml/controlheader.ftl
+++ b/core/src/main/resources/template/css_xhtml/controlheader.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/css_xhtml/controlheader-core.ftl">
 <#if parameters.labelposition?default("top") == 'top'>
 <div <#rt/>
diff --git a/core/src/main/resources/template/css_xhtml/datetimepicker.ftl b/core/src/main/resources/template/css_xhtml/datetimepicker.ftl
index 7cb38ef..280345e 100644
--- a/core/src/main/resources/template/css_xhtml/datetimepicker.ftl
+++ b/core/src/main/resources/template/css_xhtml/datetimepicker.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/datetimepicker.ftl" />
 <#include "/${parameters.templateDir}/css_xhtml/controlfooter.ftl" />
diff --git a/core/src/main/resources/template/css_xhtml/debug.ftl b/core/src/main/resources/template/css_xhtml/debug.ftl
index 99bc91a..20e284b 100644
--- a/core/src/main/resources/template/css_xhtml/debug.ftl
+++ b/core/src/main/resources/template/css_xhtml/debug.ftl
@@ -1 +1,23 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/simple/debug.ftl" />
diff --git a/core/src/main/resources/template/css_xhtml/doubleselect.ftl b/core/src/main/resources/template/css_xhtml/doubleselect.ftl
index 51f2053..08ce50a 100644
--- a/core/src/main/resources/template/css_xhtml/doubleselect.ftl
+++ b/core/src/main/resources/template/css_xhtml/doubleselect.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#--include "/${parameters.templateDir}/css_xhtml/controlheader.ftl" /-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/doubleselect.ftl" />
diff --git a/core/src/main/resources/template/css_xhtml/dropdowndatetimepicker.ftl b/core/src/main/resources/template/css_xhtml/dropdowndatetimepicker.ftl
deleted file mode 100644
index c117d98..0000000
--- a/core/src/main/resources/template/css_xhtml/dropdowndatetimepicker.ftl
+++ /dev/null
@@ -1 +0,0 @@
-<#include "/${parameters.templateDir}/simple/dropdowndatetimepicker.ftl" />
\ No newline at end of file
diff --git a/core/src/main/resources/template/css_xhtml/file.ftl b/core/src/main/resources/template/css_xhtml/file.ftl
index 3397474..2acfbe0 100644
--- a/core/src/main/resources/template/css_xhtml/file.ftl
+++ b/core/src/main/resources/template/css_xhtml/file.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#--include "/${parameters.templateDir}/css_xhtml/controlheader.ftl" /-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/file.ftl" />
diff --git a/core/src/main/resources/template/css_xhtml/form-close.ftl b/core/src/main/resources/template/css_xhtml/form-close.ftl
index 7876b5c..1bfd6d7 100644
--- a/core/src/main/resources/template/css_xhtml/form-close.ftl
+++ b/core/src/main/resources/template/css_xhtml/form-close.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/css_xhtml/control-close.ftl" />
 <#include "/${parameters.templateDir}/simple/form-close.ftl" />
 <#include "/${parameters.templateDir}/xhtml/form-close-validate.ftl" />
diff --git a/core/src/main/resources/template/css_xhtml/form-validate.ftl b/core/src/main/resources/template/css_xhtml/form-validate.ftl
index 27e1e7d..b833fa5 100644
--- a/core/src/main/resources/template/css_xhtml/form-validate.ftl
+++ b/core/src/main/resources/template/css_xhtml/form-validate.ftl
@@ -1,5 +1,27 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#if parameters.validate?default(false) == true>
-<script src="${base}/struts/css_xhtml/validation.js" type="text/javascript"></script>
+<script type="text/javascript" src="${base}/struts/css_xhtml/validation.js"></script>
     <#if parameters.onsubmit?exists>
         ${tag.addParameter('onsubmit', "${parameters.onsubmit}; return validateForm_${parameters.id}();")}
     <#else>
diff --git a/core/src/main/resources/template/css_xhtml/form.ftl b/core/src/main/resources/template/css_xhtml/form.ftl
index d07d86f..48d574d 100644
--- a/core/src/main/resources/template/css_xhtml/form.ftl
+++ b/core/src/main/resources/template/css_xhtml/form.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/css_xhtml/form-validate.ftl" />
 <#include "/${parameters.templateDir}/simple/form.ftl" />
 <#include "/${parameters.templateDir}/css_xhtml/control.ftl">
diff --git a/core/src/main/resources/template/css_xhtml/head.ftl b/core/src/main/resources/template/css_xhtml/head.ftl
index 9043cf6..1ed522e 100644
--- a/core/src/main/resources/template/css_xhtml/head.ftl
+++ b/core/src/main/resources/template/css_xhtml/head.ftl
@@ -1,2 +1,24 @@
-<link rel="stylesheet" href="<@s.url value='/struts/css_xhtml/styles.css' includeParams='none' encode='false' />" type="text/css"/>
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<link rel="stylesheet" href="<@s.url value='/struts/css_xhtml/styles.css' includeParams='none' encode='false' />" type="text/css" />
 <#include "/${parameters.templateDir}/simple/head.ftl" />
diff --git a/core/src/main/resources/template/css_xhtml/inputtransferselect.ftl b/core/src/main/resources/template/css_xhtml/inputtransferselect.ftl
index 53b08e7..0ecc1b1 100644
--- a/core/src/main/resources/template/css_xhtml/inputtransferselect.ftl
+++ b/core/src/main/resources/template/css_xhtml/inputtransferselect.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#--include "/${parameters.templateDir}/css_xhtml/controlheader.ftl" /-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/inputtransferselect.ftl" />
diff --git a/core/src/main/resources/template/css_xhtml/label.ftl b/core/src/main/resources/template/css_xhtml/label.ftl
index 9b08a66..14fc4fc 100644
--- a/core/src/main/resources/template/css_xhtml/label.ftl
+++ b/core/src/main/resources/template/css_xhtml/label.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#--include "/${parameters.templateDir}/css_xhtml/controlheader.ftl" /-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <label<#rt/>
diff --git a/core/src/main/resources/template/css_xhtml/optiontransferselect.ftl b/core/src/main/resources/template/css_xhtml/optiontransferselect.ftl
index 6330f01..8399e41 100644
--- a/core/src/main/resources/template/css_xhtml/optiontransferselect.ftl
+++ b/core/src/main/resources/template/css_xhtml/optiontransferselect.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#--include "/${parameters.templateDir}/css_xhtml/controlheader.ftl" /-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/optiontransferselect.ftl" />
diff --git a/core/src/main/resources/template/css_xhtml/password.ftl b/core/src/main/resources/template/css_xhtml/password.ftl
index 5ef91d3..63a142c 100644
--- a/core/src/main/resources/template/css_xhtml/password.ftl
+++ b/core/src/main/resources/template/css_xhtml/password.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#--include "/${parameters.templateDir}/css_xhtml/controlheader.ftl" /-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/password.ftl" />
diff --git a/core/src/main/resources/template/css_xhtml/radiomap.ftl b/core/src/main/resources/template/css_xhtml/radiomap.ftl
index 6ee4092..c19009a 100644
--- a/core/src/main/resources/template/css_xhtml/radiomap.ftl
+++ b/core/src/main/resources/template/css_xhtml/radiomap.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#--include "/${parameters.templateDir}/css_xhtml/controlheader.ftl" /-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/radiomap.ftl" />
diff --git a/core/src/main/resources/template/css_xhtml/reset.ftl b/core/src/main/resources/template/css_xhtml/reset.ftl
index 4c853b7..28d8b81 100644
--- a/core/src/main/resources/template/css_xhtml/reset.ftl
+++ b/core/src/main/resources/template/css_xhtml/reset.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#if parameters.labelposition?default("top") == 'top'>
 <div <#rt/>
 <#else>
diff --git a/core/src/main/resources/template/css_xhtml/select.ftl b/core/src/main/resources/template/css_xhtml/select.ftl
index 17c7fcc..97a8238 100644
--- a/core/src/main/resources/template/css_xhtml/select.ftl
+++ b/core/src/main/resources/template/css_xhtml/select.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#--include "/${parameters.templateDir}/css_xhtml/controlheader.ftl" /-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/select.ftl" />
diff --git a/core/src/main/resources/template/css_xhtml/styles.css b/core/src/main/resources/template/css_xhtml/styles.css
index 168514d..df9a8ad 100644
--- a/core/src/main/resources/template/css_xhtml/styles.css
+++ b/core/src/main/resources/template/css_xhtml/styles.css
@@ -1,3 +1,24 @@
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
 .wwFormTable {}
 .label {
     font-style:italic;
diff --git a/core/src/main/resources/template/css_xhtml/submit.ftl b/core/src/main/resources/template/css_xhtml/submit.ftl
index 0a67bf7..1080b8e 100644
--- a/core/src/main/resources/template/css_xhtml/submit.ftl
+++ b/core/src/main/resources/template/css_xhtml/submit.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#if parameters.labelposition?default("top") == 'top'>
 <div <#rt/>
 <#else>
diff --git a/core/src/main/resources/template/css_xhtml/text.ftl b/core/src/main/resources/template/css_xhtml/text.ftl
index e163af3..7515a51 100644
--- a/core/src/main/resources/template/css_xhtml/text.ftl
+++ b/core/src/main/resources/template/css_xhtml/text.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#--include "/${parameters.templateDir}/css_xhtml/controlheader.ftl" / -->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/text.ftl" />
diff --git a/core/src/main/resources/template/css_xhtml/textarea.ftl b/core/src/main/resources/template/css_xhtml/textarea.ftl
index fc84928..dfc7128 100644
--- a/core/src/main/resources/template/css_xhtml/textarea.ftl
+++ b/core/src/main/resources/template/css_xhtml/textarea.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#--include "/${parameters.templateDir}/css_xhtml/controlheader.ftl" /-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/textarea.ftl" />
diff --git a/core/src/main/resources/template/css_xhtml/theme.properties b/core/src/main/resources/template/css_xhtml/theme.properties
index 0a9fb9e..48b2f03 100644
--- a/core/src/main/resources/template/css_xhtml/theme.properties
+++ b/core/src/main/resources/template/css_xhtml/theme.properties
@@ -1 +1,20 @@
+#  $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+# 
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you 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.
+
 parent = xhtml
diff --git a/core/src/main/resources/template/css_xhtml/updownselect.ftl b/core/src/main/resources/template/css_xhtml/updownselect.ftl
index 1b080c8..6a4f5c8 100644
--- a/core/src/main/resources/template/css_xhtml/updownselect.ftl
+++ b/core/src/main/resources/template/css_xhtml/updownselect.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#--include "/${parameters.templateDir}/css_xhtml/controlheader.ftl" /-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/updownselect.ftl" />
diff --git a/core/src/main/resources/template/css_xhtml/validation.js b/core/src/main/resources/template/css_xhtml/validation.js
index d1c99ba..dafc8b0 100644
--- a/core/src/main/resources/template/css_xhtml/validation.js
+++ b/core/src/main/resources/template/css_xhtml/validation.js
@@ -1,3 +1,24 @@
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
 function clearErrorMessages(form) {
 	// clear out any rows with an "errorFor" attribute
 	var divs = form.getElementsByTagName("div");
diff --git a/core/src/main/resources/template/simple/a-close.ftl b/core/src/main/resources/template/simple/a-close.ftl
index 937be08..672497f 100644
--- a/core/src/main/resources/template/simple/a-close.ftl
+++ b/core/src/main/resources/template/simple/a-close.ftl
@@ -1 +1,23 @@
-</a>
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+</a><#rt/>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/a.ftl b/core/src/main/resources/template/simple/a.ftl
index af653c2..baf2662 100644
--- a/core/src/main/resources/template/simple/a.ftl
+++ b/core/src/main/resources/template/simple/a.ftl
@@ -1,7 +1,32 @@
-<a
-	<#if parameters.id?if_exists != "">id="${parameters.id?html}"</#if>
-	<#if parameters.href?if_exists != "">href="${parameters.href}"</#if>
-
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<a<#rt/>
+<#if parameters.id?if_exists != "">
+ id="${parameters.id?html}"<#rt/>
+</#if>
+<#if parameters.href?if_exists != "">
+ href="${parameters.href}"<#rt/>
+</#if>
 <#if parameters.tabindex?exists>
  tabindex="${parameters.tabindex?html}"<#rt/>
 </#if>
@@ -16,4 +41,4 @@
 </#if>
 <#include "/${parameters.templateDir}/simple/scripting-events.ftl" />
 <#include "/${parameters.templateDir}/simple/common-attributes.ftl" />
->
+><#rt/>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/actionerror.ftl b/core/src/main/resources/template/simple/actionerror.ftl
index 74c3136..4548c8c 100644
--- a/core/src/main/resources/template/simple/actionerror.ftl
+++ b/core/src/main/resources/template/simple/actionerror.ftl
@@ -1,7 +1,38 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#if (actionErrors?exists && actionErrors?size > 0)>
 	<ul>
 	<#list actionErrors as error>
-		<li><span class="errorMessage">${error}</span></li>
+		<li><span<#rt/>
+<#if parameters.cssClass?exists>
+ class="${parameters.cssClass?html}"<#rt/>
+<#else>
+ class="errorMessage"<#rt/>
+</#if>
+<#if parameters.cssStyle?exists>
+ style="${parameters.cssStyle?html}"<#rt/>
+</#if>
+>${error}</span></li>
 	</#list>
 	</ul>
-</#if>
+</#if>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/actionmessage.ftl b/core/src/main/resources/template/simple/actionmessage.ftl
index 384b755..bed2c51 100644
--- a/core/src/main/resources/template/simple/actionmessage.ftl
+++ b/core/src/main/resources/template/simple/actionmessage.ftl
@@ -1,7 +1,38 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#if (actionMessages?exists && actionMessages?size > 0)>
 	<ul>
 		<#list actionMessages as message>
-			<li><span class="actionMessage">${message}</span></li>
+			<li><span<#rt/>
+<#if parameters.cssClass?exists>
+ class="${parameters.cssClass?html}"<#rt/>
+<#else>
+ class="actionMessage"<#rt/>
+</#if>
+<#if parameters.cssStyle?exists>
+ style="${parameters.cssStyle?html}"<#rt/>
+</#if>
+>${message}</span></li>
 		</#list>
 	</ul>
-</#if>
+</#if>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/autocompleter.ftl b/core/src/main/resources/template/simple/autocompleter.ftl
index 48d32ee..319f2ed 100644
--- a/core/src/main/resources/template/simple/autocompleter.ftl
+++ b/core/src/main/resources/template/simple/autocompleter.ftl
@@ -1,3 +1,25 @@
+<#--

+/*

+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $

+ *

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you 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.

+ */

+-->

 <select dojoType="struts:ComboBox"<#rt/>

 <#if parameters.id?if_exists != "">

  id="${parameters.id?html}"<#rt/>

@@ -35,6 +57,9 @@
 <#if parameters.name?if_exists != "">

  name="${parameters.name?html}"<#rt/>

 </#if>

+<#if parameters.keyName?if_exists != "">

+ keyName="${parameters.keyName?html}"<#rt/>

+</#if>

 <#if parameters.get("size")?exists>

  size="${parameters.get("size")?html}"<#rt/>

 </#if>

@@ -65,6 +90,15 @@
 <#if parameters.notifyTopics?if_exists != "">

  notifyTopics="${parameters.notifyTopics?html}"<#rt/>

 </#if>

+<#if parameters.iconPath?if_exists != "">

+ buttonSrc="<@s.url value='${parameters.iconPath}' encode="false" includeParams='none'/>"<#rt/>

+</#if>

+<#if parameters.templateCssPath?if_exists != "">

+ templateCssPath="<@s.url value='${parameters.templateCssPath}' encode="false" includeParams='none'/>"

+</#if>

+<#if parameters.searchLimit?if_exists != "">

+ searchLimit="${parameters.searchLimit?html}"

+</#if>

 <#include "/${parameters.templateDir}/simple/scripting-events.ftl" />

 >

 <#if parameters.list?exists>

@@ -94,6 +128,4 @@
     </option><#lt/>

     </@s.iterator>

 </#if>

-</select>

-

-

+</select>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/checkbox.ftl b/core/src/main/resources/template/simple/checkbox.ftl
index d8e4a0f..1b5a9ca 100644
--- a/core/src/main/resources/template/simple/checkbox.ftl
+++ b/core/src/main/resources/template/simple/checkbox.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <input type="checkbox" name="${parameters.name?html}" value="${parameters.fieldValue?html}"<#rt/>
 <#if parameters.nameValue?exists && parameters.nameValue>
  checked="checked"<#rt/>
@@ -26,4 +48,4 @@
 <#include "/${parameters.templateDir}/simple/scripting-events.ftl" />
 <#include "/${parameters.templateDir}/simple/common-attributes.ftl" />
 />
-<input type="hidden" name="__checkbox_${parameters.name?html}" value="${parameters.fieldValue?html}"/>
\ No newline at end of file
+<input type="hidden" name="__checkbox_${parameters.name?html}" value="${parameters.fieldValue?html}" />
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/checkboxlist.ftl b/core/src/main/resources/template/simple/checkboxlist.ftl
index c198941..c96c3f5 100644
--- a/core/src/main/resources/template/simple/checkboxlist.ftl
+++ b/core/src/main/resources/template/simple/checkboxlist.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#assign itemCount = 0/>
 <#if parameters.list?exists>
     <@s.iterator value="parameters.list">
@@ -8,7 +30,7 @@
             <#assign itemKey = stack.findValue('top')/>
         </#if>
         <#if parameters.listValue?exists>
-            <#assign itemValue = stack.findString(parameters.listValue)/>
+            <#assign itemValue = stack.findString(parameters.listValue)?default("")/>
         <#else>
             <#assign itemValue = stack.findString('top')/>
         </#if>
diff --git a/core/src/main/resources/template/simple/combobox.ftl b/core/src/main/resources/template/simple/combobox.ftl
index 4bd15a6..1e11447 100644
--- a/core/src/main/resources/template/simple/combobox.ftl
+++ b/core/src/main/resources/template/simple/combobox.ftl
@@ -1,5 +1,27 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <script type="text/javascript">
-	function autoPopulate_${parameters.name?html}(targetElement) {
+	function autoPopulate_${parameters.escapedId?html}(targetElement) {
 		<#if parameters.headerKey?exists && parameters.headerValue?exists>
 		if (targetElement.options[targetElement.selectedIndex].value == '${parameters.headerKey?html}') {
 			return;
@@ -14,9 +36,9 @@
 	}
 </script>
 <#include "/${parameters.templateDir}/simple/text.ftl" />
-<br/>
+<br />
 <#if parameters.list?exists>
-<select onChange="autoPopulate_${parameters.name?html}(this);"<#rt/>
+<select onChange="autoPopulate_${parameters.escapedId?html}(this);"<#rt/>
     <#if parameters.disabled?default(false)>
  disabled="disabled"<#rt/>
     </#if>
@@ -47,4 +69,4 @@
     </option><#lt/>
     </@s.iterator>
 </select>
-</#if>
+</#if>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/common-attributes.ftl b/core/src/main/resources/template/simple/common-attributes.ftl
index 1a04d8a..1740687 100644
--- a/core/src/main/resources/template/simple/common-attributes.ftl
+++ b/core/src/main/resources/template/simple/common-attributes.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#if parameters.accesskey?exists>
- accesskey="${parameters.accesskey?html}" 
+ accesskey="${parameters.accesskey?html}"<#rt/>
 </#if>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/controlfooter.ftl b/core/src/main/resources/template/simple/controlfooter.ftl
index e69de29..b85734e 100644
--- a/core/src/main/resources/template/simple/controlfooter.ftl
+++ b/core/src/main/resources/template/simple/controlfooter.ftl
@@ -0,0 +1,22 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
diff --git a/core/src/main/resources/template/simple/controlheader.ftl b/core/src/main/resources/template/simple/controlheader.ftl
index e69de29..b85734e 100644
--- a/core/src/main/resources/template/simple/controlheader.ftl
+++ b/core/src/main/resources/template/simple/controlheader.ftl
@@ -0,0 +1,22 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
diff --git a/core/src/main/resources/template/simple/datetimepicker.ftl b/core/src/main/resources/template/simple/datetimepicker.ftl
index 92a31b7..08dda26 100644
--- a/core/src/main/resources/template/simple/datetimepicker.ftl
+++ b/core/src/main/resources/template/simple/datetimepicker.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <script type="text/javascript">
     dojo.require("dojo.widget.DatePicker");
 </script>
@@ -5,7 +27,7 @@
    <#if parameters.type?if_exists == "date">
      dojoType="dropdowndatepicker"<#rt/>
    <#else>
-     dojoType="dropdowntimepicker"<#rt/>
+     dojoType="struts:StrutsTimePicker"<#rt/>
   </#if>
   <#if parameters.id?if_exists != "">
     id="${parameters.id?html}"<#rt/>
@@ -51,7 +73,7 @@
     style="${parameters.cssStyle?html}"<#rt/>
   </#if>
   <#if parameters.iconPath?if_exists != "">
-    iconURL="${parameters.iconPath}"<#rt/>
+    iconURL="<@s.url value='${parameters.iconPath}' encode="false" includeParams='none'/>"<#rt/>
   </#if>
   <#if parameters.formatLength?if_exists != "">
     formatLength="${parameters.formatLength?html}"<#rt/>
@@ -65,6 +87,9 @@
   <#if parameters.toggleDuration?exists>
     containerToggleDuration="${parameters.toggleDuration?string?html}"<#rt/>
   </#if>
+  <#if parameters.templateCssPath?exists>
+	templateCssPath="<@s.url value='${parameters.templateCssPath}' encode="false" includeParams='none'/>"
+  </#if>
   saveFormat="rfc"<#rt/>
   <#include "/${parameters.templateDir}/simple/scripting-events.ftl" />
-></div>
+></div>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/debug.ftl b/core/src/main/resources/template/simple/debug.ftl
index 8ce409d..92c6fa4 100644
--- a/core/src/main/resources/template/simple/debug.ftl
+++ b/core/src/main/resources/template/simple/debug.ftl
@@ -1,4 +1,26 @@
-<script language="JavaScript" type="text/javascript">
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<script type="text/javascript">
 <!--
     function toggleDebug(debugId) {
         var debugDiv = document.getElementById(debugId);
@@ -13,12 +35,12 @@
     }
 -->
 </script>
-<p/>
+<p />
 
 <a href="#" onclick="toggleDebug('<#if parameters.id?if_exists != "">${parameters.id?html}<#else>debug</#if>');return false;">[Debug]</a>
 <div style="display:none" id="<#if parameters.id?if_exists != "">${parameters.id?html}<#else>debug</#if>">
 <h2>Struts ValueStack Debug</h2>
-<p/>
+<p />
 
 <h3>Value Stack Contents</h3>
 <table border="0" cellpadding="2" cellspacing="0" width="400" bgcolor="#DDDDDD">
@@ -31,7 +53,7 @@
 
         <#assign renderRow=false>
         <#list stackObject.value.keySet() as propertyName>
-            <#if renderRow==true><tr><#else> <#assign renderRow=false> </#if>
+            <#if renderRow==true></tr><tr><#else> <#assign renderRow=false> </#if>
             <td bgcolor="<#if (index % 2) == 0>#BBBBBB<#else>#CCCCCC</#if>">${propertyName}</td>
             <td bgcolor="<#if (index % 2) == 0>#BBBBBB<#else>#CCCCCC</#if>"><#if stackObject.value.get(propertyName)?exists>${stackObject.value.get(propertyName).toString()}<#else>null</#if></td>
     </tr>
@@ -39,7 +61,7 @@
         </#list>
     </#list>
 </table>
-<p/>
+<p />
 
 <h3>Stack Context</h3>
 <i>These items are available using the #key notation</i>
@@ -56,4 +78,4 @@
         <#assign index= index + 1>
     </#list>
 </table>
-</div>
+</div>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/div-close.ftl b/core/src/main/resources/template/simple/div-close.ftl
index 04f5b84..0221108 100644
--- a/core/src/main/resources/template/simple/div-close.ftl
+++ b/core/src/main/resources/template/simple/div-close.ftl
@@ -1 +1,23 @@
-</div>
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+</div>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/div.ftl b/core/src/main/resources/template/simple/div.ftl
index caaba59..07552da 100644
--- a/core/src/main/resources/template/simple/div.ftl
+++ b/core/src/main/resources/template/simple/div.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <div
     <#if parameters.id?exists>               id="${parameters.id?html}"         </#if>
     <#if parameters.name?exists>             name="${parameters.name?html}"         </#if>
@@ -7,4 +29,4 @@
         </#if>
 <#include "/${parameters.templateDir}/simple/scripting-events.ftl" />
 <#include "/${parameters.templateDir}/simple/common-attributes.ftl" />
->
+>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/dojoRequire.js b/core/src/main/resources/template/simple/dojoRequire.js
index 2409ca9..4a8043e 100644
--- a/core/src/main/resources/template/simple/dojoRequire.js
+++ b/core/src/main/resources/template/simple/dojoRequire.js
@@ -1,2 +1,22 @@
-dojo.hostenv.writeIncludes(); // not needed, but allows the Venkman debugger to work with the includes
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
 
+dojo.hostenv.writeIncludes(); // not needed, but allows the Venkman debugger to work with the includes
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/doubleselect.ftl b/core/src/main/resources/template/simple/doubleselect.ftl
index 92dbb74..b814ad8 100644
--- a/core/src/main/resources/template/simple/doubleselect.ftl
+++ b/core/src/main/resources/template/simple/doubleselect.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/simple/select.ftl" />
 <#assign startCount = 0/>
 <#if parameters.headerKey?exists && parameters.headerValue?exists>
@@ -7,7 +29,7 @@
     <#assign startCount = startCount + 1/>
 </#if>
 
-<br/>
+<br />
 <select<#rt/>
  name="${parameters.doubleName?default("")?html}"<#rt/>
 <#if parameters.disabled?default(false)>
@@ -19,11 +41,11 @@
 <#if parameters.doubleId?exists>
  id="${parameters.doubleId?html}"<#rt/>
 </#if>
-<#if parameters.cssClass?exists>
- class="${parameters.cssClass?html}"<#rt/>
+<#if parameters.doubleCss?exists>
+ class="${parameters.doubleCss?html}"<#rt/>
 </#if>
-<#if parameters.cssStyle?exists>
- style="${parameters.cssStyle?html}"<#rt/>
+<#if parameters.doubleStyle?exists>
+ style="${parameters.doubleStyle?html}"<#rt/>
 </#if>
 <#if parameters.title?exists>
  title="${parameters.title?html}"<#rt/>
@@ -73,7 +95,7 @@
     <#assign itemCount = itemCount + 1/>
 </@s.iterator>
 
-    var ${parameters.id}Temp = document.${parameters.formName}.${parameters.doubleName};
+    var ${parameters.id}Temp = document.${parameters.formName}.${parameters.doubleId};
 <#assign itemCount = startCount/>
 <#assign redirectTo = 0/>
 <@s.iterator value="parameters.list">
@@ -108,4 +130,4 @@
            	${parameters.id}Temp.options[0].selected = true;
         }
     }
-</script>
+</script>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/empty.ftl b/core/src/main/resources/template/simple/empty.ftl
index e69de29..b85734e 100644
--- a/core/src/main/resources/template/simple/empty.ftl
+++ b/core/src/main/resources/template/simple/empty.ftl
@@ -0,0 +1,22 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
diff --git a/core/src/main/resources/template/simple/fielderror.ftl b/core/src/main/resources/template/simple/fielderror.ftl
index 9b24c6f..8974cba 100644
--- a/core/src/main/resources/template/simple/fielderror.ftl
+++ b/core/src/main/resources/template/simple/fielderror.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#if fieldErrors?exists><#t/>
 <#assign eKeys = fieldErrors.keySet()><#t/>
 <#assign eKeysSize = eKeys.size()><#t/>
@@ -15,7 +37,16 @@
 				<#assign doneStartUlTag=true><#t/>
 			</#if><#t/>
 			<#list eValue as eEachValue><#t/>
-				<li><span class="errorMessage">${eEachValue}</span></li>
+				<li><span<#rt/>
+<#if parameters.cssClass?exists>
+ class="${parameters.cssClass?html}"<#rt/>
+<#else>
+ class="errorMessage"<#rt/>
+</#if>
+<#if parameters.cssStyle?exists>
+ style="${parameters.cssStyle?html}"<#rt/>
+</#if>
+>${eEachValue}</span></li>
 			</#list><#t/>			
 		</#if><#t/>
 		</#list><#t/>
@@ -24,16 +55,25 @@
 		</ul>
 		<#assign doneEndUlTag=true><#t/>
 	</#if><#t/>
-<#else><#t/>	
+<#else><#t/>
 	<#if (eKeysSize > 0)><#t/>
 		<ul>
 			<#list eKeys as eKey><#t/>
 				<#assign eValue = fieldErrors[eKey]><#t/>
 				<#list eValue as eEachValue><#t/>
-					<li><span class="errorMessage">${eEachValue}</span></li>
+					<li><span<#rt/>
+<#if parameters.cssClass?exists>
+ class="${parameters.cssClass?html}"<#rt/>
+<#else>
+ class="errorMessage"<#rt/>
+</#if>
+<#if parameters.cssStyle?exists>
+ style="${parameters.cssStyle?html}"<#rt/>
+</#if>
+>${eEachValue}</span></li>
 				</#list><#t/>
 			</#list><#t/>
 		</ul>
 	</#if><#t/>
 </#if><#t/>
-</#if><#t/>
+</#if><#t/>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/file.ftl b/core/src/main/resources/template/simple/file.ftl
index 02cf84c..a9af634 100644
--- a/core/src/main/resources/template/simple/file.ftl
+++ b/core/src/main/resources/template/simple/file.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <input type="file"<#rt/>
  name="${parameters.name?default("")?html}"<#rt/>
 <#if parameters.get("size")?exists>
@@ -29,4 +51,4 @@
 </#if>
 <#include "/${parameters.templateDir}/simple/scripting-events.ftl" />
 <#include "/${parameters.templateDir}/simple/common-attributes.ftl" />
-/>
+/>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/form-close.ftl b/core/src/main/resources/template/simple/form-close.ftl
index 1de379d..22c106c 100644
--- a/core/src/main/resources/template/simple/form-close.ftl
+++ b/core/src/main/resources/template/simple/form-close.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 </form>
 
 <#if (parameters.customOnsubmitEnabled?if_exists)>
@@ -86,5 +108,5 @@
 --><#t/>
 <#if (parameters.hasTooltip?default(false))><#t/>
 	<#lt/><!-- javascript that is needed for tooltips -->
-	<#lt/><script language="JavaScript" type="text/javascript">dojo.require("dojo.widget.html.Tooltip");dojo.require("dojo.fx.html");</script>
-</#if><#t/>
+	<#lt/><script type="text/javascript">dojo.require("dojo.widget.Tooltip");dojo.require("dojo.fx.html");</script>
+</#if><#t/>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/form.ftl b/core/src/main/resources/template/simple/form.ftl
index 1182817..fe21975 100644
--- a/core/src/main/resources/template/simple/form.ftl
+++ b/core/src/main/resources/template/simple/form.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#if (parameters.validate?default(false) == false)><#rt/>
 	<#if parameters.onsubmit?exists><#rt/>
 		${tag.addParameter('onsubmit', "${parameters.onsubmit}; return true;") }
@@ -27,7 +49,7 @@
 <#if parameters.method?exists>
  method="${parameters.method?html}"<#rt/>
 <#else>
- method="POST"<#rt/>
+ method="post"<#rt/>
 </#if>
 <#if parameters.enctype?exists>
  enctype="${parameters.enctype?html}"<#rt/>
@@ -44,4 +66,4 @@
 <#if parameters.acceptcharset?exists>
  accept-charset="${parameters.acceptcharset?html}"<#rt/>
 </#if>
->
+>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/head.ftl b/core/src/main/resources/template/simple/head.ftl
index 91c05dc..c12c4e1 100644
--- a/core/src/main/resources/template/simple/head.ftl
+++ b/core/src/main/resources/template/simple/head.ftl
@@ -1,4 +1,26 @@
-<script language="JavaScript" type="text/javascript">
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<script type="text/javascript">
     // Dojo configuration
     djConfig = {
         baseRelativePath: "<@s.url includeParams='none' value='/struts/dojo' includeParams="none" encode='false'/>",
@@ -7,7 +29,7 @@
         debugAtAllCosts: true // not needed, but allows the Venkman debugger to work with the includes
     };
 </script>
-<script language="JavaScript" type="text/javascript"
+<script type="text/javascript"
         src="<@s.url includeParams='none' value='/struts/dojo/dojo.js' includeParams="none" encode='false'/>"></script>
-<script language="JavaScript" type="text/javascript"
-        src="<@s.url includeParams='none' value='/struts/simple/dojoRequire.js' includeParams="none" encode='false'/>"></script>
+<script type="text/javascript"
+        src="<@s.url includeParams='none' value='/struts/simple/dojoRequire.js' includeParams="none" encode='false'/>"></script>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/hidden.ftl b/core/src/main/resources/template/simple/hidden.ftl
index 2755cb3..b9f9b0d 100644
--- a/core/src/main/resources/template/simple/hidden.ftl
+++ b/core/src/main/resources/template/simple/hidden.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <input type="hidden"<#rt/>
  name="${parameters.name?default("")?html}"<#rt/>
 <#if parameters.nameValue?exists>
@@ -12,4 +34,4 @@
 <#if parameters.cssStyle?exists>
  style="${parameters.cssStyle?html}"<#rt/>
 </#if>
-/>
+/>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/inputtransferselect.ftl b/core/src/main/resources/template/simple/inputtransferselect.ftl
index 497b388..02054ab 100644
--- a/core/src/main/resources/template/simple/inputtransferselect.ftl
+++ b/core/src/main/resources/template/simple/inputtransferselect.ftl
@@ -1,12 +1,34 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#if !stack.findValue("#inputtransferselect_js_included")?exists><#t/>
-	<script language="javascript" src="<@s.url value="/struts/inputtransferselect.js" encode='false' includeParams='none'/>"></script>
+	<script type="text/javascript" src="<@s.url value="/struts/inputtransferselect.js" encode='false' includeParams='none'/>"></script>
 	<#assign temporaryVariable = stack.setValue("#inputtransferselect_js_included", "true") /><#t/>
 </#if><#t/>
 <table border="0">
 <tr>
 <td>
 <#if parameters.leftTitle?exists><#t/>
-	<label for="leftTitle">${parameters.leftTitle}</label><br/>
+	<label for="leftTitle">${parameters.leftTitle}</label><br />
 </#if><#t/>
 
 
@@ -48,7 +70,7 @@
 		<#if parameters.buttonCssStyle?exists>
 		 style="${parameters.buttonCssStyle?html}"
 		</#if><#t/>
-		 value="${addLabel}" onclick="addOption(document.getElementById('${parameters.id?html}_input'), document.getElementById('${parameters.id?html}'))" /><br/><br/>
+		 value="${addLabel}" onclick="addOption(document.getElementById('${parameters.id?html}_input'), document.getElementById('${parameters.id?html}'))" /><br /><br />
 	<#t/>
 	<#assign removeLabel=parameters.removeLabel?default("<-")?html /><#t/>
 	<input type="button"
@@ -58,7 +80,7 @@
 		<#if parameters.buttonCssStyle?exists>
 		 style="${parameters.buttonCssStyle?html}"
 		</#if><#t/>
-		 value="${removeLabel}" onclick="removeOptions(document.getElementById('${parameters.id?html}'))" /><br/><br/>
+		 value="${removeLabel}" onclick="removeOptions(document.getElementById('${parameters.id?html}'))" /><br /><br />
 	<#t/>
 	<#assign removeAllLabel=parameters.removeAllLabel?default("<<--")?html /><#t/>
 	<input type="button"
@@ -68,11 +90,11 @@
 		<#if parameters.buttonCssStyle?exists>
 		 style="${parameters.buttonCssStyle?html}"
 		</#if><#t/>
-		 value="${removeAllLabel}" onclick="removeAllOptions(document.getElementById('${parameters.id?html}'))" /><br/><br/>
+		 value="${removeAllLabel}" onclick="removeAllOptions(document.getElementById('${parameters.id?html}'))" /><br /><br />
 </td>
 <td>
 <#if parameters.rightTitle?exists><#t/>
-	<label for="rightTitle">${parameters.rightTitle}</label><br/>
+	<label for="rightTitle">${parameters.rightTitle}</label><br />
 </#if><#t/>
 <#include "/${parameters.templateDir}/simple/select.ftl" />
 <#if parameters.allowUpDown?default(true)>
@@ -99,5 +121,4 @@
 </#if>
 </td>
 </tr>
-</table>
-
+</table>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/label.ftl b/core/src/main/resources/template/simple/label.ftl
index 8917632..b40a05a 100644
--- a/core/src/main/resources/template/simple/label.ftl
+++ b/core/src/main/resources/template/simple/label.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <label<#rt/>
 <#if parameters.id?exists>
  id="${parameters.id?html}"<#rt/>
@@ -19,4 +41,4 @@
 <#if parameters.nameValue?exists>
 <@s.property value="parameters.nameValue"/><#t/>
 </#if>
-</label>
+</label>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/optgroup.ftl b/core/src/main/resources/template/simple/optgroup.ftl
index dac0855..9dc1e66 100644
--- a/core/src/main/resources/template/simple/optgroup.ftl
+++ b/core/src/main/resources/template/simple/optgroup.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#if parameters.optGroupInternalListUiBeanList?exists>
 <#assign optGroupInternalListUiBeans=parameters.optGroupInternalListUiBeanList />
 <#list optGroupInternalListUiBeans as optGroupInternalListUiBean>
@@ -14,8 +36,9 @@
 <#assign trash=stack.push(optGroupBean) />
 	<#assign tmpKey=stack.findValue(optGroupInternalListUiBean.parameters.listKey) />
 	<#assign tmpValue=stack.findValue(optGroupInternalListUiBean.parameters.listValue) />
-	<option value="${tmpKey}"
-	<#if tag.contains(parameters.nameValue, tmpKey) == true>
+	<#assign tmpKeyStr = tmpKey.toString() />
+	<option value="${tmpKeyStr}"
+	<#if tag.contains(parameters.nameValue, tmpKeyStr) == true>
 	selected="selected"
 	</#if>
 	>${tmpValue}
@@ -24,4 +47,4 @@
 </#list>
 </optgroup>
 </#list>
-</#if>
+</#if>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/optiontransferselect.ftl b/core/src/main/resources/template/simple/optiontransferselect.ftl
index 37ee61c..56dc574 100644
--- a/core/src/main/resources/template/simple/optiontransferselect.ftl
+++ b/core/src/main/resources/template/simple/optiontransferselect.ftl
@@ -1,31 +1,45 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#if !stack.findValue("#optiontransferselect_js_included")?exists><#t/>
-	<script language="javascript" src="<@s.url value="/struts/optiontransferselect.js" encode='false' includeParams='none'/>"></script>
+	<script type="text/javascript" src="<@s.url value="/struts/optiontransferselect.js" encode='false' includeParams='none'/>"></script>
 	<#assign temporaryVariable = stack.setValue("#optiontransferselect_js_included", "true") /><#t/>
 </#if><#t/>
 <table border="0">
 <tr>
 <td>
 <#if parameters.leftTitle?exists><#t/>
-	<label for="leftTitle">${parameters.leftTitle}</label><br/>
+	<label for="leftTitle">${parameters.leftTitle}</label><br />
 </#if><#t/>
 <#include "/${parameters.templateDir}/simple/select.ftl" /> 
 <#if parameters.allowUpDownOnLeft?default(true)>
 <input type="button" 
-<#if parameters.headerKey?exists>
-	onclick="moveOptionDown(document.getElementById('${parameters.id}'), 'key', '${parameters.headerKey}');"
-<#else>
-	onclick="moveOptionDown(document.getElementById('${parameters.id}'), 'key', '');"
-</#if>
+	onclick="moveOptionDown(document.getElementById('${parameters.id}'), 'key', <#if parameters.headerKey?exists>'${parameters.headerKey}'<#else>''</#if>);<#if parameters.upDownOnLeftOnclick?has_content>${parameters.upDownOnLeftOnclick};</#if>"
 <#if parameters.leftDownLabel?exists>
 	value="${parameters.leftDownLabel?html}"
 </#if>
 />
 <input type="button"
-<#if parameters.headerKey?exists>
-	onclick="moveOptionUp(document.getElementById('${parameters.id}'), 'key', '${parameters.headerKey}');"
-<#else>
-	onclick="moveOptionUp(document.getElementById('${parameters.id}'), 'key', '');"
-</#if>	
+	onclick="moveOptionUp(document.getElementById('${parameters.id}'), 'key', <#if parameters.headerKey?exists>'${parameters.headerKey}'<#else>''</#if>);<#if parameters.upDownOnLeftOnclick?has_content>${parameters.upDownOnLeftOnclick};</#if>"
 <#if parameters.leftUpLabel?exists>
 	value="${parameters.leftUpLabel?html}"
 </#if>
@@ -44,7 +58,7 @@
 			<#if parameters.buttonCssStyle?exists><#t/>
 			 style="${parameters.buttonCssStyle?html}"
 			</#if><#t/>
-			 value="${addToLeftLabel}" onclick="moveSelectedOptions(document.getElementById('${parameters.doubleId?html}'), document.getElementById('${parameters.id?html}'), false, '${parameters.doubleHeaderKey}', '')" /><br/><br/>
+			 value="${addToLeftLabel}" onclick="moveSelectedOptions(document.getElementById('${parameters.doubleId?html}'), document.getElementById('${parameters.id?html}'), false, '${parameters.doubleHeaderKey}', '');<#if parameters.addToLeftOnclick?has_content>${parameters.addToLeftOnclick};</#if>" /><br /><br />
 		<#else><#t/>
 			<input type="button" 
 			<#if parameters.buttonCssClass?exists><#t/>
@@ -53,7 +67,7 @@
 			<#if parameters.buttonCssStyle?exists><#t/>
 			 style="${parameters.buttonCssStyle?html}"
 			</#if><#t/>
-			 value="${addToLeftLabel}" onclick="moveSelectedOptions(document.getElementById('${parameters.doubleId?html}'), document.getElementById('${parameters.id?html}'), false, '')" /><br/><br/>
+			 value="${addToLeftLabel}" onclick="moveSelectedOptions(document.getElementById('${parameters.doubleId?html}'), document.getElementById('${parameters.id?html}'), false, '');<#if parameters.addToLeftOnclick?has_content>${parameters.addToLeftOnclick};</#if>" /><br /><br />
 		</#if><#t/>
 	</#if><#t/>
 	<#if parameters.allowAddToRight?default(true)><#t/>
@@ -66,7 +80,7 @@
 			<#if parameters.buttonCssStyle?exists><#t/>
 			 style="${parameters.buttonCssStyle?html}"
 			</#if><#t/>
-			 value="${addToRightLabel}" onclick="moveSelectedOptions(document.getElementById('${parameters.id?html}'), document.getElementById('${parameters.doubleId?html}'), false, '${parameters.headerKey}', '')" /><br/><br/>
+			 value="${addToRightLabel}" onclick="moveSelectedOptions(document.getElementById('${parameters.id?html}'), document.getElementById('${parameters.doubleId?html}'), false, '${parameters.headerKey}', '');<#if parameters.addToRightOnclick?has_content>${parameters.addToRightOnclick};</#if>" /><br /><br />
 		<#else><#t/>
 			<input type="button"
 			<#if parameters.buttonCssClass?exists><#t/>
@@ -75,7 +89,7 @@
 			<#if parameters.buttonCssStyle?exists>
 			 style="${parameters.buttonCssStyle?html}"
 			</#if><#t/>
-			 value="${addToRightLabel}" onclick="moveSelectedOptions(document.getElementById('${parameters.id?html}'), document.getElementById('${parameters.doubleId?html}'), false, '')" /><br/><br/>
+			 value="${addToRightLabel}" onclick="moveSelectedOptions(document.getElementById('${parameters.id?html}'), document.getElementById('${parameters.doubleId?html}'), false, '');<#if parameters.addToRightOnclick?has_content>${parameters.addToRightOnclick};</#if>" /><br /><br />
 		</#if><#t/>
 	</#if><#t/>
 	<#if parameters.allowAddAllToLeft?default(true)><#t/>
@@ -88,7 +102,7 @@
 			<#if parameters.buttonCssStyle?exists><#t/>
 			 style="${parameters.buttonCssStyle}"
 			</#if><#t/>
-			 value="${addAllToLeftLabel}" onclick="moveAllOptions(document.getElementById('${parameters.doubleId?html}'), document.getElementById('${parameters.id?html}'), false, '${parameters.doubleHeaderKey}', '')" /><br/><br/>
+			 value="${addAllToLeftLabel}" onclick="moveAllOptions(document.getElementById('${parameters.doubleId?html}'), document.getElementById('${parameters.id?html}'), false, '${parameters.doubleHeaderKey}', '');<#if parameters.addAllToLeftOnclick?has_content>${parameters.addAllToLeftOnclick};</#if>" /><br /><br />
 		<#else><#t/>
 			<input type="button" 
 			<#if parameters.buttonCssClass?exists><#t/>
@@ -97,7 +111,7 @@
 			<#if parameters.buttonCssStyle?exists><#t/>
 			 style="${parameters.buttonCssStyle?html}"
 			</#if><#t/>
-			 value="${addAllToLeftLabel}" onclick="moveAllOptions(document.getElementById('${parameters.doubleId?html}'), document.getElementById('${parameters.id?html}'), false, '')" /><br/><br/>
+			 value="${addAllToLeftLabel}" onclick="moveAllOptions(document.getElementById('${parameters.doubleId?html}'), document.getElementById('${parameters.id?html}'), false, '');<#if parameters.addAllToLeftOnclick?has_content>${parameters.addAllToLeftOnclick};</#if>" /><br /><br />
 		</#if><#t/>
 	</#if><#t/>
 	<#if parameters.allowAddAllToRight?default(true)><#t/>
@@ -110,7 +124,7 @@
 			<#if parameters.buttonCssStyle?exists><#t/>
 			 style="${parameters.buttonCssStyle?html}"
 			</#if><#t/>
-			 value="${addAllToRightLabel}" onclick="moveAllOptions(document.getElementById('${parameters.id?html}'), document.getElementById('${parameters.doubleId?html}'), false, '${parameters.headerKey}', '')" /><br/><br/>	
+			 value="${addAllToRightLabel}" onclick="moveAllOptions(document.getElementById('${parameters.id?html}'), document.getElementById('${parameters.doubleId?html}'), false, '${parameters.headerKey}', '');<#if parameters.addAllToRightOnclick?has_content>${parameters.addAllToRightOnclick};</#if>" /><br /><br />	
 		<#else><#t/>
 			<input type="button" 
 			<#if parameters.buttonCssClass?exists><#t/>
@@ -119,7 +133,7 @@
 			<#if parameters.buttonCssStyle?exists><#t/>
 			 style="${parameters.buttonCssStyle?html}"
 			</#if><#t/>
-			 value="${addAllToRightLabel}" onclick="moveAllOptions(document.getElementById('${parameters.id?html}'), document.getElementById('${parameters.doubleId?html}'), false, '')" /><br/><br/>	
+			 value="${addAllToRightLabel}" onclick="moveAllOptions(document.getElementById('${parameters.id?html}'), document.getElementById('${parameters.doubleId?html}'), false, '');<#if parameters.addAllToRightOnclick?has_content>${parameters.addAllToRightOnclick};</#if>" /><br /><br />	
 		</#if><#t/>
 	</#if><#t/>
 	<#if parameters.allowSelectAll?default(true)><#t/>
@@ -132,7 +146,7 @@
 			<#if parameters.buttonCssStyle?exists><#t/>
 			 style="${parameters.buttonCssStyle?html}"
 			</#if><#t/>
-			 value="${selectAllLabel}" onclick="selectAllOptionsExceptSome(document.getElementById('${parameters.id?html}'), 'key', '${parameters.headerKey}');selectAllOptionsExceptSome(document.getElementById('${parameters.doubleId?html}'), 'key', '${parameters.doubleHeaderKey}');" /><br/><br/>
+			 value="${selectAllLabel}" onclick="selectAllOptionsExceptSome(document.getElementById('${parameters.id?html}'), 'key', '${parameters.headerKey}');selectAllOptionsExceptSome(document.getElementById('${parameters.doubleId?html}'), 'key', '${parameters.doubleHeaderKey}');<#if parameters.selectAllOnclick?has_content>${parameters.selectAllOnclick};</#if>" /><br /><br />
 		<#elseif parameters.headerKey?exists><#t/>
 			<input type="button" 
 			<#if parameters.buttonCssClass?exists><#t/>
@@ -141,7 +155,7 @@
 			<#if parameters.buttonCssStyle?exists><#t/>
 			 style="${parameters.buttonCssStyle?html}"
 			</#if><#t/>
-			 value="${selectAllLabel}" onclick="selectAllOptionsExceptSome(document.getElementById('${parameters.id?html}'), 'key', '${parameters.headerKey}');selectAllOptions(document.getElementById('${parameters.doubleId?html}'));" /><br/><br/>
+			 value="${selectAllLabel}" onclick="selectAllOptionsExceptSome(document.getElementById('${parameters.id?html}'), 'key', '${parameters.headerKey}');selectAllOptions(document.getElementById('${parameters.doubleId?html}'));<#if parameters.selectAllOnclick?has_content>${parameters.selectAllOnclick};</#if>" /><br /><br />
 		<#elseif parameters.doubleHeaderKey?exists><#t/>
 			<input type="button" 
 			<#if parameters.buttonCssClass?exists><#t/>
@@ -150,7 +164,7 @@
 			<#if parameters.buttonCssStyle?exists><#t/>
 			 style="${parameters.buttonCssStyle?html}"
 			</#if><#t/>
-			 value="${selectAllLabel}" onclick="selectAllOptions(document.getElementById('${parameters.id?html}'));selectAllOptionsExceptSome(document.getElementById('${parameters.doubleId?html}'), 'key', '${parameters.doubleHeaderKey}');" /><br/><br/>
+			 value="${selectAllLabel}" onclick="selectAllOptions(document.getElementById('${parameters.id?html}'));selectAllOptionsExceptSome(document.getElementById('${parameters.doubleId?html}'), 'key', '${parameters.doubleHeaderKey}');<#if parameters.selectAllOnclick?has_content>${parameters.selectAllOnclick};</#if>" /><br /><br />
 		<#else><#t/>
 			<input type="button" 
 			<#if parameters.buttonCssClass?exists><#t/>
@@ -159,13 +173,13 @@
 			<#if parameters.buttonCssStyle?exists><#t/>
 			 style="${parameters.buttonCssStyle?html}"
 			</#if><#t/>
-			 value="${selectAllLabel}" onclick="selectAllOptions(document.getElementById('${parameters.id?html}'));selectAllOptions(document.getElementById('${parameters.doubleId?html}'));" /><br/><br/>
+			 value="${selectAllLabel}" onclick="selectAllOptions(document.getElementById('${parameters.id?html}'));selectAllOptions(document.getElementById('${parameters.doubleId?html}'));<#if parameters.selectAllOnclick?has_content>${parameters.selectAllOnclick};</#if>" /><br /><br />
 		</#if><#t/>
 	</#if><#t/>
 </td>
 <td>
 <#if parameters.rightTitle?exists><#t/>
-	<label for="rightTitle">${parameters.rightTitle}</label><br/>
+	<label for="rightTitle">${parameters.rightTitle}</label><br />
 </#if><#t/>
 <select 
 	name="${parameters.doubleName?default("")?html}"
@@ -184,11 +198,11 @@
 	<#if parameters.doubleId?exists><#t/>
 	id="${parameters.doubleId?html}"
 	</#if><#t/>
-	<#if parameters.doubleCssClass?exists><#t/>
-	class="${parameters.doubleCssClass?html}"
+	<#if parameters.doubleCss?exists><#t/>
+	class="${parameters.doubleCss?html}"
 	</#if><#t/>
-	<#if parameters.doubleCssStyle?exists><#t/>
-	style="${parameters.doubleCssStyle?html}"
+	<#if parameters.doubleStyle?exists><#t/>
+	style="${parameters.doubleStyle?html}"
 	</#if><#t/>
     <#if parameters.doubleOnclick?exists><#t/>
     onclick="${parameters.doubleOnclick?html}"
@@ -260,21 +274,13 @@
 </select>
 <#if parameters.allowUpDownOnRight?default(true)>
 <input type="button" 
-<#if parameters.doubleHeaderKey?exists>
-	onclick="moveOptionDown(document.getElementById('${parameters.doubleId}'), 'key', '${parameters.doubleHeaderKey}');"
-<#else>
-	onclick="moveOptionDown(document.getElementById('${parameters.doubleId}'), 'key', '');"
-</#if>
+	onclick="moveOptionDown(document.getElementById('${parameters.doubleId}'), 'key', <#if parameters.doubleHeaderKey?exists>'${parameters.doubleHeaderKey}'<#else>''</#if>);<#if parameters.upDownOnRightOnclick?has_content>${parameters.upDownOnRightOnclick};</#if>"
 <#if parameters.rightDownLabel?exists>
 	value="${parameters.rightDownLabel?html}"
 </#if>
 />
 <input type="button" 
-<#if parameters.doubleHeaderKey?exists>
-	onclick="moveOptionUp(document.getElementById('${parameters.doubleId}'), 'key', '${parameters.doubleHeaderKey}');"
-<#else>
-	onclick="moveOptionUp(document.getElementById('${parameters.doubleId}'), 'key', '');"
-</#if>
+	onclick="moveOptionUp(document.getElementById('${parameters.doubleId}'), 'key', <#if parameters.doubleHeaderKey?exists>'${parameters.doubleHeaderKey}'<#else>''</#if>);<#if parameters.upDownOnRightOnclick?has_content>${parameters.upDownOnRightOnclick};</#if>"
 <#if parameters.rightUpLabel?exists>
 	value="${parameters.rightUpLabel?html}"
 </#if>
@@ -282,5 +288,4 @@
 </#if>
 </td>
 </tr>
-</table>
-
+</table>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/password.ftl b/core/src/main/resources/template/simple/password.ftl
index c054702..58eb328 100644
--- a/core/src/main/resources/template/simple/password.ftl
+++ b/core/src/main/resources/template/simple/password.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <input type="password"<#rt/>
  name="${parameters.name?default("")?html}"<#rt/>
 <#if parameters.get("size")?exists>
@@ -32,4 +54,4 @@
 </#if>
 <#include "/${parameters.templateDir}/simple/scripting-events.ftl" />
 <#include "/${parameters.templateDir}/simple/common-attributes.ftl" />
-/>
+/>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/radiomap.ftl b/core/src/main/resources/template/simple/radiomap.ftl
index a2fb445..bcd7048 100644
--- a/core/src/main/resources/template/simple/radiomap.ftl
+++ b/core/src/main/resources/template/simple/radiomap.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <@s.iterator value="parameters.list">
     <#if parameters.listKey?exists>
         <#assign itemKey = stack.findValue(parameters.listKey)/>
@@ -10,8 +32,12 @@
     <#else>
         <#assign itemValue = stack.findString('top')/>
     </#if>
-<input type="radio" name="${parameters.name?html}" id="${parameters.id?html}${itemKeyStr?html}"<#rt/>
-<#if tag.contains(parameters.nameValue, itemKey)>
+<input type="radio"<#rt/>
+<#if parameters.name?exists>
+ name="${parameters.name?html}"<#rt/>
+</#if>
+ id="${parameters.id?html}${itemKeyStr?html}"<#rt/>
+<#if tag.contains(parameters.nameValue?default(''), itemKeyStr)>
  checked="checked"<#rt/>
 </#if>
 <#if itemKey?exists>
@@ -38,4 +64,4 @@
 <label for="${parameters.id?html}${itemKeyStr?html}"><#rt/>
     ${itemValue}<#t/>
 </label>
-</@s.iterator>
+</@s.iterator>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/reset.ftl b/core/src/main/resources/template/simple/reset.ftl
index cfa034d..83da118 100644
--- a/core/src/main/resources/template/simple/reset.ftl
+++ b/core/src/main/resources/template/simple/reset.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#if parameters.type?exists && parameters.type=="button">
 <button type="reset"<#rt/>
 <#if parameters.name?exists>
@@ -35,4 +57,4 @@
 <#include "/${parameters.templateDir}/simple/scripting-events.ftl" />
 <#include "/${parameters.templateDir}/simple/common-attributes.ftl" />
 />
-</#if>
+</#if>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/scripting-events.ftl b/core/src/main/resources/template/simple/scripting-events.ftl
index b483740..8469063 100644
--- a/core/src/main/resources/template/simple/scripting-events.ftl
+++ b/core/src/main/resources/template/simple/scripting-events.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#if parameters.onclick?exists>
  onclick="${parameters.onclick?html}"<#rt/>
 </#if>
@@ -39,4 +61,4 @@
 </#if>
 <#if parameters.onchange?exists>
  onchange="${parameters.onchange?html}"<#rt/>
-</#if>
+</#if>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/select.ftl b/core/src/main/resources/template/simple/select.ftl
index 75e916d..cf99d9f 100644
--- a/core/src/main/resources/template/simple/select.ftl
+++ b/core/src/main/resources/template/simple/select.ftl
@@ -1,3 +1,26 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<#setting number_format="#.#####">
 <select<#rt/>
  name="${parameters.name?default("")?html}"<#rt/>
 <#if parameters.get("size")?exists>
@@ -39,13 +62,16 @@
 </#if>
 <@s.iterator value="parameters.list">
         <#if parameters.listKey?exists>
-            <#if stack.findString(parameters.listKey)?exists>
-              <#assign itemKey = stack.findString(parameters.listKey).toString()/>
+            <#if stack.findValue(parameters.listKey)?exists>
+              <#assign itemKey = stack.findValue(parameters.listKey)/>
+              <#assign itemKeyStr = itemKey.toString()/>
             <#else>
               <#assign itemKey = ''/>
+              <#assign itemKeyStr = ''/>
             </#if>
         <#else>
-            <#assign itemKey = stack.findValue('top').toString()/>
+            <#assign itemKey = stack.findValue('top')/>
+            <#assign itemKeyStr = itemKey.toString()/>
         </#if>
         <#if parameters.listValue?exists>
             <#if stack.findString(parameters.listValue)?exists>
@@ -56,7 +82,7 @@
         <#else>
             <#assign itemValue = stack.findString('top')/>
         </#if>
-    <option value="${itemKey?html}"<#rt/>
+    <option value="${itemKeyStr?html}"<#rt/>
         <#if tag.contains(parameters.nameValue, itemKey) == true>
  selected="selected"<#rt/>
         </#if>
@@ -65,4 +91,4 @@
 
 <#include "/${parameters.templateDir}/simple/optgroup.ftl" />
 
-</select>
+</select>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/submit.ftl b/core/src/main/resources/template/simple/submit.ftl
index ff7e607..9222e58 100644
--- a/core/src/main/resources/template/simple/submit.ftl
+++ b/core/src/main/resources/template/simple/submit.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#if parameters.type?exists && parameters.type=="button">
 <button type="submit"<#rt/>
 <#if parameters.id?exists>
@@ -9,12 +31,18 @@
 <#if parameters.nameValue?exists>
  value="<@s.property value="parameters.nameValue"/>"<#rt/>
 </#if>
+<#if parameters.disabled?default(false)>
+ disabled="disabled"<#rt/>
+</#if>
 <#if parameters.cssClass?exists>
  class="${parameters.cssClass?html}"<#rt/>
 </#if>
 <#if parameters.cssStyle?exists>
  style="${parameters.cssStyle?html}"<#rt/>
 </#if>
+<#if parameters.tabindex?exists>
+ tabindex="${parameters.tabindex?html}"<#rt/>
+</#if>
 <#include "/${parameters.templateDir}/simple/scripting-events.ftl"/>
 <#include "/${parameters.templateDir}/simple/common-attributes.ftl" />
 ><#if parameters.body?length gt 0><@s.property value="parameters.body"/><#elseif parameters.label?exists><@s.property value="parameters.label"/><#rt/></#if></button>
@@ -40,6 +68,9 @@
 <#if parameters.nameValue?exists>
  value="<@s.property value="parameters.nameValue"/>"<#rt/>
 </#if>
+<#if parameters.disabled?default(false)>
+ disabled="disabled"<#rt/>
+</#if>
 <#if parameters.cssClass?exists>
  class="${parameters.cssClass?html}"<#rt/>
 </#if>
@@ -49,6 +80,9 @@
 <#if parameters.title?exists>
  title="${parameters.title?html}"<#rt/>
 </#if>
+<#if parameters.tabindex?exists>
+ tabindex="${parameters.tabindex?html}"<#rt/>
+</#if>
 <#include "/${parameters.templateDir}/simple/scripting-events.ftl" />
 <#include "/${parameters.templateDir}/simple/common-attributes.ftl" />
 />
diff --git a/core/src/main/resources/template/simple/tab-close.ftl b/core/src/main/resources/template/simple/tab-close.ftl
index 7f5eaa3..c91c5e0 100644
--- a/core/src/main/resources/template/simple/tab-close.ftl
+++ b/core/src/main/resources/template/simple/tab-close.ftl
@@ -1 +1,23 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 </div>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/tab.ftl b/core/src/main/resources/template/simple/tab.ftl
index 3846684..4e7df18 100644
--- a/core/src/main/resources/template/simple/tab.ftl
+++ b/core/src/main/resources/template/simple/tab.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <div id="${parameters.id}" dojoType="ContentPane"
   <#if parameters.title?if_exists != "">
     label="${parameters.title?html}"<#rt/>
diff --git a/core/src/main/resources/template/simple/tabbedpanel-close.ftl b/core/src/main/resources/template/simple/tabbedpanel-close.ftl
index 04f5b84..c91c5e0 100644
--- a/core/src/main/resources/template/simple/tabbedpanel-close.ftl
+++ b/core/src/main/resources/template/simple/tabbedpanel-close.ftl
@@ -1 +1,23 @@
-</div>
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+</div>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/tabbedpanel.ftl b/core/src/main/resources/template/simple/tabbedpanel.ftl
index cf4e730..b957870 100644
--- a/core/src/main/resources/template/simple/tabbedpanel.ftl
+++ b/core/src/main/resources/template/simple/tabbedpanel.ftl
@@ -1,7 +1,50 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <script type="text/javascript">
   dojo.require("dojo.widget.TabContainer");
   dojo.require("dojo.widget.LinkPane");
   dojo.require("dojo.widget.ContentPane");
+  <#if parameters.useSelectedTabCookie?exists && parameters.useSelectedTabCookie=="true">
+  dojo.require("dojo.io.cookie");
+  dojo.addOnLoad (
+        function() {
+            var tabContainer = dojo.widget.byId("${parameters.escapedId?html}");
+
+            <#if !(parameters.selectedTab?if_exists != "")>
+            var selectedTab = dojo.io.cookie.getCookie("Struts2TabbedPanel_selectedTab_${parameters.escapedId?html}");
+            if (selectedTab) {
+                tabContainer.selectChild(selectedTab, tabContainer.correspondingPageButton);
+            }
+
+            </#if>
+            dojo.event.connect(tabContainer, "selectChild",
+                    function (evt) {
+                        dojo.io.cookie.setCookie("Struts2TabbedPanel_selectedTab_${parameters.escapedId?html}", evt.widgetId, 1, null, null, null);
+                    }
+                )
+            }
+        );
+  </#if>
 </script>
 
 <div dojoType="TabContainer"
@@ -26,4 +69,7 @@
   <#if parameters.doLayout?exists>
     doLayout="${parameters.doLayout?string?html}"<#rt/>
   </#if>
->
+  <#if parameters.templateCssPath?exists>
+	templateCssPath="<@s.url value='${parameters.templateCssPath}' encode="false" includeParams='none'/>"
+  </#if>
+>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/table.ftl b/core/src/main/resources/template/simple/table.ftl
index 4ca2382..4a0c340 100644
--- a/core/src/main/resources/template/simple/table.ftl
+++ b/core/src/main/resources/template/simple/table.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#assign webTable = tag/>
 <#assign tableModel = webTable.model/>
 
@@ -20,7 +42,7 @@
                                         <tr>
                                             <td align="bottom">
 <#if false>
-                                                 <img src="images/sorted_asc.gif" border="0" align="bottom"/>
+                                                 <img src="images/sorted_asc.gif" border="0" align="bottom" />
 <#else>
                                                 <a href="<@s.url><@s.param name="${webTable.sortColumnLinkName}" value="${curColumn.offset}"/><@s.param name="${webTable.sortOrderLinkName}" value="ASC"/></@s.url>"><img src="images/unsorted_asc.gif" border="0" align="bottom"/></a>
 </#if>
@@ -51,4 +73,4 @@
         </td>
     </tr>
 </table>
-</#if>
+</#if>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/text.ftl b/core/src/main/resources/template/simple/text.ftl
index b9762af..d3f64cd 100644
--- a/core/src/main/resources/template/simple/text.ftl
+++ b/core/src/main/resources/template/simple/text.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <input type="text"<#rt/>
  name="${parameters.name?default("")?html}"<#rt/>
 <#if parameters.get("size")?exists>
@@ -32,4 +54,4 @@
 </#if>
 <#include "/${parameters.templateDir}/simple/scripting-events.ftl" />
 <#include "/${parameters.templateDir}/simple/common-attributes.ftl" />
-/>
+/>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/textarea.ftl b/core/src/main/resources/template/simple/textarea.ftl
index 6f87e9b..77c1ce2 100644
--- a/core/src/main/resources/template/simple/textarea.ftl
+++ b/core/src/main/resources/template/simple/textarea.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <textarea<#rt/>
  name="${parameters.name?default("")?html}"<#rt/>
  cols="${parameters.cols?default("")?html}"<#rt/>
@@ -32,4 +54,4 @@
 <#if parameters.nameValue?exists>
 <@s.property value="parameters.nameValue"/><#t/>
 </#if>
-</textarea>
+</textarea>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/token.ftl b/core/src/main/resources/template/simple/token.ftl
index d7db076..835dcb6 100644
--- a/core/src/main/resources/template/simple/token.ftl
+++ b/core/src/main/resources/template/simple/token.ftl
@@ -1,2 +1,24 @@
-<input type="hidden" name="${parameters.tokenNameField?default("")}" value="${parameters.name?default("")?html}"/>
-<input type="hidden" name="${parameters.name?default("")}" value="${parameters.token?default("")?html}"/>
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<input type="hidden" name="${parameters.tokenNameField?default("")}" value="${parameters.name?default("")?html}" />
+<input type="hidden" name="${parameters.name?default("")}" value="${parameters.token?default("")?html}" />
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/updownselect.ftl b/core/src/main/resources/template/simple/updownselect.ftl
index c52a401..e9010b0 100644
--- a/core/src/main/resources/template/simple/updownselect.ftl
+++ b/core/src/main/resources/template/simple/updownselect.ftl
@@ -1,5 +1,27 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#if !stack.findValue("#optiontransferselect_js_included")?exists><#t/>
-	<script language="javascript" src="<@s.url value="/struts/optiontransferselect.js" encode='false' includeParams='none'/>"></script>
+	<script type="text/javascript" src="<@s.url value="/struts/optiontransferselect.js" encode='false' includeParams='none'/>"></script>
 	<#assign temporaryVariable = stack.setValue("#optiontransferselect_js_included", "true") /><#t/>
 </#if><#t/>
 <table>
@@ -32,4 +54,4 @@
 	</#if><#t/>
 </#if><#t/>
 </td></tr>
-</table>
+</table>
\ No newline at end of file
diff --git a/api/src/main/java/org/apache/struts2/spi/Interceptor.java b/core/src/main/resources/template/xhtml/autocompleter.ftl
similarity index 69%
copy from api/src/main/java/org/apache/struts2/spi/Interceptor.java
copy to core/src/main/resources/template/xhtml/autocompleter.ftl
index 33cd847..7ffb3b9 100644
--- a/api/src/main/java/org/apache/struts2/spi/Interceptor.java
+++ b/core/src/main/resources/template/xhtml/autocompleter.ftl
@@ -1,5 +1,6 @@
+<#--
 /*
- * $Id$
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,19 +19,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.spi;
-
-/**
- * Intercepts an action request.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface Interceptor {
-
-    /**
-     * Intercepts an action request.
-     *
-     * @param requestContext current request context
-     */
-    String intercept(RequestContext requestContext) throws Exception;
-}
+-->
+<#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
+<#include "/${parameters.templateDir}/${themeProperties.parent}/autocompleter.ftl" />
+<#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" />
diff --git a/core/src/main/resources/template/xhtml/checkbox.ftl b/core/src/main/resources/template/xhtml/checkbox.ftl
index 795ffac..6e223b0 100644
--- a/core/src/main/resources/template/xhtml/checkbox.ftl
+++ b/core/src/main/resources/template/xhtml/checkbox.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#assign hasFieldErrors = fieldErrors?exists && fieldErrors[parameters.name]?exists/>
 <#if hasFieldErrors>
 <#list fieldErrors[parameters.name] as error>
@@ -66,7 +88,7 @@
 </#if>
 :<#t/>
 <#if parameters.tooltip?exists>
-    <img src='<@s.url value="/struts/tooltip/tooltip.gif" includeParams="none" encode="false"/>' alt="${parameters.tooltip}" title="${parameters.tooltip}" onmouseover="return escape('${parameters.tooltip?js_string}');" />
+    <#include "/${parameters.templateDir}/xhtml/tooltip.ftl" />
 </#if>
 </label><#t/>
 </#if>
@@ -76,7 +98,7 @@
         <span class="required">*</span><#t/>
     </#if>
     <#if parameters.tooltip?exists>
-        <img src='<@s.url value="/struts/tooltip/tooltip.gif" includeParams="none" encode="false"/>' alt="${parameters.tooltip}" title="${parameters.tooltip}" onmouseover="return escape('${parameters.tooltip?js_string}');" />
+        <#include "/${parameters.templateDir}/xhtml/tooltip.ftl" />
     </#if>
 </#if>
     </td>
diff --git a/core/src/main/resources/template/xhtml/checkboxlist.ftl b/core/src/main/resources/template/xhtml/checkboxlist.ftl
index 816dc50..17b0972 100644
--- a/core/src/main/resources/template/xhtml/checkboxlist.ftl
+++ b/core/src/main/resources/template/xhtml/checkboxlist.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 
 <#include "/${parameters.templateDir}/simple/checkboxlist.ftl" />
diff --git a/core/src/main/resources/template/xhtml/combobox.ftl b/core/src/main/resources/template/xhtml/combobox.ftl
index cf23a20..ff527f1 100644
--- a/core/src/main/resources/template/xhtml/combobox.ftl
+++ b/core/src/main/resources/template/xhtml/combobox.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 
 <#include "/${parameters.templateDir}/simple/combobox.ftl" />
diff --git a/core/src/main/resources/template/xhtml/control-close.ftl b/core/src/main/resources/template/xhtml/control-close.ftl
index 94eb82e..72262d9 100644
--- a/core/src/main/resources/template/xhtml/control-close.ftl
+++ b/core/src/main/resources/template/xhtml/control-close.ftl
@@ -1 +1,23 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 </table>
\ No newline at end of file
diff --git a/core/src/main/resources/template/xhtml/control.ftl b/core/src/main/resources/template/xhtml/control.ftl
index 2afb564..de7c012 100644
--- a/core/src/main/resources/template/xhtml/control.ftl
+++ b/core/src/main/resources/template/xhtml/control.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <table class="${parameters.cssClass?default('wwFormTable')?html}"<#rt/>
 <#if parameters.cssStyle?exists> style="${parameters.cssStyle?html}"<#rt/>
 </#if>
diff --git a/core/src/main/resources/template/xhtml/controlfooter.ftl b/core/src/main/resources/template/xhtml/controlfooter.ftl
index e356955..c0f207b 100644
--- a/core/src/main/resources/template/xhtml/controlfooter.ftl
+++ b/core/src/main/resources/template/xhtml/controlfooter.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 ${parameters.after?if_exists}<#t/>
     </td><#lt/>
 </tr>
diff --git a/core/src/main/resources/template/xhtml/controlheader-core.ftl b/core/src/main/resources/template/xhtml/controlheader-core.ftl
index 6e1fbed..8b075da 100644
--- a/core/src/main/resources/template/xhtml/controlheader-core.ftl
+++ b/core/src/main/resources/template/xhtml/controlheader-core.ftl
@@ -1,4 +1,26 @@
 <#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<#--
 	Only show message if errors are available.
 	This will be done if ActionSupport is used.
 -->
diff --git a/core/src/main/resources/template/xhtml/controlheader.ftl b/core/src/main/resources/template/xhtml/controlheader.ftl
index acdf2d9..3ff7c94 100644
--- a/core/src/main/resources/template/xhtml/controlheader.ftl
+++ b/core/src/main/resources/template/xhtml/controlheader.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/xhtml/controlheader-core.ftl" />
     <td
 <#if parameters.align?exists>
diff --git a/core/src/main/resources/template/xhtml/datepicker.ftl b/core/src/main/resources/template/xhtml/datepicker.ftl
index c5b9b40..6a5b5b7 100644
--- a/core/src/main/resources/template/xhtml/datepicker.ftl
+++ b/core/src/main/resources/template/xhtml/datepicker.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/datepicker.ftl" />
 <#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" />
diff --git a/core/src/main/resources/template/xhtml/datetimepicker.ftl b/core/src/main/resources/template/xhtml/datetimepicker.ftl
index cbcbaae..04df3d0 100644
--- a/core/src/main/resources/template/xhtml/datetimepicker.ftl
+++ b/core/src/main/resources/template/xhtml/datetimepicker.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/datetimepicker.ftl" />
 <#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" />
diff --git a/core/src/main/resources/template/xhtml/debug.ftl b/core/src/main/resources/template/xhtml/debug.ftl
index 99bc91a..20e284b 100644
--- a/core/src/main/resources/template/xhtml/debug.ftl
+++ b/core/src/main/resources/template/xhtml/debug.ftl
@@ -1 +1,23 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/simple/debug.ftl" />
diff --git a/core/src/main/resources/template/xhtml/doubleselect.ftl b/core/src/main/resources/template/xhtml/doubleselect.ftl
index e4999cc..e8b4272 100644
--- a/core/src/main/resources/template/xhtml/doubleselect.ftl
+++ b/core/src/main/resources/template/xhtml/doubleselect.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 
 <#include "/${parameters.templateDir}/simple/doubleselect.ftl" />
diff --git a/core/src/main/resources/template/xhtml/file.ftl b/core/src/main/resources/template/xhtml/file.ftl
index 823949b..7677583 100644
--- a/core/src/main/resources/template/xhtml/file.ftl
+++ b/core/src/main/resources/template/xhtml/file.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/file.ftl" />
 <#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" />
diff --git a/core/src/main/resources/template/xhtml/form-close-validate.ftl b/core/src/main/resources/template/xhtml/form-close-validate.ftl
index f805dad..8ddb495 100644
--- a/core/src/main/resources/template/xhtml/form-close-validate.ftl
+++ b/core/src/main/resources/template/xhtml/form-close-validate.ftl
@@ -1,4 +1,26 @@
 <#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<#--
 START SNIPPET: supported-validators
 Only the following validators are supported:
 * required validator
@@ -46,12 +68,12 @@
                     while (value.substring(value.length-1, value.length) == ' ')
                         value = value.substring(0, value.length-1);
                 </#if>
-                if((${validator.minLength} > -1 && value.length < ${validator.minLength}) ||
-                        (${validator.maxLength} > -1 && value.length > ${validator.maxLength})) {
+                if ((${validator.minLength?string} > -1 && value.length < ${validator.minLength?string}) ||
+                    (${validator.maxLength?string} > -1 && value.length > ${validator.maxLength?string})) {
                     addError(field, error);
                     errors = true;
                 }
-            }
+            } 
             <#elseif validator.validatorType = "regex">
             if (field.value != null && !field.value.match("${validator.expression?js_string}")) {
                 addError(field, error);
@@ -70,9 +92,9 @@
             <#elseif validator.validatorType = "int">
             if (field.value != null) {
                 if (<#if validator.min?exists>parseInt(field.value) <
-                     ${validator.min}<#else>false</#if> ||
+                     ${validator.min?string}<#else>false</#if> ||
                         <#if validator.max?exists>parseInt(field.value) >
-                           ${validator.max}<#else>false</#if>) {
+                           ${validator.max?string}<#else>false</#if>) {
                     addError(field, error);
                     errors = true;
                 }
@@ -80,10 +102,10 @@
             <#elseif validator.validatorType = "double">
             if (field.value != null) {
                 var value = parseFloat(field.value);
-                if (<#if validator.minInclusive?exists>value < ${validator.minInclusive}<#else>false</#if> ||
-                        <#if validator.maxInclusive?exists>value > ${validator.maxInclusive}<#else>false</#if> ||
-                        <#if validator.minExclusive?exists>value <= ${validator.minExclusive}<#else>false</#if> ||
-                        <#if validator.maxExclusive?exists>value >= ${validator.maxExclusive}<#else>false</#if>) {
+                if (<#if validator.minInclusive?exists>value < ${validator.minInclusive?string}<#else>false</#if> ||
+                        <#if validator.maxInclusive?exists>value > ${validator.maxInclusive?string}<#else>false</#if> ||
+                        <#if validator.minExclusive?exists>value <= ${validator.minExclusive?string}<#else>false</#if> ||
+                        <#if validator.maxExclusive?exists>value >= ${validator.maxExclusive?string}<#else>false</#if>) {
                     addError(field, error);
                     errors = true;
                 }
diff --git a/core/src/main/resources/template/xhtml/form-close.ftl b/core/src/main/resources/template/xhtml/form-close.ftl
index 61a53dd..15de574 100644
--- a/core/src/main/resources/template/xhtml/form-close.ftl
+++ b/core/src/main/resources/template/xhtml/form-close.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/xhtml/control-close.ftl" />
 <#include "/${parameters.templateDir}/simple/form-close.ftl" />
 <#include "/${parameters.templateDir}/xhtml/form-close-validate.ftl" />
diff --git a/core/src/main/resources/template/xhtml/form-validate.ftl b/core/src/main/resources/template/xhtml/form-validate.ftl
index 3f506b0..991d3e3 100644
--- a/core/src/main/resources/template/xhtml/form-validate.ftl
+++ b/core/src/main/resources/template/xhtml/form-validate.ftl
@@ -1,5 +1,27 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#if parameters.validate?default(false) == true>
-	<script src="${base}/struts/xhtml/validation.js"></script>
+	<script type="text/javascript" src="${base}/struts/xhtml/validation.js"></script>
 	<#if parameters.onsubmit?exists>
 		${tag.addParameter('onsubmit', "${parameters.onsubmit}; return validateForm_${parameters.id}();")}
 	<#else>
diff --git a/core/src/main/resources/template/xhtml/form.ftl b/core/src/main/resources/template/xhtml/form.ftl
index ceca516..9f099bd 100644
--- a/core/src/main/resources/template/xhtml/form.ftl
+++ b/core/src/main/resources/template/xhtml/form.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/xhtml/form-validate.ftl" />
 <#include "/${parameters.templateDir}/simple/form.ftl" />
 <#include "/${parameters.templateDir}/xhtml/control.ftl" />
diff --git a/core/src/main/resources/template/xhtml/head.ftl b/core/src/main/resources/template/xhtml/head.ftl
index a3adae8..6014e8c 100644
--- a/core/src/main/resources/template/xhtml/head.ftl
+++ b/core/src/main/resources/template/xhtml/head.ftl
@@ -1,2 +1,24 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <link rel="stylesheet" href="<@s.url value='/struts/xhtml/styles.css' includeParams='none' encode='false' />" type="text/css"/>
 <#include "/${parameters.templateDir}/simple/head.ftl" />
diff --git a/core/src/main/resources/template/xhtml/inputtransferselect.ftl b/core/src/main/resources/template/xhtml/inputtransferselect.ftl
index 51f1d72..e626ac7 100644
--- a/core/src/main/resources/template/xhtml/inputtransferselect.ftl
+++ b/core/src/main/resources/template/xhtml/inputtransferselect.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/inputtransferselect.ftl" />
 <#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" /><#nt/>
diff --git a/core/src/main/resources/template/xhtml/label.ftl b/core/src/main/resources/template/xhtml/label.ftl
index bae45a5..1d18371 100644
--- a/core/src/main/resources/template/xhtml/label.ftl
+++ b/core/src/main/resources/template/xhtml/label.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/label.ftl" />
 <#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" />
diff --git a/core/src/main/resources/template/xhtml/optiontransferselect.ftl b/core/src/main/resources/template/xhtml/optiontransferselect.ftl
index 5d46582..b465539 100644
--- a/core/src/main/resources/template/xhtml/optiontransferselect.ftl
+++ b/core/src/main/resources/template/xhtml/optiontransferselect.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/optiontransferselect.ftl" />
 <#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" /><#nt/>
diff --git a/core/src/main/resources/template/xhtml/password.ftl b/core/src/main/resources/template/xhtml/password.ftl
index db5daaa..95e4fdb 100644
--- a/core/src/main/resources/template/xhtml/password.ftl
+++ b/core/src/main/resources/template/xhtml/password.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/password.ftl" />
 <#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" />
diff --git a/core/src/main/resources/template/xhtml/radiomap.ftl b/core/src/main/resources/template/xhtml/radiomap.ftl
index 8ea4cd8..60eebd2 100644
--- a/core/src/main/resources/template/xhtml/radiomap.ftl
+++ b/core/src/main/resources/template/xhtml/radiomap.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 
 <#include "/${parameters.templateDir}/simple/radiomap.ftl" />
diff --git a/core/src/main/resources/template/xhtml/reset.ftl b/core/src/main/resources/template/xhtml/reset.ftl
index ebb6b2f..43870ad 100644
--- a/core/src/main/resources/template/xhtml/reset.ftl
+++ b/core/src/main/resources/template/xhtml/reset.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <tr>
     <td colspan="2"><div <#rt/>
 <#if parameters.align?exists>
diff --git a/core/src/main/resources/template/xhtml/select.ftl b/core/src/main/resources/template/xhtml/select.ftl
index 4271776..66e9b17 100644
--- a/core/src/main/resources/template/xhtml/select.ftl
+++ b/core/src/main/resources/template/xhtml/select.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/select.ftl" />
 <#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" />
diff --git a/core/src/main/resources/template/xhtml/styles.css b/core/src/main/resources/template/xhtml/styles.css
index a2c44e9..c33e2e7 100644
--- a/core/src/main/resources/template/xhtml/styles.css
+++ b/core/src/main/resources/template/xhtml/styles.css
@@ -1,3 +1,24 @@
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
 .wwFormTable {}
 .label {font-style:italic; }
 .errorLabel {font-style:italic; color:red; }
diff --git a/core/src/main/resources/template/xhtml/submit.ftl b/core/src/main/resources/template/xhtml/submit.ftl
index e27727d..5f7b034 100644
--- a/core/src/main/resources/template/xhtml/submit.ftl
+++ b/core/src/main/resources/template/xhtml/submit.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <tr>
     <td colspan="2"><div <#rt/>
 <#if parameters.align?exists>
diff --git a/core/src/main/resources/template/xhtml/text.ftl b/core/src/main/resources/template/xhtml/text.ftl
index fef7058..96b6d84 100644
--- a/core/src/main/resources/template/xhtml/text.ftl
+++ b/core/src/main/resources/template/xhtml/text.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/text.ftl" />
 <#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" />
diff --git a/core/src/main/resources/template/xhtml/textarea.ftl b/core/src/main/resources/template/xhtml/textarea.ftl
index e3b4cb6..d4b41ed 100644
--- a/core/src/main/resources/template/xhtml/textarea.ftl
+++ b/core/src/main/resources/template/xhtml/textarea.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/textarea.ftl" />
 <#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" />
diff --git a/core/src/main/resources/template/xhtml/theme.properties b/core/src/main/resources/template/xhtml/theme.properties
index adf79b1..69efe77 100644
--- a/core/src/main/resources/template/xhtml/theme.properties
+++ b/core/src/main/resources/template/xhtml/theme.properties
@@ -1 +1,20 @@
+#  $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+# 
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you 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.
+
 parent = simple
diff --git a/core/src/main/resources/template/xhtml/timepicker.ftl b/core/src/main/resources/template/xhtml/timepicker.ftl
index 3a905d4..563e088 100644
--- a/core/src/main/resources/template/xhtml/timepicker.ftl
+++ b/core/src/main/resources/template/xhtml/timepicker.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/timepicker.ftl" />
 <#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" />
diff --git a/core/src/main/resources/template/xhtml/tooltip.ftl b/core/src/main/resources/template/xhtml/tooltip.ftl
index 5029c56..ff77a11 100644
--- a/core/src/main/resources/template/xhtml/tooltip.ftl
+++ b/core/src/main/resources/template/xhtml/tooltip.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#if parameters.tooltip?exists><#t/>
 	  <#assign tooltipHashCode=parameters.tooltip.hashCode() />
       <img id="_tt${tooltipHashCode?string('#')}"
diff --git a/core/src/main/resources/template/xhtml/updownselect.ftl b/core/src/main/resources/template/xhtml/updownselect.ftl
index 4d5a1fb..0a460e1 100644
--- a/core/src/main/resources/template/xhtml/updownselect.ftl
+++ b/core/src/main/resources/template/xhtml/updownselect.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
 <#include "/${parameters.templateDir}/simple/updownselect.ftl" />
 <#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" /><#nt/>
diff --git a/core/src/main/resources/template/xhtml/validation.js b/core/src/main/resources/template/xhtml/validation.js
index 1673a01..21a8f8e 100644
--- a/core/src/main/resources/template/xhtml/validation.js
+++ b/core/src/main/resources/template/xhtml/validation.js
@@ -1,10 +1,39 @@
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
 function clearErrorMessages(form) {
 
-    var table = form.childNodes[1];
-    if( typeof table == "undefined" ) {
-        table = form.childNodes[0];
+    // get field table
+    var table;
+    for (var i = 0; i < form.childNodes.length; i++) {
+        if (form.childNodes[i].tagName != null && form.childNodes[i].tagName.toLowerCase() == 'table') {
+            table = form.childNodes[i];
+            break;
+        }
     }
 
+    if (table == null) {
+        return;
+    }
+    
     // clear out any rows with an "errorFor" attribute
     var rows = table.rows;
     var rowsToDelete = new Array();
diff --git a/core/src/site/resources/tags/a.html b/core/src/site/resources/tags/a.html
index 0acb8bd..a2aa120 100644
--- a/core/src/site/resources/tags/a.html
+++ b/core/src/site/resources/tags/a.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -47,15 +47,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">errorText</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The text to display to the user if the is an error fetching the content</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">executeScripts</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Javascript code in the fetched content will be executed</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">formFilter</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Function name used to filter the fields of the form.</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">formId</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Form id whose fields will be serialized and passed as parameters</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">handler</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Javascript function name that will make the request</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">href</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The URL to call to obtain the content. Note: If used with ajax context, the value must be set as an url tag value.</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">indicator</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Id of element that will be shown while making request</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">listenTopics</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Topic that will trigger the remote call</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">loadingText</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Loading...</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Text to be shown while content is being fetched</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">notifyTopics</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Topics that will published when the remote call completes</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onLoadJS</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Deprecated. Use 'notifyTopics'. Javascript code execute after reload</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -303,7 +303,7 @@
 					<td align="left" valign="top">openTemplate</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set template to use for opening the rendered html.</td>

 				</tr>

@@ -311,7 +311,7 @@
 					<td align="left" valign="top">preInvokeJS</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Deprecated. Use 'notifyTopics'. Javascript code execute before reload</td>

 				</tr>

@@ -319,7 +319,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -327,7 +327,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -335,15 +335,23 @@
 					<td align="left" valign="top">showErrorTransportText</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Set whether errors will be shown or not</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">showLoadingText</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">Boolean</td>

+					<td align="left" valign="top">Show loading text on targets</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -351,7 +359,7 @@
 					<td align="left" valign="top">targets</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Comma delimited list of ids of the elements whose content will be updated</td>

 				</tr>

@@ -359,7 +367,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -367,7 +375,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -375,7 +383,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -383,7 +391,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -391,7 +399,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -399,7 +407,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -407,7 +415,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/action.html b/core/src/site/resources/tags/action.html
index 953db77..0b6e95c 100644
--- a/core/src/site/resources/tags/action.html
+++ b/core/src/site/resources/tags/action.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">executeResult</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Whether the result of this action (probably a view) should be executed/rendered</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">flush</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Whether the writer should be flush upon end of action component tag, default to true</td>

 				</tr>

@@ -47,7 +47,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -55,7 +55,7 @@
 					<td align="left" valign="top">ignoreContextParams</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Whether the request parameters are to be included when the action is invoked</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Name of the action to be executed (without the extension suffix eg. .action)</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">namespace</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">namespace from where tag is used</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Namespace for action to call</td>

 				</tr>

diff --git a/core/src/site/resources/tags/actionerror.html b/core/src/site/resources/tags/actionerror.html
index c7e7a14..92e987d 100644
--- a/core/src/site/resources/tags/actionerror.html
+++ b/core/src/site/resources/tags/actionerror.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -47,15 +47,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/actionmessage.html b/core/src/site/resources/tags/actionmessage.html
index dce7a8d..5bfaae1 100644
--- a/core/src/site/resources/tags/actionmessage.html
+++ b/core/src/site/resources/tags/actionmessage.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -47,15 +47,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/append.html b/core/src/site/resources/tags/append.html
index 6fb37d5..a4298f2 100644
--- a/core/src/site/resources/tags/append.html
+++ b/core/src/site/resources/tags/append.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The id of which if supplied will have the resultant appended iterator stored under in the stack's context</td>

 				</tr>

diff --git a/core/src/site/resources/tags/autocompleter.html b/core/src/site/resources/tags/autocompleter.html
index 8daf6d1..468e289 100644
--- a/core/src/site/resources/tags/autocompleter.html
+++ b/core/src/site/resources/tags/autocompleter.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">autoComplete</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Whether autocompleter should make suggestion on the textbox</td>

 				</tr>

@@ -47,7 +47,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -55,15 +55,23 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">dataFieldName</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">Value specified in 'name'</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Name of the field in the returned JSON object that contains the data array</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">delay</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">100</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">Delay before making the search</td>

 				</tr>

@@ -71,7 +79,7 @@
 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Enable or disable autocompleter</td>

 				</tr>

@@ -79,7 +87,7 @@
 					<td align="left" valign="top">dropdownHeight</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">120</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">Dropdown's height in pixels</td>

 				</tr>

@@ -87,7 +95,7 @@
 					<td align="left" valign="top">dropdownWidth</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">same as textbox</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">Dropdown's width</td>

 				</tr>

@@ -95,7 +103,7 @@
 					<td align="left" valign="top">emptyOption</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Decide if an empty option is to be inserted. Default false.</td>

 				</tr>

@@ -103,7 +111,7 @@
 					<td align="left" valign="top">forceValidOption</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Force selection to be one of the options</td>

 				</tr>

@@ -111,7 +119,7 @@
 					<td align="left" valign="top">formFilter</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Function name used to filter the fields of the form</td>

 				</tr>

@@ -119,7 +127,7 @@
 					<td align="left" valign="top">formId</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Form id whose fields will be serialized and passed as parameters</td>

 				</tr>

@@ -127,7 +135,7 @@
 					<td align="left" valign="top">headerKey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the header key for the header option.</td>

 				</tr>

@@ -135,7 +143,7 @@
 					<td align="left" valign="top">headerValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the header value for the header option.</td>

 				</tr>

@@ -143,15 +151,23 @@
 					<td align="left" valign="top">href</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The URL used to load the options</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">iconPath</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Path to icon used for the dropdown</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -159,7 +175,7 @@
 					<td align="left" valign="top">indicator</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Id of element that will be shown while request is made</td>

 				</tr>

@@ -167,15 +183,23 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">keyName</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Name of the field to which the selected key will be assigned</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -183,7 +207,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -191,7 +215,7 @@
 					<td align="left" valign="top">list</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Iteratable source to populate from.</td>

 				</tr>

@@ -199,7 +223,7 @@
 					<td align="left" valign="top">listKey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key used to retrive the option key.</td>

 				</tr>

@@ -207,7 +231,7 @@
 					<td align="left" valign="top">listValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the value used to retrive the option value.</td>

 				</tr>

@@ -215,7 +239,7 @@
 					<td align="left" valign="top">listenTopics</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Topic that will trigger a reload</td>

 				</tr>

@@ -223,7 +247,7 @@
 					<td align="left" valign="top">loadMinimumCount</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">3</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">Minimum number of characters that will force the content to be loaded</td>

 				</tr>

@@ -231,7 +255,7 @@
 					<td align="left" valign="top">loadOnTextChange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Options will be reloaded everytime a character is typed on the textbox</td>

 				</tr>

@@ -239,7 +263,7 @@
 					<td align="left" valign="top">maxLength</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">Deprecated. Use maxlength instead.</td>

 				</tr>

@@ -247,7 +271,7 @@
 					<td align="left" valign="top">maxlength</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">HTML maxlength attribute</td>

 				</tr>

@@ -255,7 +279,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -263,7 +287,7 @@
 					<td align="left" valign="top">notifyTopics</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Topics that will be published when content is reloaded</td>

 				</tr>

@@ -271,7 +295,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -279,7 +303,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -287,7 +311,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -295,7 +319,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -303,7 +327,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -311,7 +335,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -319,7 +343,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -327,7 +351,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -335,7 +359,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -343,7 +367,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -351,7 +375,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -359,7 +383,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -367,7 +391,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -375,7 +399,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -383,7 +407,7 @@
 					<td align="left" valign="top">readonly</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Whether the input is readonly</td>

 				</tr>

@@ -391,7 +415,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -399,15 +423,23 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">resultsLimit</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">30</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Limit how many results are shown as autocompletion options</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">searchType</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">stringstart</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">how the search must be performed, options are: 'startstring', 'startword' and 'substring'</td>

 				</tr>

@@ -415,7 +447,7 @@
 					<td align="left" valign="top">showDownArrow</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Show or hide the down arrow button</td>

 				</tr>

@@ -423,7 +455,7 @@
 					<td align="left" valign="top">size</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">HTML size attribute</td>

 				</tr>

@@ -431,7 +463,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -439,15 +471,23 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">templateCssPath</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Template css path</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -455,7 +495,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -463,7 +503,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -471,7 +511,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -479,7 +519,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -487,7 +527,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/bean.html b/core/src/site/resources/tags/bean.html
index 13e19dd..409e3a1 100644
--- a/core/src/site/resources/tags/bean.html
+++ b/core/src/site/resources/tags/bean.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The class name of the bean to be instantiated (must respect JavaBean specification)</td>

 				</tr>

diff --git a/core/src/site/resources/tags/checkbox.html b/core/src/site/resources/tags/checkbox.html
index 1ac284d..421c121 100644
--- a/core/src/site/resources/tags/checkbox.html
+++ b/core/src/site/resources/tags/checkbox.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -47,15 +47,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">fieldValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The actual HTML value attribute of the checkbox.</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/checkboxlist.html b/core/src/site/resources/tags/checkboxlist.html
index 2fa99ee..e1410a2 100644
--- a/core/src/site/resources/tags/checkboxlist.html
+++ b/core/src/site/resources/tags/checkboxlist.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -47,15 +47,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">list</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">listKey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Property of list objects to get field value from</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">listValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Property of list objects to get field content from</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -303,7 +303,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -311,7 +311,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/combobox.html b/core/src/site/resources/tags/combobox.html
index fb1120a..216bd6e 100644
--- a/core/src/site/resources/tags/combobox.html
+++ b/core/src/site/resources/tags/combobox.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -47,15 +47,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">emptyOption</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Decide if an empty option is to be inserted. Default false.</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">headerKey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the header key for the header option.</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">headerValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the header value for the header option.</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">list</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Iteratable source to populate from. If this is missing, the select widget is simply not displayed.</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">listKey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key used to retrive the option key.</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">listValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the value used to retrive the option value.</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">maxLength</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">Deprecated. Use maxlength instead.</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">maxlength</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">HTML maxlength attribute</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">readonly</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Whether the input is readonly</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -303,7 +303,7 @@
 					<td align="left" valign="top">size</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">HTML size attribute</td>

 				</tr>

@@ -311,7 +311,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -319,7 +319,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -327,7 +327,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -335,7 +335,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -343,7 +343,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -351,7 +351,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -359,7 +359,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -367,7 +367,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/component.html b/core/src/site/resources/tags/component.html
index 27271ca..55c8104 100644
--- a/core/src/site/resources/tags/component.html
+++ b/core/src/site/resources/tags/component.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -47,15 +47,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/date.html b/core/src/site/resources/tags/date.html
index ea7c8a5..d169472 100644
--- a/core/src/site/resources/tags/date.html
+++ b/core/src/site/resources/tags/date.html
@@ -39,7 +39,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -47,7 +47,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The date value to format</td>

 				</tr>

@@ -55,7 +55,7 @@
 					<td align="left" valign="top">nice</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Whether to print out the date nicely</td>

 				</tr>

diff --git a/core/src/site/resources/tags/datetimepicker.html b/core/src/site/resources/tags/datetimepicker.html
index 0a1121e..315cc27 100644
--- a/core/src/site/resources/tags/datetimepicker.html
+++ b/core/src/site/resources/tags/datetimepicker.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">adjustWeeks</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If true, weekly size of calendar changes to acomodate the month if false, 42 day format is used</td>

 				</tr>

@@ -47,7 +47,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -55,15 +55,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">dayWidth</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">narrow</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">How to render the names of the days in the header(narrow, abbr or wide)</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">displayFormat</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">A pattern used for the visual display of the formatted date, e.g. dd/MM/yyyy</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">displayWeeks</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">6</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">Total weeks to display</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">endDate</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">2941-10-12</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Date</td>

 					<td align="left" valign="top">Last available date in the calendar set</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">formatLength</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">short</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Type of formatting used for visual display. Possible values are long, short, medium or full</td>

 				</tr>

@@ -111,15 +111,15 @@
 					<td align="left" valign="top">iconPath</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top"> Path to icon used for the dropdown</td>

+					<td align="left" valign="top">Path to icon used for the dropdown</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">language</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">brower's specified preferred language</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Language to display this widget in</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">startDate</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">1492-10-12</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Date</td>

 					<td align="left" valign="top">First available date in the calendar set</td>

 				</tr>

@@ -303,7 +303,7 @@
 					<td align="left" valign="top">staticDisplay</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Disable all incremental controls, must pick a date in the current display</td>

 				</tr>

@@ -311,7 +311,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -319,15 +319,23 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">templateCssPath</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Template css path</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -335,7 +343,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -343,7 +351,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -351,7 +359,7 @@
 					<td align="left" valign="top">toggleDuration</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">100</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">Duration of toggle in milliseconds</td>

 				</tr>

@@ -359,7 +367,7 @@
 					<td align="left" valign="top">toggleType</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">plain</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">oggle type of the dropdown. Possible values are plain,wipe,explode,fade</td>

 				</tr>

@@ -367,7 +375,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -375,7 +383,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -383,7 +391,7 @@
 					<td align="left" valign="top">type</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">date</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Defines the type of the picker on the dropdown. Possible values are 'date' for a DateTimePicker, and 'time' for a timePicker</td>

 				</tr>

@@ -391,7 +399,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

@@ -399,7 +407,7 @@
 					<td align="left" valign="top">weekStartsOn</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">0</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">Adjusts the first day of the week 0==Sunday..6==Saturday</td>

 				</tr>

diff --git a/core/src/site/resources/tags/debug.html b/core/src/site/resources/tags/debug.html
index 9126467..fbce860 100644
--- a/core/src/site/resources/tags/debug.html
+++ b/core/src/site/resources/tags/debug.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -47,15 +47,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/div.html b/core/src/site/resources/tags/div.html
index cb41328..dbd37dc 100644
--- a/core/src/site/resources/tags/div.html
+++ b/core/src/site/resources/tags/div.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">afterLoading</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Deprecated. Use 'notifyTopics'. Javascript code execute after reload</td>

 				</tr>

@@ -47,7 +47,7 @@
 					<td align="left" valign="top">autoStart</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Start timer automatically</td>

 				</tr>

@@ -55,7 +55,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -63,15 +63,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">delay</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">How long to wait before fetching the content (in milliseconds)</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">errorText</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The text to display to the user if the is an error fetching the content</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">executeScripts</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Javascript code in the fetched content will be executed</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">formFilter</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Function name used to filter the fields of the form.</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">formId</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Form id whose fields will be serialized and passed as parameters</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">handler</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Javascript function name that will make the request</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">href</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The URL to call to obtain the content. Note: If used with ajax context, the value must be set as an url tag value.</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">indicator</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Id of element that will be shown while making request</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">listenTopics</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Topic that will trigger the remote call</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">loadingText</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Loading...</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Text to be shown while content is being fetched</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">notifyTopics</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Topics that will published when the remote call completes</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -303,7 +303,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -311,7 +311,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -319,7 +319,7 @@
 					<td align="left" valign="top">openTemplate</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set template to use for opening the rendered html.</td>

 				</tr>

@@ -327,7 +327,7 @@
 					<td align="left" valign="top">refreshOnShow</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Content will be loaded when div becomes visible, used only inside tabbedPanel</td>

 				</tr>

@@ -335,7 +335,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -343,23 +343,39 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">separateScripts</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Run scripts in a separate scope, unique for each Div</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">showErrorTransportText</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Set whether errors will be shown or not</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">showLoadingText</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">Boolean</td>

+					<td align="left" valign="top">Show loading text on targets</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">startTimerListenTopics</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Topics that will start the timer (for autoupdate)</td>

 				</tr>

@@ -367,7 +383,7 @@
 					<td align="left" valign="top">stopTimerListenTopics</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Topics that will stop the timer (for autoupdate)</td>

 				</tr>

@@ -375,7 +391,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -383,7 +399,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -391,7 +407,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -399,7 +415,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -407,7 +423,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -415,7 +431,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -423,7 +439,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -431,7 +447,7 @@
 					<td align="left" valign="top">updateFreq</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">How often to reload the content (in milliseconds)</td>

 				</tr>

@@ -439,7 +455,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/doubleselect.html b/core/src/site/resources/tags/doubleselect.html
index 807e6bf..05d154a 100644
--- a/core/src/site/resources/tags/doubleselect.html
+++ b/core/src/site/resources/tags/doubleselect.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -47,15 +47,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">doubleAccesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute.</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">doubleCssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class for the second list</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">doubleCssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css style for the second list</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">doubleDisabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Decides if a disable attribute should be added to the second list</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">doubleEmptyOption</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Decides if the second list will add an empty option</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">doubleHeaderKey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The header key for the second list</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">doubleHeaderValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The header value for the second list</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">doubleId</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The id of the second list</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">doubleList</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The second iterable source to populate from.</td>

 				</tr>

@@ -135,15 +135,15 @@
 					<td align="left" valign="top">doubleListKey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the list key of the second attribute</td>

+					<td align="left" valign="top">The key expression to use for second list</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">doubleListValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The value expression to use for second list</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">doubleMultiple</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Decides if multiple attribute should be set on the second list</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">doubleName</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name for complete component</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">doubleOnblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onblur attribute of the second list</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">doubleOnchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onchange attribute of the second list</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">doubleOnclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onclick attribute of the second list</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">doubleOndblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the ondbclick attribute of the second list</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">doubleOnfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onfocus attribute of the second list</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">doubleOnkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onkeydown attribute of the second list</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">doubleOnkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onkeypress attribute of the second list</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">doubleOnkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onkeyup attribute of the second list</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">doubleOnmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onmousedown attribute of the second list</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">doubleOnmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onmousemove attribute of the second list</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">doubleOnmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onmouseout attribute of the second list</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">doubleOnmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onmouseover attribute of the second list</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">doubleOnmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onmouseup attribute of the second list</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">doubleOnselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onselect attribute of the second list</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">doubleSize</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the size attribute of the second list</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">doubleValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The value expression for complete component</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">emptyOption</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Decides of an empty option is to be inserted in the second list</td>

 				</tr>

@@ -303,7 +303,7 @@
 					<td align="left" valign="top">formName</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The form name this component resides in and populates to</td>

 				</tr>

@@ -311,7 +311,7 @@
 					<td align="left" valign="top">headerKey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the header key of the second list. Must not be empty! '-1' and '' is correct, '' is bad.</td>

 				</tr>

@@ -319,7 +319,7 @@
 					<td align="left" valign="top">headerValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the header value of the second list</td>

 				</tr>

@@ -327,7 +327,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -335,7 +335,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -343,7 +343,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -351,7 +351,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -359,7 +359,7 @@
 					<td align="left" valign="top">list</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.</td>

 				</tr>

@@ -367,7 +367,7 @@
 					<td align="left" valign="top">listKey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Property of list objects to get field value from</td>

 				</tr>

@@ -375,7 +375,7 @@
 					<td align="left" valign="top">listValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Property of list objects to get field content from</td>

 				</tr>

@@ -383,7 +383,7 @@
 					<td align="left" valign="top">multiple</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Creates a multiple select. The tag will pre-select multiple values if the values are passed as an Array (of appropriate types) via the value attribute.</td>

 				</tr>

@@ -391,7 +391,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -399,7 +399,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -407,7 +407,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -415,7 +415,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -423,7 +423,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -431,7 +431,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -439,7 +439,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -447,7 +447,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -455,7 +455,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -463,7 +463,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -471,7 +471,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -479,7 +479,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -487,7 +487,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -495,7 +495,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -503,7 +503,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -511,7 +511,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -519,7 +519,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -527,7 +527,7 @@
 					<td align="left" valign="top">size</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">Size of the element box (# of elements to show)</td>

 				</tr>

@@ -535,7 +535,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -543,7 +543,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -551,7 +551,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -559,7 +559,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -567,7 +567,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -575,7 +575,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -583,7 +583,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -591,7 +591,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/else.html b/core/src/site/resources/tags/else.html
index a117d98..b80a92d 100644
--- a/core/src/site/resources/tags/else.html
+++ b/core/src/site/resources/tags/else.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

diff --git a/core/src/site/resources/tags/elseif.html b/core/src/site/resources/tags/elseif.html
index 44c7259..e7353f2 100644
--- a/core/src/site/resources/tags/elseif.html
+++ b/core/src/site/resources/tags/elseif.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">test</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Expression to determine if body of tag is to be displayed</td>

 				</tr>

diff --git a/core/src/site/resources/tags/fielderror.html b/core/src/site/resources/tags/fielderror.html
index dbebd7a..9eb52cb 100644
--- a/core/src/site/resources/tags/fielderror.html
+++ b/core/src/site/resources/tags/fielderror.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -47,15 +47,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/file.html b/core/src/site/resources/tags/file.html
index 5b227c6..6fc2019 100644
--- a/core/src/site/resources/tags/file.html
+++ b/core/src/site/resources/tags/file.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accept</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">HTML accept attribute to indicate accepted file mimetypes</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -47,7 +47,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -55,15 +55,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">size</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">HTML size attribute</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -303,7 +303,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/form.html b/core/src/site/resources/tags/form.html
index 6007531..a73cd0c 100644
--- a/core/src/site/resources/tags/form.html
+++ b/core/src/site/resources/tags/form.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">acceptcharset</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The accepted charsets for this form. The values may be comma or blank delimited.</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -47,15 +47,15 @@
 					<td align="left" valign="top">action</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">current action</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set action nane to submit to, without .action suffix</td>

+					<td align="left" valign="top">Set action name to submit to, without .action suffix</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -63,15 +63,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">enctype</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">HTML form enctype attribute</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">method</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">HTML form method attribute</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">namespace</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">current namespace</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Namespace for action to submit to</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">onsubmit</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">HTML onsubmit attribute</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">openTemplate</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set template to use for opening the rendered html.</td>

 				</tr>

@@ -271,15 +271,15 @@
 					<td align="left" valign="top">portletMode</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">he portlet mode to display after the form submit</td>

+					<td align="left" valign="top">The portlet mode to display after the form submit</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -303,7 +303,7 @@
 					<td align="left" valign="top">target</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">HTML form target attribute</td>

 				</tr>

@@ -311,7 +311,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -319,7 +319,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -327,7 +327,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -335,7 +335,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -343,7 +343,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -351,7 +351,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -359,7 +359,7 @@
 					<td align="left" valign="top">validate</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Whether client side/remote validation should be performed. Only useful with theme xhtml/ajax</td>

 				</tr>

@@ -367,7 +367,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

@@ -375,7 +375,7 @@
 					<td align="left" valign="top">windowState</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The window state to display after the form submit</td>

 				</tr>

diff --git a/core/src/site/resources/tags/generator.html b/core/src/site/resources/tags/generator.html
index a1169cd..23ac56f 100644
--- a/core/src/site/resources/tags/generator.html
+++ b/core/src/site/resources/tags/generator.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">converter</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">org.apache.struts2.util.IteratorGenerator.Converter</td>

 					<td align="left" valign="top">The converter to convert the String entry parsed from <i>val</i> into an object</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">count</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">The max number entries to be in the iterator</td>

 				</tr>

@@ -47,7 +47,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The id to store the resultant iterator into page context, if such id is supplied</td>

 				</tr>

@@ -55,7 +55,7 @@
 					<td align="left" valign="top">separator</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The separator to be used in separating the <i>val</i> into entries of the iterator</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">val</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The source to be parsed into an iterator</td>

 				</tr>

diff --git a/core/src/site/resources/tags/head.html b/core/src/site/resources/tags/head.html
index 3f88527..1aebdda 100644
--- a/core/src/site/resources/tags/head.html
+++ b/core/src/site/resources/tags/head.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">calendarcss</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">calendar-blue.css</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The jscalendar css theme to use</td>

 				</tr>

@@ -47,7 +47,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -55,15 +55,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">debug</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set to true to enable debugging mode for AJAX themes</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -303,7 +303,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/hidden.html b/core/src/site/resources/tags/hidden.html
index 41ab9a0..3f294c2 100644
--- a/core/src/site/resources/tags/hidden.html
+++ b/core/src/site/resources/tags/hidden.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -47,15 +47,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/i18n.html b/core/src/site/resources/tags/i18n.html
index 466b5b4..8ea0268 100644
--- a/core/src/site/resources/tags/i18n.html
+++ b/core/src/site/resources/tags/i18n.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Name of ressource bundle to use (eg foo/bar/customBundle)</td>

 				</tr>

diff --git a/core/src/site/resources/tags/if.html b/core/src/site/resources/tags/if.html
index 80a65d5..5b43390 100644
--- a/core/src/site/resources/tags/if.html
+++ b/core/src/site/resources/tags/if.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">test</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Expression to determine if body of tag is to be displayed</td>

 				</tr>

diff --git a/core/src/site/resources/tags/include.html b/core/src/site/resources/tags/include.html
index 25784f5..4a6897e 100644
--- a/core/src/site/resources/tags/include.html
+++ b/core/src/site/resources/tags/include.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The jsp/servlet output to include</td>

 				</tr>

diff --git a/core/src/site/resources/tags/inputtransferselect.html b/core/src/site/resources/tags/inputtransferselect.html
index 3521df2..f39f347 100644
--- a/core/src/site/resources/tags/inputtransferselect.html
+++ b/core/src/site/resources/tags/inputtransferselect.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">addLabel</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">the label used for the add button</td>

 				</tr>

@@ -47,7 +47,7 @@
 					<td align="left" valign="top">allowRemoveAll</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Determine whether the remove all button will display</td>

 				</tr>

@@ -55,7 +55,7 @@
 					<td align="left" valign="top">allowUpDown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Determine whether items in the list can be reordered</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">buttonCssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">the css class used for rendering buttons</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">buttonCssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">the css style used for rendering buttons</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -87,15 +87,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">downLabel</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">the label used for the down button</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">headerKey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">the header key of the select box</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">headerValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">the header value of the select box</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">leftTitle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">the left hand title</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">list</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">listKey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Property of list objects to get field value from</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">listValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Property of list objects to get field content from</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">multiple</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Determine whether or not multiple entries are shown</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -303,7 +303,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -311,7 +311,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -319,7 +319,7 @@
 					<td align="left" valign="top">removeAllLabel</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">the label used for the remove all button</td>

 				</tr>

@@ -327,7 +327,7 @@
 					<td align="left" valign="top">removeLabel</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">the label used for the remove button</td>

 				</tr>

@@ -335,7 +335,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -343,7 +343,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -351,7 +351,7 @@
 					<td align="left" valign="top">rightTitle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">the right hand title</td>

 				</tr>

@@ -359,7 +359,7 @@
 					<td align="left" valign="top">size</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">the size of the select box</td>

 				</tr>

@@ -367,7 +367,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -375,7 +375,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -383,7 +383,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -391,7 +391,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -399,7 +399,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -407,7 +407,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -415,7 +415,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -423,7 +423,7 @@
 					<td align="left" valign="top">upLabel</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">the label used for the up button</td>

 				</tr>

@@ -431,7 +431,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/iterator.html b/core/src/site/resources/tags/iterator.html
index be1f5cf..bbc9ff5 100644
--- a/core/src/site/resources/tags/iterator.html
+++ b/core/src/site/resources/tags/iterator.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">status</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If specified, an instanceof IteratorStatus will be pushed into stack upon each iteration</td>

 				</tr>

@@ -47,7 +47,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">the iteratable source to iterate over, else an the object itself will be put into a newly created List</td>

 				</tr>

diff --git a/core/src/site/resources/tags/label.html b/core/src/site/resources/tags/label.html
index 9474060..8a36e8b 100644
--- a/core/src/site/resources/tags/label.html
+++ b/core/src/site/resources/tags/label.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -47,15 +47,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">for</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> HTML for attribute</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/merge.html b/core/src/site/resources/tags/merge.html
index a536fe9..2aeeb9d 100644
--- a/core/src/site/resources/tags/merge.html
+++ b/core/src/site/resources/tags/merge.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The id where the resultant merged iterator will be stored in the stack's context</td>

 				</tr>

diff --git a/core/src/site/resources/tags/optgroup.html b/core/src/site/resources/tags/optgroup.html
index bbe1b16..4931097 100644
--- a/core/src/site/resources/tags/optgroup.html
+++ b/core/src/site/resources/tags/optgroup.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the disable attribute.</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -47,7 +47,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the label attribute</td>

 				</tr>

@@ -55,7 +55,7 @@
 					<td align="left" valign="top">list</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the list attribute.</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">listKey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the listKey attribute.</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">listValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the listValue attribute.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/optiontransferselect.html b/core/src/site/resources/tags/optiontransferselect.html
index 5dfa2ea..b28fd88 100644
--- a/core/src/site/resources/tags/optiontransferselect.html
+++ b/core/src/site/resources/tags/optiontransferselect.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,39 +39,71 @@
 					<td align="left" valign="top">addAllToLeftLabel</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set Add To Left button label</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">addAllToLeftOnclick</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Javascript to run after Add All To Left button pressed</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">addAllToRightLabel</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set Add All To Right button label</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">addAllToRightOnclick</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Javascript to run after Add All To Right button pressed</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">addToLeftLabel</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set Add To Left button label</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">addToLeftOnclick</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Javascript to run after Add To Left button pressed</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">addToRightLabel</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set Add To Right button label</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">addToRightOnclick</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Javascript to run after Add To Right button pressed</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">allowAddAllToLeft</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Enable Add All To Left button</td>

 				</tr>

@@ -79,7 +111,7 @@
 					<td align="left" valign="top">allowAddAllToRight</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Enable Add All To Right button</td>

 				</tr>

@@ -87,7 +119,7 @@
 					<td align="left" valign="top">allowAddToLeft</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Enable Add To Left button</td>

 				</tr>

@@ -95,7 +127,7 @@
 					<td align="left" valign="top">allowAddToRight</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Enable Add To Right button</td>

 				</tr>

@@ -103,7 +135,7 @@
 					<td align="left" valign="top">allowSelectAll</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Enable Select All button</td>

 				</tr>

@@ -111,7 +143,7 @@
 					<td align="left" valign="top">allowUpDownOnLeft</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Enable up / down on the left side</td>

 				</tr>

@@ -119,7 +151,7 @@
 					<td align="left" valign="top">allowUpDownOnRight</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Enable up / down on the right side</td>

 				</tr>

@@ -127,7 +159,7 @@
 					<td align="left" valign="top">buttonCssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set buttons css class</td>

 				</tr>

@@ -135,7 +167,7 @@
 					<td align="left" valign="top">buttonCssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set button css style</td>

 				</tr>

@@ -143,7 +175,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -151,15 +183,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -167,7 +199,7 @@
 					<td align="left" valign="top">doubleAccesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute.</td>

 				</tr>

@@ -175,7 +207,7 @@
 					<td align="left" valign="top">doubleCssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class for the second list</td>

 				</tr>

@@ -183,7 +215,7 @@
 					<td align="left" valign="top">doubleCssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css style for the second list</td>

 				</tr>

@@ -191,7 +223,7 @@
 					<td align="left" valign="top">doubleDisabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Decides if a disable attribute should be added to the second list</td>

 				</tr>

@@ -199,7 +231,7 @@
 					<td align="left" valign="top">doubleEmptyOption</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Decides if the second list will add an empty option</td>

 				</tr>

@@ -207,7 +239,7 @@
 					<td align="left" valign="top">doubleHeaderKey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The header key for the second list</td>

 				</tr>

@@ -215,7 +247,7 @@
 					<td align="left" valign="top">doubleHeaderValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The header value for the second list</td>

 				</tr>

@@ -223,7 +255,7 @@
 					<td align="left" valign="top">doubleId</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The id of the second list</td>

 				</tr>

@@ -231,7 +263,7 @@
 					<td align="left" valign="top">doubleList</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The second iterable source to populate from.</td>

 				</tr>

@@ -239,15 +271,15 @@
 					<td align="left" valign="top">doubleListKey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the list key of the second attribute</td>

+					<td align="left" valign="top">The key expression to use for second list</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">doubleListValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The value expression to use for second list</td>

 				</tr>

@@ -255,7 +287,7 @@
 					<td align="left" valign="top">doubleMultiple</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Decides if multiple attribute should be set on the second list</td>

 				</tr>

@@ -263,7 +295,7 @@
 					<td align="left" valign="top">doubleName</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name for complete component</td>

 				</tr>

@@ -271,7 +303,7 @@
 					<td align="left" valign="top">doubleOnblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onblur attribute of the second list</td>

 				</tr>

@@ -279,7 +311,7 @@
 					<td align="left" valign="top">doubleOnchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onchange attribute of the second list</td>

 				</tr>

@@ -287,7 +319,7 @@
 					<td align="left" valign="top">doubleOnclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onclick attribute of the second list</td>

 				</tr>

@@ -295,7 +327,7 @@
 					<td align="left" valign="top">doubleOndblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the ondbclick attribute of the second list</td>

 				</tr>

@@ -303,7 +335,7 @@
 					<td align="left" valign="top">doubleOnfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onfocus attribute of the second list</td>

 				</tr>

@@ -311,7 +343,7 @@
 					<td align="left" valign="top">doubleOnkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onkeydown attribute of the second list</td>

 				</tr>

@@ -319,7 +351,7 @@
 					<td align="left" valign="top">doubleOnkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onkeypress attribute of the second list</td>

 				</tr>

@@ -327,7 +359,7 @@
 					<td align="left" valign="top">doubleOnkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onkeyup attribute of the second list</td>

 				</tr>

@@ -335,7 +367,7 @@
 					<td align="left" valign="top">doubleOnmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onmousedown attribute of the second list</td>

 				</tr>

@@ -343,7 +375,7 @@
 					<td align="left" valign="top">doubleOnmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onmousemove attribute of the second list</td>

 				</tr>

@@ -351,7 +383,7 @@
 					<td align="left" valign="top">doubleOnmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onmouseout attribute of the second list</td>

 				</tr>

@@ -359,7 +391,7 @@
 					<td align="left" valign="top">doubleOnmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onmouseover attribute of the second list</td>

 				</tr>

@@ -367,7 +399,7 @@
 					<td align="left" valign="top">doubleOnmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onmouseup attribute of the second list</td>

 				</tr>

@@ -375,7 +407,7 @@
 					<td align="left" valign="top">doubleOnselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the onselect attribute of the second list</td>

 				</tr>

@@ -383,7 +415,7 @@
 					<td align="left" valign="top">doubleSize</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the size attribute of the second list</td>

 				</tr>

@@ -391,7 +423,7 @@
 					<td align="left" valign="top">doubleValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The value expression for complete component</td>

 				</tr>

@@ -399,7 +431,7 @@
 					<td align="left" valign="top">emptyOption</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Decides of an empty option is to be inserted in the second list</td>

 				</tr>

@@ -407,7 +439,7 @@
 					<td align="left" valign="top">formName</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The form name this component resides in and populates to</td>

 				</tr>

@@ -415,7 +447,7 @@
 					<td align="left" valign="top">headerKey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the header key of the second list. Must not be empty! '-1' and '' is correct, '' is bad.</td>

 				</tr>

@@ -423,7 +455,7 @@
 					<td align="left" valign="top">headerValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the header value of the second list</td>

 				</tr>

@@ -431,7 +463,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -439,7 +471,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -447,7 +479,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -455,7 +487,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -463,7 +495,7 @@
 					<td align="left" valign="top">leftDownLabel</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Down label for the left side.</td>

 				</tr>

@@ -471,7 +503,7 @@
 					<td align="left" valign="top">leftTitle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set Left title</td>

 				</tr>

@@ -479,7 +511,7 @@
 					<td align="left" valign="top">leftUpLabel</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Up label for the left side</td>

 				</tr>

@@ -487,7 +519,7 @@
 					<td align="left" valign="top">list</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.</td>

 				</tr>

@@ -495,7 +527,7 @@
 					<td align="left" valign="top">listKey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Property of list objects to get field value from</td>

 				</tr>

@@ -503,7 +535,7 @@
 					<td align="left" valign="top">listValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Property of list objects to get field content from</td>

 				</tr>

@@ -511,7 +543,7 @@
 					<td align="left" valign="top">multiple</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Creates a multiple select. The tag will pre-select multiple values if the values are passed as an Array (of appropriate types) via the value attribute.</td>

 				</tr>

@@ -519,7 +551,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -527,7 +559,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -535,7 +567,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -543,7 +575,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -551,7 +583,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -559,7 +591,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -567,7 +599,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -575,7 +607,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -583,7 +615,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -591,7 +623,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -599,7 +631,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -607,7 +639,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -615,7 +647,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -623,7 +655,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -631,7 +663,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -639,7 +671,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -647,7 +679,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -655,7 +687,7 @@
 					<td align="left" valign="top">rightDownLabel</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Down label for the left side.</td>

 				</tr>

@@ -663,7 +695,7 @@
 					<td align="left" valign="top">rightTitle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set Right title</td>

 				</tr>

@@ -671,7 +703,7 @@
 					<td align="left" valign="top">rightUpLabel</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Up label for the right side.</td>

 				</tr>

@@ -679,15 +711,23 @@
 					<td align="left" valign="top">selectAllLabel</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set Select All button label</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">selectAllOnclick</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Javascript to run after Select All button pressed</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">size</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">Size of the element box (# of elements to show)</td>

 				</tr>

@@ -695,7 +735,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -703,7 +743,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -711,7 +751,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -719,7 +759,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -727,7 +767,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -735,7 +775,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -743,15 +783,31 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">upDownOnLeftOnclick</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Javascript to run after up / down on the left side buttons pressed</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">upDownOnRightOnclick</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Javascript to run after up / down on the right side buttons pressed</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/param.html b/core/src/site/resources/tags/param.html
index 55490b1..f001ea0 100644
--- a/core/src/site/resources/tags/param.html
+++ b/core/src/site/resources/tags/param.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Name of Parameter to set</td>

 				</tr>

@@ -47,7 +47,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">The value of evaluating provided name against stack</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Value expression for Parameter to set</td>

 				</tr>

diff --git a/core/src/site/resources/tags/password.html b/core/src/site/resources/tags/password.html
index e4038f8..0d0c9f0 100644
--- a/core/src/site/resources/tags/password.html
+++ b/core/src/site/resources/tags/password.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -47,15 +47,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">maxLength</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">Deprecated. Use maxlength instead.</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">maxlength</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">HTML maxlength attribute</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">readonly</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Whether the input is readonly</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">showPassword</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Whether to show input</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">size</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">HTML size attribute</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -303,7 +303,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -311,7 +311,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -319,7 +319,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -327,7 +327,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/property.html b/core/src/site/resources/tags/property.html
index 5be2321..e26abe8 100644
--- a/core/src/site/resources/tags/property.html
+++ b/core/src/site/resources/tags/property.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">default</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The default value to be used if <u>value</u> attribute is null</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">escape</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top"> Whether to escape HTML</td>

 				</tr>

@@ -47,7 +47,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -55,7 +55,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">&lt;top of stack&gt;</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Object</td>

 					<td align="left" valign="top">Value to be displayed</td>

 				</tr>

diff --git a/core/src/site/resources/tags/push.html b/core/src/site/resources/tags/push.html
index 7a9a1f0..5a2d918 100644
--- a/core/src/site/resources/tags/push.html
+++ b/core/src/site/resources/tags/push.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Value to push on stack</td>

 				</tr>

diff --git a/core/src/site/resources/tags/radio.html b/core/src/site/resources/tags/radio.html
index c20a80e..4aa57e9 100644
--- a/core/src/site/resources/tags/radio.html
+++ b/core/src/site/resources/tags/radio.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -47,15 +47,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">list</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">listKey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Property of list objects to get field value from</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">listValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Property of list objects to get field content from</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -303,7 +303,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -311,7 +311,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/reset.html b/core/src/site/resources/tags/reset.html
index d33221f..aa53a55 100644
--- a/core/src/site/resources/tags/reset.html
+++ b/core/src/site/resources/tags/reset.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">action</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set action attribute.</td>

 				</tr>

@@ -47,7 +47,7 @@
 					<td align="left" valign="top">align</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">HTML align attribute.</td>

 				</tr>

@@ -55,7 +55,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -63,15 +63,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Supply a reset button text apart from reset value. Will have no effect for <i>input</i> type reset, since button text will always be the value parameter.</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">method</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set method attribute.</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -303,7 +303,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -311,7 +311,7 @@
 					<td align="left" valign="top">type</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">input</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The type of submit to use. Valid values are <i>input</i>, <i>button</i> and <i>image</i>.</td>

 				</tr>

@@ -319,7 +319,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/select.html b/core/src/site/resources/tags/select.html
index 008304d..063ce77 100644
--- a/core/src/site/resources/tags/select.html
+++ b/core/src/site/resources/tags/select.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -47,15 +47,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">emptyOption</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Whether or not to add an empty (--) option after the header option</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">headerKey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Key for first item in list. Must not be empty! '-1' and '' is correct, '' is bad.</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">headerValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Value expression for first item in list</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">list</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">listKey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Property of list objects to get field value from</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">listValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Property of list objects to get field content from</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">multiple</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top"> Creates a multiple select. The tag will pre-select multiple values if the values are passed as an Array (of appropriate types) via the value attribute. Passing a Collection may work too? Haven't tested this.</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">size</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">Size of the element box (# of elements to show)</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -303,7 +303,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -311,7 +311,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -319,7 +319,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -327,7 +327,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -335,7 +335,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -343,7 +343,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -351,7 +351,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/set.html b/core/src/site/resources/tags/set.html
index 3908365..50ded53 100644
--- a/core/src/site/resources/tags/set.html
+++ b/core/src/site/resources/tags/set.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> The name of the new variable that is assigned the value of <i>value</i></td>

 				</tr>

@@ -47,7 +47,7 @@
 					<td align="left" valign="top">scope</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">action</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The scope in which to assign the variable. Can be <b>application</b>, <b>session</b>, <b>request</b>, <b>page</b>, or <b>action</b>.</td>

 				</tr>

@@ -55,7 +55,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The value that is assigned to the variable named <i>name</i></td>

 				</tr>

diff --git a/core/src/site/resources/tags/sort.html b/core/src/site/resources/tags/sort.html
index cf37809..4dbfd26 100644
--- a/core/src/site/resources/tags/sort.html
+++ b/core/src/site/resources/tags/sort.html
@@ -31,15 +31,23 @@
 					<td align="left" valign="top">comparator</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">java.util.Comparator</td>

 					<td align="left" valign="top">The comparator to use</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">id</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">The id of the tag element</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">source</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The iterable source to sort</td>

 				</tr>

diff --git a/core/src/site/resources/tags/submit.html b/core/src/site/resources/tags/submit.html
index 9aa7649..a7d082b 100644
--- a/core/src/site/resources/tags/submit.html
+++ b/core/src/site/resources/tags/submit.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">action</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set action attribute.</td>

 				</tr>

@@ -47,7 +47,7 @@
 					<td align="left" valign="top">align</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">HTML align attribute.</td>

 				</tr>

@@ -55,7 +55,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -63,15 +63,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">errorText</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The text to display to the user if the is an error fetching the content</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">executeScripts</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Javascript code in the fetched content will be executed</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">formFilter</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Function name used to filter the fields of the form.</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">formId</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Form id whose fields will be serialized and passed as parameters</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">handler</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Javascript function name that will make the request</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">href</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The URL to call to obtain the content. Note: If used with ajax context, the value must be set as an url tag value.</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">indicator</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set indicator</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">listenTopics</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Topic that will trigger the remote call</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">loadingText</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Loading...</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Text to be shown while content is being fetched</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">method</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set method attribute.</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">notifyTopics</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Topics that will published when the remote call completes</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onLoadJS</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Deprecated. Use 'notifyTopics'. Javascript code execute after reload</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -303,7 +303,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -311,7 +311,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -319,7 +319,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -327,7 +327,7 @@
 					<td align="left" valign="top">preInvokeJS</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Deprecated. Use 'notifyTopics'. Javascript code execute before reload</td>

 				</tr>

@@ -335,7 +335,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -343,7 +343,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -351,15 +351,23 @@
 					<td align="left" valign="top">showErrorTransportText</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Set whether errors will be shown or not</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">showLoadingText</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">Boolean</td>

+					<td align="left" valign="top">Show loading text on targets</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">src</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Supply an image src for <i>image</i> type submit button. Will have no effect for types <i>input</i> and <i>button</i>.</td>

 				</tr>

@@ -367,7 +375,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -375,7 +383,7 @@
 					<td align="left" valign="top">targets</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Comma delimited list of ids of the elements whose content will be updated</td>

 				</tr>

@@ -383,7 +391,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -391,7 +399,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -399,7 +407,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme to use for the element. <b>This tag will usually use the ajax theme.</b></td>

 				</tr>

@@ -407,7 +415,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -415,7 +423,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -423,7 +431,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -431,7 +439,7 @@
 					<td align="left" valign="top">type</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">input</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The type of submit to use. Valid values are <i>input</i>, <i>button</i> and <i>image</i>.</td>

 				</tr>

@@ -439,7 +447,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/subset.html b/core/src/site/resources/tags/subset.html
index 49ec7a7..84bb4ff 100644
--- a/core/src/site/resources/tags/subset.html
+++ b/core/src/site/resources/tags/subset.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">count</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">Indicate the number of entries to be in the resulting subset iterator</td>

 				</tr>

@@ -39,15 +39,23 @@
 					<td align="left" valign="top">decider</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">org.apache.struts2.util.SubsetIteratorFilter.Decider</td>

 					<td align="left" valign="top">Extension to plug-in a decider to determine if that particular entry is to be included in the resulting subset iterator</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">id</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">The id of the tag element</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">source</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Indicate the source of which the resulting subset iterator is to be derived base on</td>

 				</tr>

@@ -55,7 +63,7 @@
 					<td align="left" valign="top">start</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">Indicate the starting index (eg. first entry is 0) of entries in the source to be available as the first entry in the resulting subset iterator</td>

 				</tr>

diff --git a/core/src/site/resources/tags/tabbedPanel.html b/core/src/site/resources/tags/tabbedPanel.html
index 7682759..e4d0a35 100644
--- a/core/src/site/resources/tags/tabbedPanel.html
+++ b/core/src/site/resources/tags/tabbedPanel.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">closeButton</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Where the close button will be placed, possible values are 'tab' and 'pane'</td>

 				</tr>

@@ -47,7 +47,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -55,15 +55,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">doLayout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If doLayout is false, the tab container's height equals the height of the currently selected tab</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The id to assign to the component.</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">openTemplate</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set template to use for opening the rendered html.</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">selectedTab</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> The id of the tab that will be selected by default</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -271,15 +271,23 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">templateCssPath</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Template css path</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -287,7 +295,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -295,7 +303,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -303,7 +311,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -311,15 +319,23 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">useSelectedTabCookie</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">If set to true, the id of the last selected tab will be stored in cookie. If the view is rendered, it will be tried to read this cookie and activate the corresponding tab on success, unless overridden by the selectedTab attribute. The cookie name is "Struts2TabbedPanel_selectedTab_"+id.</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/table.html b/core/src/site/resources/tags/table.html
index c07e4c1..14ae1ee 100644
--- a/core/src/site/resources/tags/table.html
+++ b/core/src/site/resources/tags/table.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -47,15 +47,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">sortColumn</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">Index of column to sort data by</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">sortOrder</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">NONE</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set sort order. Allowed values are NONE, ASC and DESC</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">sortable</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Whether the table should be sortable. Requires that model implements org.apache.struts2.components.table.SortableTableModel if set to true.</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -303,7 +303,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -311,7 +311,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/text.html b/core/src/site/resources/tags/text.html
index 6fdbc03..25ff53f 100644
--- a/core/src/site/resources/tags/text.html
+++ b/core/src/site/resources/tags/text.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Name of resource property to fetch</td>

 				</tr>

diff --git a/core/src/site/resources/tags/textarea.html b/core/src/site/resources/tags/textarea.html
index 139ae0d..21c0941 100644
--- a/core/src/site/resources/tags/textarea.html
+++ b/core/src/site/resources/tags/textarea.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">cols</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">HTML cols attribute</td>

 				</tr>

@@ -47,7 +47,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -55,15 +55,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">readonly</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Whether the textarea is readonly</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">rows</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">HTML rows attribute</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -303,7 +303,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -311,7 +311,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

@@ -319,7 +319,7 @@
 					<td align="left" valign="top">wrap</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">HTML wrap attribute</td>

 				</tr>

diff --git a/core/src/site/resources/tags/textfield.html b/core/src/site/resources/tags/textfield.html
index a88af33..af00d90 100644
--- a/core/src/site/resources/tags/textfield.html
+++ b/core/src/site/resources/tags/textfield.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -47,15 +47,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">maxLength</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">Deprecated. Use maxlength instead.</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">maxlength</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">HTML maxlength attribute</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">readonly</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Whether the input is readonly</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">size</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">HTML size attribute</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -303,7 +303,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -311,7 +311,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -319,7 +319,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/token.html b/core/src/site/resources/tags/token.html
index bd5e1cb..af57482 100644
--- a/core/src/site/resources/tags/token.html
+++ b/core/src/site/resources/tags/token.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -47,15 +47,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/tree.html b/core/src/site/resources/tags/tree.html
index f1af001..aa7442a 100644
--- a/core/src/site/resources/tags/tree.html
+++ b/core/src/site/resources/tags/tree.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">blankIconSrc</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Blank icon image source.</td>

 				</tr>

@@ -47,7 +47,7 @@
 					<td align="left" valign="top">childCollectionProperty</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The childCollectionProperty property.</td>

 				</tr>

@@ -55,7 +55,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -63,15 +63,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">expandIconSrcMinus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Expand icon (-) image source.</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">expandIconSrcPlus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Expand Icon (+) image source.</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">gridIconSrcC</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Image source for under child item child icons.</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">gridIconSrcL</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Image source for last child grid.</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">gridIconSrcP</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Image source for under parent item child icons.</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">gridIconSrcV</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Image source for vertical line.</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">gridIconSrcX</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Image source for grid for sole root item.</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">gridIconSrcY</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Image source for grid for last root item.</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">iconHeight</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">18px</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Icon height</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">iconWidth</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">19px</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Icon width</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">nodeIdProperty</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The nodeIdProperty property.</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">nodeTitleProperty</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The nodeTitleProperty property.</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -303,7 +303,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -311,7 +311,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -319,7 +319,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -327,7 +327,7 @@
 					<td align="left" valign="top">openTemplate</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set template to use for opening the rendered html.</td>

 				</tr>

@@ -335,7 +335,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -343,7 +343,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -351,7 +351,7 @@
 					<td align="left" valign="top">rootNode</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The rootNode property.</td>

 				</tr>

@@ -359,7 +359,7 @@
 					<td align="left" valign="top">showGrid</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Show grid</td>

 				</tr>

@@ -367,7 +367,7 @@
 					<td align="left" valign="top">showRootGrid</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The showRootGrid property (default true).</td>

 				</tr>

@@ -375,7 +375,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -383,7 +383,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -391,7 +391,7 @@
 					<td align="left" valign="top">templateCssPath</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">{contextPath}/struts/tree.css.</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Template css path</td>

 				</tr>

@@ -399,7 +399,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -407,7 +407,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -415,7 +415,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -423,7 +423,7 @@
 					<td align="left" valign="top">toggle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">fade</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The toggle property (either 'explode' or 'fade')</td>

 				</tr>

@@ -431,7 +431,7 @@
 					<td align="left" valign="top">toggleDuration</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">150</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Toggle duration in milliseconds</td>

 				</tr>

@@ -439,7 +439,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -447,7 +447,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -455,7 +455,7 @@
 					<td align="left" valign="top">treeCollapsedTopic</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The treeCollapsedTopic property.</td>

 				</tr>

@@ -463,7 +463,7 @@
 					<td align="left" valign="top">treeExpandedTopic</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The treeExpandedTopic property.</td>

 				</tr>

@@ -471,7 +471,7 @@
 					<td align="left" valign="top">treeSelectedTopic</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The treeSelectedTopic property</td>

 				</tr>

@@ -479,7 +479,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/treenode.html b/core/src/site/resources/tags/treenode.html
index 04d7fb3..621a752 100644
--- a/core/src/site/resources/tags/treenode.html
+++ b/core/src/site/resources/tags/treenode.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -47,15 +47,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -71,7 +71,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -79,7 +79,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering tree node label.</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">openTemplate</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set template to use for opening the rendered html.</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/updownselect.html b/core/src/site/resources/tags/updownselect.html
index 45a2afd..9a5ea8b 100644
--- a/core/src/site/resources/tags/updownselect.html
+++ b/core/src/site/resources/tags/updownselect.html
@@ -31,7 +31,7 @@
 					<td align="left" valign="top">accesskey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

@@ -39,7 +39,7 @@
 					<td align="left" valign="top">allowMoveDown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Whether move down button should be displayed</td>

 				</tr>

@@ -47,7 +47,7 @@
 					<td align="left" valign="top">allowMoveUp</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Whether move up button should be displayed</td>

 				</tr>

@@ -55,7 +55,7 @@
 					<td align="left" valign="top">allowSelectAll</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Whether or not select all button should be displayed</td>

 				</tr>

@@ -63,7 +63,7 @@
 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The css class to use for element</td>

 				</tr>

@@ -71,15 +71,15 @@
 					<td align="left" valign="top">cssStyle</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

+					<td align="left" valign="top">The css style definitions for element to use</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

@@ -87,7 +87,7 @@
 					<td align="left" valign="top">emptyOption</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Whether or not to add an empty (--) option after the header option</td>

 				</tr>

@@ -95,7 +95,7 @@
 					<td align="left" valign="top">headerKey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Key for first item in list. Must not be empty! '-1' and '' is correct, '' is bad.</td>

 				</tr>

@@ -103,7 +103,7 @@
 					<td align="left" valign="top">headerValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Value expression for first item in list</td>

 				</tr>

@@ -111,7 +111,7 @@
 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -119,7 +119,7 @@
 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

 				</tr>

@@ -127,7 +127,7 @@
 					<td align="left" valign="top">label</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

 				</tr>

@@ -135,7 +135,7 @@
 					<td align="left" valign="top">labelposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

@@ -143,7 +143,7 @@
 					<td align="left" valign="top">list</td>

 					<td align="left" valign="top"><strong>true</strong></td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.</td>

 				</tr>

@@ -151,7 +151,7 @@
 					<td align="left" valign="top">listKey</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Property of list objects to get field value from</td>

 				</tr>

@@ -159,7 +159,7 @@
 					<td align="left" valign="top">listValue</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Property of list objects to get field content from</td>

 				</tr>

@@ -167,7 +167,7 @@
 					<td align="left" valign="top">moveDownLabel</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">v</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Text to display on the move down button</td>

 				</tr>

@@ -175,7 +175,7 @@
 					<td align="left" valign="top">moveUpLabel</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">^</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Text to display on the move up button</td>

 				</tr>

@@ -183,7 +183,7 @@
 					<td align="left" valign="top">multiple</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top"> Creates a multiple select. The tag will pre-select multiple values if the values are passed as an Array (of appropriate types) via the value attribute. Passing a Collection may work too? Haven't tested this.</td>

 				</tr>

@@ -191,7 +191,7 @@
 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

@@ -199,7 +199,7 @@
 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

 				</tr>

@@ -207,7 +207,7 @@
 					<td align="left" valign="top">onchange</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

 				</tr>

@@ -215,7 +215,7 @@
 					<td align="left" valign="top">onclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

 				</tr>

@@ -223,7 +223,7 @@
 					<td align="left" valign="top">ondblclick</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

 				</tr>

@@ -231,7 +231,7 @@
 					<td align="left" valign="top">onfocus</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

 				</tr>

@@ -239,7 +239,7 @@
 					<td align="left" valign="top">onkeydown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

 				</tr>

@@ -247,7 +247,7 @@
 					<td align="left" valign="top">onkeypress</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

 				</tr>

@@ -255,7 +255,7 @@
 					<td align="left" valign="top">onkeyup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

 				</tr>

@@ -263,7 +263,7 @@
 					<td align="left" valign="top">onmousedown</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

 				</tr>

@@ -271,7 +271,7 @@
 					<td align="left" valign="top">onmousemove</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

 				</tr>

@@ -279,7 +279,7 @@
 					<td align="left" valign="top">onmouseout</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

 				</tr>

@@ -287,7 +287,7 @@
 					<td align="left" valign="top">onmouseover</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

 				</tr>

@@ -295,7 +295,7 @@
 					<td align="left" valign="top">onmouseup</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

 				</tr>

@@ -303,7 +303,7 @@
 					<td align="left" valign="top">onselect</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

@@ -311,7 +311,7 @@
 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

 				</tr>

@@ -319,7 +319,7 @@
 					<td align="left" valign="top">requiredposition</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

@@ -327,7 +327,7 @@
 					<td align="left" valign="top">selectAllLabel</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">*</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Text to display on the select all button</td>

 				</tr>

@@ -335,7 +335,7 @@
 					<td align="left" valign="top">size</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Integer</td>

 					<td align="left" valign="top">Size of the element box (# of elements to show)</td>

 				</tr>

@@ -343,7 +343,7 @@
 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

@@ -351,7 +351,7 @@
 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

 				</tr>

@@ -359,7 +359,7 @@
 					<td align="left" valign="top">templateDir</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The template directory.</td>

 				</tr>

@@ -367,7 +367,7 @@
 					<td align="left" valign="top">theme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

 				</tr>

@@ -375,7 +375,7 @@
 					<td align="left" valign="top">title</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

 				</tr>

@@ -383,7 +383,7 @@
 					<td align="left" valign="top">tooltip</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip of this particular component</td>

 				</tr>

@@ -391,7 +391,7 @@
 					<td align="left" valign="top">tooltipConfig</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

@@ -399,7 +399,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Preset the value of input element.</td>

 				</tr>

diff --git a/core/src/site/resources/tags/url.html b/core/src/site/resources/tags/url.html
index 7e5e02e..dbb0a61 100644
--- a/core/src/site/resources/tags/url.html
+++ b/core/src/site/resources/tags/url.html
@@ -31,15 +31,15 @@
 					<td align="left" valign="top">action</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">he action generate url for, if not using value</td>

+					<td align="left" valign="top">The action to generate the URL for, if not using value</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">anchor</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The anchor for this URL</td>

 				</tr>

@@ -47,15 +47,31 @@
 					<td align="left" valign="top">encode</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

 					<td align="left" valign="top">Whether to encode parameters</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">escapeAmp</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">Boolean</td>

+					<td align="left" valign="top">Specifies whether to escape ampersand (&amp;) to (&amp;amp;) or not</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">forceAddSchemeHostAndPort</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">Boolean</td>

+					<td align="left" valign="top">Specifies whether to force the addition of scheme, host and port or not</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

@@ -63,15 +79,15 @@
 					<td align="left" valign="top">includeContext</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">Whether actual context should be included in url</td>

+					<td align="left" valign="top">Whether actual context should be included in URL</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">includeParams</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">get</td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The includeParams attribute may have the value 'none', 'get' or 'all'</td>

 				</tr>

@@ -79,7 +95,7 @@
 					<td align="left" valign="top">method</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The method of action to use</td>

 				</tr>

@@ -87,7 +103,7 @@
 					<td align="left" valign="top">namespace</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The namespace to use</td>

 				</tr>

@@ -95,7 +111,7 @@
 					<td align="left" valign="top">portletMode</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The resulting portlet mode</td>

 				</tr>

@@ -103,15 +119,15 @@
 					<td align="left" valign="top">portletUrlType</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Specifies if this should be a portlet render or action url</td>

+					<td align="left" valign="top">Specifies if this should be a portlet render or action URL. Default is "render". To create an action URL, use "action".</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">scheme</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">Set scheme attribute</td>

 				</tr>

@@ -119,7 +135,7 @@
 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The target value to use, if not using action</td>

 				</tr>

@@ -127,7 +143,7 @@
 					<td align="left" valign="top">windowState</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">String</td>

 					<td align="left" valign="top">The resulting portlet window state</td>

 				</tr>

diff --git a/api/src/main/java/org/apache/struts2/Validatable.java b/core/src/test/java/org/apache/struts2/SomeEnum.java
similarity index 68%
rename from api/src/main/java/org/apache/struts2/Validatable.java
rename to core/src/test/java/org/apache/struts2/SomeEnum.java
index 1d59ddd..35653bc 100644
--- a/api/src/main/java/org/apache/struts2/Validatable.java
+++ b/core/src/test/java/org/apache/struts2/SomeEnum.java
@@ -1,5 +1,5 @@
 /*
- * $Id$
+ * $Id: RequestUtils.java 471717 2006-11-06 12:50:18Z husted $
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -20,18 +20,21 @@
  */
 package org.apache.struts2;
 
-import org.apache.struts2.MessageAware;
+public enum SomeEnum {
+	
+	INIT("init"), COMPLETED("completed");
+	
+	private String displayName;
 
-/**
- * Implemented by actions which wish to execute some validation logic before their action method. Useful for
- * cross-field validations.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface Validatable extends MessageAware {
+	SomeEnum(String displayName) {
+		this.displayName = displayName;
+	}
 
-    /**
-     * Validates input. Executes before action method.
-     */
-    public void validate();
-}
+	public String getName() {
+		return name();
+	}
+
+	public String getDisplayName() {
+		return displayName;
+	}
+}
\ No newline at end of file
diff --git a/core/src/test/java/org/apache/struts2/TestAction.java b/core/src/test/java/org/apache/struts2/TestAction.java
index c672c44..e09e477 100644
--- a/core/src/test/java/org/apache/struts2/TestAction.java
+++ b/core/src/test/java/org/apache/struts2/TestAction.java
@@ -20,6 +20,7 @@
  */
 package org.apache.struts2;
 
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
@@ -40,12 +41,14 @@
     private Collection collection2;
     private Map map;
     private String foo;
+
     private String result;
     private User user;
     private String[] array;
     private String[][] list;
     private List list2;
     private List list3;
+    private SomeEnum status = SomeEnum.COMPLETED;
 
     public Collection getCollection() {
         return collection;
@@ -61,7 +64,7 @@
 
     public void setMap(Map map) {
         this.map = map;
-    }
+    }private Integer fooInt;
 
     public String getFoo() {
         return foo;
@@ -127,6 +130,14 @@
         this.collection2 = collection;
     }
 
+    public Integer getFooInt() {
+        return fooInt;
+    }
+
+    public void setFooInt(Integer fooInt) {
+        this.fooInt = fooInt;
+    }
+    
     public String execute() throws Exception {
         if (result == null) {
             result = Action.SUCCESS;
@@ -139,4 +150,16 @@
         return INPUT;
     }
 
+	public SomeEnum getStatus() {
+		return status;
+	}
+
+	public void setStatus(SomeEnum status) {
+		this.status = status;
+	}
+    
+    public List<SomeEnum> getStatusList() {
+    	return Arrays.asList(SomeEnum.values());
+    }
+
 }
diff --git a/core/src/test/java/org/apache/struts2/components/URLTest.java b/core/src/test/java/org/apache/struts2/components/URLTest.java
new file mode 100644
index 0000000..6c79400
--- /dev/null
+++ b/core/src/test/java/org/apache/struts2/components/URLTest.java
@@ -0,0 +1,77 @@
+/*

+ * $Id: pom.xml 560558 2007-07-28 15:47:10Z apetrelli $

+ *

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you 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.

+ */

+package org.apache.struts2.components;

+

+import java.util.HashMap;

+import java.util.Map;

+

+import org.apache.struts2.views.jsp.AbstractTagTest;

+

+/**

+ * Verifies correct operation of parameter merging.

+ * 

+ * Contributed by: Daniel Uribe

+ */

+public class URLTest extends AbstractTagTest {

+    public void testIncludeGetDuplicateRequestParams() throws Exception {

+        String body = "";

+

+        Map parameterMap = new HashMap();

+        parameterMap.put("param", new String[] { "1", "2", "3" });

+

+        request.setQueryString("param=1&param=2&param=3");

+        request.setScheme("http");

+        request.setParameterMap(parameterMap);

+        URL url = new URL(stack, request, response);

+        url.setIncludeParams(URL.GET);

+        url.setIncludeContext(false);

+        url.setValue("myAction.action");

+        url.setNamespace("");

+

+        url.start(writer);

+        url.end(writer, body);

+

+        assertEquals("myAction.action?param=1&amp;param=2&amp;param=3",

+            writer.toString());

+    }

+

+    public void testIncludeAllDuplicateRequestParams() throws Exception {

+        String body = "";

+

+        Map parameterMap = new HashMap();

+        parameterMap.put("param", new String[] { "1", "2", "3" });

+

+        request.setQueryString("param=1&param=2&param=3");

+        request.setScheme("http");

+        request.setParameterMap(parameterMap);

+        URL url = new URL(stack, request, response);

+        url.setIncludeParams(URL.ALL);

+        url.setIncludeContext(false);

+        url.setValue("myAction.action");

+        url.setNamespace("");

+

+        url.start(writer);

+        url.end(writer, body);

+

+        assertEquals("myAction.action?param=1&amp;param=2&amp;param=3",

+            writer.toString());

+    }

+}

diff --git a/core/src/test/java/org/apache/struts2/components/template/BaseTemplateEngineTest.java b/core/src/test/java/org/apache/struts2/components/template/BaseTemplateEngineTest.java
index cc3b2e5..8c98a6f 100644
--- a/core/src/test/java/org/apache/struts2/components/template/BaseTemplateEngineTest.java
+++ b/core/src/test/java/org/apache/struts2/components/template/BaseTemplateEngineTest.java
@@ -34,7 +34,7 @@
 public void testGetThemePropsThroughFileSystem() throws Exception {
 
         URL dummyResourceUrl = getClass().getResource("dummy.properties");
-        File dummyResourceFile = new File(dummyResourceUrl.getFile());
+        File dummyResourceFile = new File(dummyResourceUrl.getFile().replaceAll("%20", " "));
         String themePropertiesDir = dummyResourceFile.getParent();
 
         System.out.println("dummy resource url="+dummyResourceUrl);
diff --git a/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java b/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java
index 1861b97..1ccbb99 100644
--- a/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java
+++ b/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java
@@ -21,8 +21,11 @@
 package org.apache.struts2.dispatcher;
 
 import java.io.IOException;
+import java.io.InputStream;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.List;
+import java.net.URL;
 
 import javax.servlet.FilterConfig;
 import javax.servlet.ServletContext;
@@ -177,6 +180,37 @@
         assertTrue(_dispatcher.serviceRequest);
     }
 
+    public void testFindAndCheckResourcesWithDojoJs() throws Exception  {
+        FilterDispatcher filterDispatcher = new FilterDispatcher();
+        filterDispatcher.pathPrefixes = filterDispatcher.parse(FilterDispatcher.DEFAULT_STATIC_PACKAGES);
+        List<URL> result = filterDispatcher.findAndCheckResources("/struts/dojo/dojo.js");
+        assertTrue(result.size()>=1);
+        for (URL url : result) {
+            try {
+                InputStream is = url.openStream();
+                is.close();
+            } catch (IOException e) {
+                fail("Resource could not be opened");
+            }
+
+        }
+    }
+
+    public void testFindAndCheckResourcesWithValidationClientJs() throws Exception  {
+        FilterDispatcher filterDispatcher = new FilterDispatcher();
+        filterDispatcher.pathPrefixes = filterDispatcher.parse(FilterDispatcher.DEFAULT_STATIC_PACKAGES);
+        List<URL> result = filterDispatcher.findAndCheckResources("/struts/validationClient.js");
+        assertTrue(result.size()>=1);
+        for (URL url : result) {
+            try {
+                InputStream is = url.openStream();
+                is.close();
+            } catch (IOException e) {
+                fail("Resource could not be opened");
+            }
+
+        }
+    }
 
     // === inner class ========
     public static class InnerObjectFactory extends ObjectFactory {
diff --git a/core/src/test/java/org/apache/struts2/dispatcher/HttpHeaderResultTest.java b/core/src/test/java/org/apache/struts2/dispatcher/HttpHeaderResultTest.java
index ffe64fd..e71fa63 100644
--- a/core/src/test/java/org/apache/struts2/dispatcher/HttpHeaderResultTest.java
+++ b/core/src/test/java/org/apache/struts2/dispatcher/HttpHeaderResultTest.java
@@ -33,6 +33,8 @@
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.util.OgnlUtil;
+import com.opensymphony.xwork2.util.XWorkConverter;
+import com.opensymphony.xwork2.util.ObjectTypeDeterminerFactory;
 
 
 /**
@@ -54,8 +56,8 @@
 
         Map values = new HashMap();
         values.put("bar", "abc");
-        ActionContext.getContext().getValueStack().push(values);
 
+        ActionContext.getContext().getValueStack().push(values);
         OgnlUtil.setProperties(params, result);
 
         responseMock.expect("addHeader", C.args(C.eq("foo"), C.eq("${bar}")));
@@ -72,8 +74,8 @@
 
         Map values = new HashMap();
         values.put("bar", "abc");
-        ActionContext.getContext().getValueStack().push(values);
 
+        ActionContext.getContext().getValueStack().push(values);
         OgnlUtil.setProperties(params, result);
 
         responseMock.expect("addHeader", C.args(C.eq("foo"), C.eq("abc")));
@@ -96,11 +98,14 @@
         response = (HttpServletResponse) responseMock.proxy();
         invocation = (ActionInvocation) new Mock(ActionInvocation.class).proxy();
         ServletActionContext.setResponse(response);
+
+        XWorkConverter.getInstance().setObjectTypeDeterminer(ObjectTypeDeterminerFactory.getInstance());
     }
 
     protected void tearDown() throws Exception {
         super.tearDown();
         ServletActionContext.setResponse(null);
         ActionContext.setContext(null);
+        XWorkConverter.resetInstance();
     }
 }
diff --git a/core/src/test/java/org/apache/struts2/dispatcher/ServletActionRedirectResultTest.java b/core/src/test/java/org/apache/struts2/dispatcher/ServletActionRedirectResultTest.java
index 9fea597..79cdb2e 100644
--- a/core/src/test/java/org/apache/struts2/dispatcher/ServletActionRedirectResultTest.java
+++ b/core/src/test/java/org/apache/struts2/dispatcher/ServletActionRedirectResultTest.java
@@ -102,7 +102,7 @@
         control.replay();
         result.setActionMapper(container.getInstance(ActionMapper.class));
         result.execute(mockInvocation);
-        assertEquals("/myNamespace/myAction.action?param2=value+2&param1=value+1&param3=value+3", res.getRedirectedUrl());
+        assertEquals("/myNamespace/myAction.action?param1=value+1&param2=value+2&param3=value+3", res.getRedirectedUrl());
 
         control.verify();
     }
@@ -156,7 +156,7 @@
         control.replay();
         result.setActionMapper(container.getInstance(ActionMapper.class));
         result.execute(mockInvocation);
-        assertEquals("/myNamespace/myAction.action?param2=value+2&param1=value+1&param3=value+3", res.getRedirectedUrl());
+        assertEquals("/myNamespace/myAction.action?param1=value+1&param2=value+2&param3=value+3", res.getRedirectedUrl());
 
         control.verify();
     }
diff --git a/core/src/test/java/org/apache/struts2/dispatcher/ServletRedirectResultTest.java b/core/src/test/java/org/apache/struts2/dispatcher/ServletRedirectResultTest.java
index 0c9af62..63cfdf0 100644
--- a/core/src/test/java/org/apache/struts2/dispatcher/ServletRedirectResultTest.java
+++ b/core/src/test/java/org/apache/struts2/dispatcher/ServletRedirectResultTest.java
@@ -97,6 +97,20 @@
         requestMock.verify();
         responseMock.verify();
     }
+    
+    public void testMultipleParametersRedirect() throws Exception {
+        view.setLocation("foo.jsp?foo=bar&amp;baz=jim");
+        requestMock.expectAndReturn("getParameterMap", new HashMap());
+        requestMock.expectAndReturn("getServletPath", "/namespace/some.action");
+        requestMock.expectAndReturn("getAttribute", C.ANY_ARGS, null);
+        responseMock.expectAndReturn("encodeRedirectURL", "/context/namespace/foo.jsp?foo=bar&amp;baz=jim", "/context/namespace/foo.jsp?foo=bar&baz=jim");
+        responseMock.expect("sendRedirect", C.args(C.eq("/context/namespace/foo.jsp?foo=bar&baz=jim")));
+
+        view.execute(ai);
+
+        requestMock.verify();
+        responseMock.verify();
+    }
 
     protected void setUp() throws Exception {
         super.setUp();
diff --git a/core/src/test/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapperTest.java b/core/src/test/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapperTest.java
index 0c3f581..d62a81c 100644
--- a/core/src/test/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapperTest.java
+++ b/core/src/test/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapperTest.java
@@ -211,6 +211,22 @@
         assertEquals("actionName", mapping.getName());
         assertNull(mapping.getMethod());
     }
+    
+    public void testGetMappingWithNoExtensionButUriHasExtension() throws Exception {
+        req.setupGetParameterMap(new HashMap());
+        req.setupGetRequestURI("/my/namespace/actionName.html");
+        req.setupGetServletPath("/my/namespace/actionName.html");
+        req.setupGetAttribute(null);
+        req.addExpectedGetAttributeName("javax.servlet.include.servlet_path");
+
+        DefaultActionMapper mapper = new DefaultActionMapper();
+        mapper.setExtensions("");
+        ActionMapping mapping = mapper.getMapping(req, configManager);
+
+        assertEquals("/my/namespace", mapping.getNamespace());
+        assertEquals("actionName.html", mapping.getName());
+        assertNull(mapping.getMethod());
+    }
 
     // =============================
     // === test name & namespace ===
diff --git a/core/src/test/java/org/apache/struts2/dispatcher/mapper/Restful2ActionMapperTest.java b/core/src/test/java/org/apache/struts2/dispatcher/mapper/Restful2ActionMapperTest.java
index 2d1b405..26f94e7 100644
--- a/core/src/test/java/org/apache/struts2/dispatcher/mapper/Restful2ActionMapperTest.java
+++ b/core/src/test/java/org/apache/struts2/dispatcher/mapper/Restful2ActionMapperTest.java
@@ -88,9 +88,26 @@
         assertEquals("1", mapping.getParams().get("bar"));
     }
 
-    public void testPutCreate() throws Exception {
-        req.setupGetRequestURI("/my/namespace/foo/");
-        req.setupGetServletPath("/my/namespace/foo/");
+    public void testPostCreate() throws Exception {
+        req.setupGetRequestURI("/my/namespace/bar/1/foo/");
+        req.setupGetServletPath("/my/namespace/bar/1/foo/");
+        req.setupGetAttribute(null);
+        req.addExpectedGetAttributeName("javax.servlet.include.servlet_path");
+        req.setupGetMethod("POST");
+
+        ActionMapping mapping = mapper.getMapping(req, configManager);
+
+        assertEquals("/my/namespace", mapping.getNamespace());
+        assertEquals("foo/", mapping.getName());
+        assertEquals("create", mapping.getMethod());
+        assertEquals(1, mapping.getParams().size());
+        assertEquals("1", mapping.getParams().get("bar"));
+    }
+ 
+    public void testPutUpdate() throws Exception {
+
+        req.setupGetRequestURI("/my/namespace/bar/1/foo/2");
+        req.setupGetServletPath("/my/namespace/bar/1/foo/2");
         req.setupGetAttribute(null);
         req.addExpectedGetAttributeName("javax.servlet.include.servlet_path");
         req.setupGetMethod("PUT");
@@ -98,7 +115,84 @@
         ActionMapping mapping = mapper.getMapping(req, configManager);
 
         assertEquals("/my/namespace", mapping.getNamespace());
-        assertEquals("foo/", mapping.getName());
-        assertEquals("create", mapping.getMethod());
+        assertEquals("foo/2", mapping.getName());
+        assertEquals("update", mapping.getMethod());
+        assertEquals(1, mapping.getParams().size());
+        assertEquals("1", mapping.getParams().get("bar"));
+    }
+    
+    public void testPutUpdateWithIdParam() throws Exception {
+
+        mapper.setIdParameterName("id");
+        req.setupGetRequestURI("/my/namespace/bar/1/foo/2");
+        req.setupGetServletPath("/my/namespace/bar/1/foo/2");
+        req.setupGetAttribute(null);
+        req.addExpectedGetAttributeName("javax.servlet.include.servlet_path");
+        req.setupGetMethod("PUT");
+
+        ActionMapping mapping = mapper.getMapping(req, configManager);
+
+        assertEquals("/my/namespace", mapping.getNamespace());
+        assertEquals("foo", mapping.getName());
+        assertEquals("update", mapping.getMethod());
+        assertEquals(2, mapping.getParams().size());
+        assertEquals("1", mapping.getParams().get("bar"));
+        assertEquals("2", mapping.getParams().get("id"));
+        
+    }
+
+    public void testPutUpdateWithFakePut() throws Exception {
+
+        req.setupGetRequestURI("/my/namespace/bar/1/foo/2");
+        req.setupGetServletPath("/my/namespace/bar/1/foo/2");
+        req.setupAddParameter(Restful2ActionMapper.HTTP_METHOD_PARAM, "put");
+        req.setupAddParameter(Restful2ActionMapper.HTTP_METHOD_PARAM, "put");
+        req.setupGetAttribute(null);
+        req.addExpectedGetAttributeName("javax.servlet.include.servlet_path");
+        req.setupGetMethod("POST");
+
+        ActionMapping mapping = mapper.getMapping(req, configManager);
+
+        assertEquals("/my/namespace", mapping.getNamespace());
+        assertEquals("foo/2", mapping.getName());
+        assertEquals("update", mapping.getMethod());
+        assertEquals(1, mapping.getParams().size());
+        assertEquals("1", mapping.getParams().get("bar"));
+    }
+
+    public void testDeleteRemove() throws Exception {
+
+        req.setupGetRequestURI("/my/namespace/bar/1/foo/2");
+        req.setupGetServletPath("/my/namespace/bar/1/foo/2");
+        req.setupGetAttribute(null);
+        req.addExpectedGetAttributeName("javax.servlet.include.servlet_path");
+        req.setupGetMethod("DELETE");
+
+        ActionMapping mapping = mapper.getMapping(req, configManager);
+
+        assertEquals("/my/namespace", mapping.getNamespace());
+        assertEquals("foo/2", mapping.getName());
+        assertEquals("remove", mapping.getMethod());
+        assertEquals(1, mapping.getParams().size());
+        assertEquals("1", mapping.getParams().get("bar"));
+    }
+
+    public void testDeleteRemoveWithFakeDelete() throws Exception {
+
+        req.setupGetRequestURI("/my/namespace/bar/1/foo/2");
+        req.setupGetServletPath("/my/namespace/bar/1/foo/2");
+        req.setupAddParameter(Restful2ActionMapper.HTTP_METHOD_PARAM, "DELETE");
+        req.setupAddParameter(Restful2ActionMapper.HTTP_METHOD_PARAM, "DELETE");
+        req.setupGetAttribute(null);
+        req.addExpectedGetAttributeName("javax.servlet.include.servlet_path");
+        req.setupGetMethod("POST");
+
+        ActionMapping mapping = mapper.getMapping(req, configManager);
+
+        assertEquals("/my/namespace", mapping.getNamespace());
+        assertEquals("foo/2", mapping.getName());
+        assertEquals("remove", mapping.getMethod());
+        assertEquals(1, mapping.getParams().size());
+        assertEquals("1", mapping.getParams().get("bar"));
     }
 }
diff --git a/core/src/test/java/org/apache/struts2/impl/MessagesTest.java b/core/src/test/java/org/apache/struts2/impl/MessagesTest.java
deleted file mode 100644
index fe4f9d8..0000000
--- a/core/src/test/java/org/apache/struts2/impl/MessagesTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-// Copyright 2006 Google Inc. All Rights Reserved.
-
-package org.apache.struts2.impl;
-
-import junit.framework.TestCase;
-
-import org.apache.struts2.Messages;
-
-public class MessagesTest extends TestCase {
-
-    public void testForField() {
-        Messages messages = new MessagesImpl();
-        Messages fieldMessages = messages.forField("foo");
-        fieldMessages.addError("foo");
-        assertFalse(fieldMessages.getErrors().isEmpty());
-        assertTrue(messages.hasErrors());
-    }
-
-    public void testHasMessagesForSeverity() {
-        for (Messages.Severity severity : Messages.Severity.values()) {
-            Messages messages = new MessagesImpl();
-            messages.add(severity, "foo");
-
-            assertFalse(messages.isEmpty(severity));
-
-            for (Messages.Severity other : Messages.Severity.values())
-                if (other != severity)
-                    assertTrue(messages.isEmpty(other));
-        }
-    }
-}
diff --git a/core/src/test/java/org/apache/struts2/impl/RequestContextTest.java b/core/src/test/java/org/apache/struts2/impl/RequestContextTest.java
deleted file mode 100644
index 4ac9393..0000000
--- a/core/src/test/java/org/apache/struts2/impl/RequestContextTest.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-// Copyright 2006 Google Inc. All Rights Reserved.
-
-package org.apache.struts2.impl;
-
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.concurrent.Callable;
-
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-
-import junit.framework.TestCase;
-
-import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.ActionInvocation;
-
-public class RequestContextTest extends TestCase {
-
-    public void testFindCookiesForName() {
-        final HttpServletRequest servletRequest = createMock(HttpServletRequest.class);
-        Cookie one = new Cookie("foo", "one");
-        Cookie two = new Cookie("foo", "two");
-        Cookie three = new Cookie("bar", "three");
-        Cookie[] cookies = { one, two, three };
-        expect(servletRequest.getCookies()).andReturn(cookies);
-
-        replay(servletRequest);
-
-        RequestContextImpl requestContext = new RequestContextImpl(null) {
-            public HttpServletRequest getServletRequest() {
-                return servletRequest;
-            }
-        };
-
-        List<Cookie> fooCookies = Arrays.asList(one, two);
-        assertEquals(fooCookies, requestContext.findCookiesForName("foo"));
-    }
-
-    public void testInitialCallInContext() throws Exception {
-        final ActionInvocation invocation = createMock(ActionInvocation.class);
-        final ActionContext actionContext = new ActionContext(new HashMap());
-        expect(invocation.getInvocationContext()).andReturn(actionContext);
-
-        final boolean[] called = new boolean[1];
-        Callable<String> callable = new Callable<String>() {
-            public String call() throws Exception {
-                RequestContextImpl requestContext = RequestContextImpl.get();
-                assertSame(actionContext, requestContext.xworkContext);
-                assertSame(invocation,
-                        ((ActionContextImpl) requestContext.getActionContext()).invocation);
-                called[0] = true;
-                return "foo";
-            }
-        };
-
-        replay(invocation);
-
-        assertEquals("foo", RequestContextImpl.callInContext(invocation, callable));
-        assertTrue(called[0]);
-        assertNull(RequestContextImpl.threadLocalRequestContext.get()[0]);
-    }
-
-    public void testNestedCallInContext() throws Exception {
-        // TODO: After we implement ActionContext.getNext(), getPrevious().
-    }
-}
-
diff --git a/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java b/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java
new file mode 100644
index 0000000..b9efb35
--- /dev/null
+++ b/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java
@@ -0,0 +1,345 @@
+/*
+ * $Id: $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+package org.apache.struts2.interceptor;
+
+import java.util.Collections;
+import java.util.Map;
+
+import javax.servlet.http.Cookie;
+
+import org.easymock.MockControl;
+import org.springframework.mock.web.MockHttpServletRequest;
+
+import org.apache.struts2.ServletActionContext;
+import org.apache.struts2.StrutsTestCase;
+import com.opensymphony.xwork2.Action;
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.ActionInvocation;
+import com.opensymphony.xwork2.ActionSupport;
+
+public class CookieInterceptorTest extends StrutsTestCase {
+
+
+    public void testIntercepDefault() throws Exception {
+        MockHttpServletRequest request = new MockHttpServletRequest();
+        request.setCookies(new Cookie[] {
+                new Cookie("cookie1", "cookie1value"),
+                new Cookie("cookie2", "cookie2value"),
+                new Cookie("cookie3", "cookie3value")
+            });
+        ServletActionContext.setRequest(request);
+
+        MockActionWithCookieAware action = new MockActionWithCookieAware();
+
+        ActionContext.getContext().getValueStack().push(action);
+
+        MockControl actionInvocationControl = MockControl.createControl(ActionInvocation.class);
+        ActionInvocation invocation = (ActionInvocation) actionInvocationControl.getMock();
+        actionInvocationControl.expectAndDefaultReturn(
+                                                       invocation.getAction(), action);
+        actionInvocationControl.expectAndDefaultReturn(
+                                                       invocation.invoke(), Action.SUCCESS);
+
+        actionInvocationControl.replay();
+
+        // by default the interceptor doesn't accept any cookies
+        CookieInterceptor interceptor = new CookieInterceptor();
+        interceptor.intercept(invocation);
+
+        assertTrue(action.getCookiesMap().isEmpty());
+        assertNull(action.getCookie1(), null);
+        assertNull(action.getCookie2(), null);
+        assertNull(action.getCookie3(), null);
+        assertNull(ActionContext.getContext().getValueStack().findValue("cookie1"));
+        assertNull(ActionContext.getContext().getValueStack().findValue("cookie2"));
+        assertNull(ActionContext.getContext().getValueStack().findValue("cookie3"));
+    }
+
+    public void testInterceptAll1() throws Exception {
+        MockHttpServletRequest request = new MockHttpServletRequest();
+        request.setCookies(new Cookie[] {
+                new Cookie("cookie1", "cookie1value"),
+                new Cookie("cookie2", "cookie2value"),
+                new Cookie("cookie3", "cookie3value")
+            });
+        ServletActionContext.setRequest(request);
+
+        MockActionWithCookieAware action = new MockActionWithCookieAware();
+
+        ActionContext.getContext().getValueStack().push(action);
+
+        MockControl actionInvocationControl = MockControl.createControl(ActionInvocation.class);
+        ActionInvocation invocation = (ActionInvocation) actionInvocationControl.getMock();
+        actionInvocationControl.expectAndDefaultReturn(
+                                                       invocation.getAction(), action);
+        actionInvocationControl.expectAndDefaultReturn(
+                                                       invocation.invoke(), Action.SUCCESS);
+
+        actionInvocationControl.replay();
+
+        CookieInterceptor interceptor = new CookieInterceptor();
+        interceptor.setCookiesName("*");
+        interceptor.setCookiesValue("*");
+        interceptor.intercept(invocation);
+
+        assertFalse(action.getCookiesMap().isEmpty());
+        assertEquals(action.getCookiesMap().size(), 3);
+        assertEquals(action.getCookiesMap().get("cookie1"), "cookie1value");
+        assertEquals(action.getCookiesMap().get("cookie2"), "cookie2value");
+        assertEquals(action.getCookiesMap().get("cookie3"), "cookie3value");
+        assertEquals(action.getCookie1(), "cookie1value");
+        assertEquals(action.getCookie2(), "cookie2value");
+        assertEquals(action.getCookie3(), "cookie3value");
+        assertEquals(ActionContext.getContext().getValueStack().findValue("cookie1"), "cookie1value");
+        assertEquals(ActionContext.getContext().getValueStack().findValue("cookie2"), "cookie2value");
+        assertEquals(ActionContext.getContext().getValueStack().findValue("cookie3"), "cookie3value");
+    }
+
+
+    public void testInterceptAll2() throws Exception {
+        MockHttpServletRequest request = new MockHttpServletRequest();
+        request.setCookies(new Cookie[] {
+                new Cookie("cookie1", "cookie1value"),
+                new Cookie("cookie2", "cookie2value"),
+                new Cookie("cookie3", "cookie3value")
+            });
+        ServletActionContext.setRequest(request);
+
+        MockActionWithCookieAware action = new MockActionWithCookieAware();
+
+        ActionContext.getContext().getValueStack().push(action);
+
+        MockControl actionInvocationControl = MockControl.createControl(ActionInvocation.class);
+        ActionInvocation invocation = (ActionInvocation) actionInvocationControl.getMock();
+        actionInvocationControl.expectAndDefaultReturn(
+                                                       invocation.getAction(), action);
+        actionInvocationControl.expectAndDefaultReturn(
+                                                       invocation.invoke(), Action.SUCCESS);
+
+        actionInvocationControl.replay();
+
+        CookieInterceptor interceptor = new CookieInterceptor();
+        interceptor.setCookiesName("cookie1, cookie2, cookie3");
+        interceptor.setCookiesValue("cookie1value, cookie2value, cookie3value");
+        interceptor.intercept(invocation);
+
+        assertFalse(action.getCookiesMap().isEmpty());
+        assertEquals(action.getCookiesMap().size(), 3);
+        assertEquals(action.getCookiesMap().get("cookie1"), "cookie1value");
+        assertEquals(action.getCookiesMap().get("cookie2"), "cookie2value");
+        assertEquals(action.getCookiesMap().get("cookie3"), "cookie3value");
+        assertEquals(action.getCookie1(), "cookie1value");
+        assertEquals(action.getCookie2(), "cookie2value");
+        assertEquals(action.getCookie3(), "cookie3value");
+        assertEquals(ActionContext.getContext().getValueStack().findValue("cookie1"), "cookie1value");
+        assertEquals(ActionContext.getContext().getValueStack().findValue("cookie2"), "cookie2value");
+        assertEquals(ActionContext.getContext().getValueStack().findValue("cookie3"), "cookie3value");
+    }
+
+    public void testInterceptSelectedCookiesNameOnly1() throws Exception {
+        MockHttpServletRequest request = new MockHttpServletRequest();
+        request.setCookies(new Cookie[] {
+                new Cookie("cookie1", "cookie1value"),
+                new Cookie("cookie2", "cookie2value"),
+                new Cookie("cookie3", "cookie3value")
+            });
+        ServletActionContext.setRequest(request);
+
+        MockActionWithCookieAware action = new MockActionWithCookieAware();
+
+        ActionContext.getContext().getValueStack().push(action);
+
+        MockControl actionInvocationControl = MockControl.createControl(ActionInvocation.class);
+        ActionInvocation invocation = (ActionInvocation) actionInvocationControl.getMock();
+        actionInvocationControl.expectAndDefaultReturn(
+                                                       invocation.getAction(), action);
+        actionInvocationControl.expectAndDefaultReturn(
+                                                       invocation.invoke(), Action.SUCCESS);
+
+        actionInvocationControl.replay();
+
+        CookieInterceptor interceptor = new CookieInterceptor();
+        interceptor.setCookiesName("cookie1, cookie3");
+        interceptor.setCookiesValue("cookie1value, cookie2value, cookie3value");
+        interceptor.intercept(invocation);
+
+        assertFalse(action.getCookiesMap().isEmpty());
+        assertEquals(action.getCookiesMap().size(), 2);
+        assertEquals(action.getCookiesMap().get("cookie1"), "cookie1value");
+        assertEquals(action.getCookiesMap().get("cookie2"), null);
+        assertEquals(action.getCookiesMap().get("cookie3"), "cookie3value");
+        assertEquals(action.getCookie1(), "cookie1value");
+        assertEquals(action.getCookie2(), null);
+        assertEquals(action.getCookie3(), "cookie3value");
+        assertEquals(ActionContext.getContext().getValueStack().findValue("cookie1"), "cookie1value");
+        assertEquals(ActionContext.getContext().getValueStack().findValue("cookie2"), null);
+        assertEquals(ActionContext.getContext().getValueStack().findValue("cookie3"), "cookie3value");
+    }
+
+    public void testInterceptSelectedCookiesNameOnly2() throws Exception {
+        MockHttpServletRequest request = new MockHttpServletRequest();
+        request.setCookies(new Cookie[] {
+                new Cookie("cookie1", "cookie1value"),
+                new Cookie("cookie2", "cookie2value"),
+                new Cookie("cookie3", "cookie3value")
+            });
+        ServletActionContext.setRequest(request);
+
+        MockActionWithCookieAware action = new MockActionWithCookieAware();
+
+        ActionContext.getContext().getValueStack().push(action);
+
+        MockControl actionInvocationControl = MockControl.createControl(ActionInvocation.class);
+        ActionInvocation invocation = (ActionInvocation) actionInvocationControl.getMock();
+        actionInvocationControl.expectAndDefaultReturn(
+                                                       invocation.getAction(), action);
+        actionInvocationControl.expectAndDefaultReturn(
+                                                       invocation.invoke(), Action.SUCCESS);
+
+        actionInvocationControl.replay();
+
+        CookieInterceptor interceptor = new CookieInterceptor();
+        interceptor.setCookiesName("cookie1, cookie3");
+        interceptor.setCookiesValue("*");
+        interceptor.intercept(invocation);
+
+        assertFalse(action.getCookiesMap().isEmpty());
+        assertEquals(action.getCookiesMap().size(), 2);
+        assertEquals(action.getCookiesMap().get("cookie1"), "cookie1value");
+        assertEquals(action.getCookiesMap().get("cookie2"), null);
+        assertEquals(action.getCookiesMap().get("cookie3"), "cookie3value");
+        assertEquals(action.getCookie1(), "cookie1value");
+        assertEquals(action.getCookie2(), null);
+        assertEquals(action.getCookie3(), "cookie3value");
+        assertEquals(ActionContext.getContext().getValueStack().findValue("cookie1"), "cookie1value");
+        assertEquals(ActionContext.getContext().getValueStack().findValue("cookie2"), null);
+        assertEquals(ActionContext.getContext().getValueStack().findValue("cookie3"), "cookie3value");
+    }
+
+    public void testInterceptSelectedCookiesNameOnly3() throws Exception {
+        MockHttpServletRequest request = new MockHttpServletRequest();
+        request.setCookies(new Cookie[] {
+                new Cookie("cookie1", "cookie1value"),
+                new Cookie("cookie2", "cookie2value"),
+                new Cookie("cookie3", "cookie3value")
+            });
+        ServletActionContext.setRequest(request);
+
+        MockActionWithCookieAware action = new MockActionWithCookieAware();
+
+        ActionContext.getContext().getValueStack().push(action);
+
+        MockControl actionInvocationControl = MockControl.createControl(ActionInvocation.class);
+        ActionInvocation invocation = (ActionInvocation) actionInvocationControl.getMock();
+        actionInvocationControl.expectAndDefaultReturn(
+                                                       invocation.getAction(), action);
+        actionInvocationControl.expectAndDefaultReturn(
+                                                       invocation.invoke(), Action.SUCCESS);
+
+        actionInvocationControl.replay();
+
+        CookieInterceptor interceptor = new CookieInterceptor();
+        interceptor.setCookiesName("cookie1, cookie3");
+        interceptor.setCookiesValue("");
+        interceptor.intercept(invocation);
+
+        assertFalse(action.getCookiesMap().isEmpty());
+        assertEquals(action.getCookiesMap().size(), 2);
+        assertEquals(action.getCookiesMap().get("cookie1"), "cookie1value");
+        assertEquals(action.getCookiesMap().get("cookie2"), null);
+        assertEquals(action.getCookiesMap().get("cookie3"), "cookie3value");
+        assertEquals(action.getCookie1(), "cookie1value");
+        assertEquals(action.getCookie2(), null);
+        assertEquals(action.getCookie3(), "cookie3value");
+        assertEquals(ActionContext.getContext().getValueStack().findValue("cookie1"), "cookie1value");
+        assertEquals(ActionContext.getContext().getValueStack().findValue("cookie2"), null);
+        assertEquals(ActionContext.getContext().getValueStack().findValue("cookie3"), "cookie3value");
+    }
+
+
+    public void testInterceptSelectedCookiesNameAndValue() throws Exception {
+        MockHttpServletRequest request = new MockHttpServletRequest();
+        request.setCookies(new Cookie[] {
+                new Cookie("cookie1", "cookie1value"),
+                new Cookie("cookie2", "cookie2value"),
+                new Cookie("cookie3", "cookie3value")
+            });
+        ServletActionContext.setRequest(request);
+
+        MockActionWithCookieAware action = new MockActionWithCookieAware();
+
+        ActionContext.getContext().getValueStack().push(action);
+
+        MockControl actionInvocationControl = MockControl.createControl(ActionInvocation.class);
+        ActionInvocation invocation = (ActionInvocation) actionInvocationControl.getMock();
+        actionInvocationControl.expectAndDefaultReturn(
+                                                       invocation.getAction(), action);
+        actionInvocationControl.expectAndDefaultReturn(
+                                                       invocation.invoke(), Action.SUCCESS);
+
+        actionInvocationControl.replay();
+
+        CookieInterceptor interceptor = new CookieInterceptor();
+        interceptor.setCookiesName("cookie1, cookie3");
+        interceptor.setCookiesValue("cookie1value");
+        interceptor.intercept(invocation);
+
+        assertFalse(action.getCookiesMap().isEmpty());
+        assertEquals(action.getCookiesMap().size(), 1);
+        assertEquals(action.getCookiesMap().get("cookie1"), "cookie1value");
+        assertEquals(action.getCookiesMap().get("cookie2"), null);
+        assertEquals(action.getCookiesMap().get("cookie3"), null);
+        assertEquals(action.getCookie1(), "cookie1value");
+        assertEquals(action.getCookie2(), null);
+        assertEquals(action.getCookie3(), null);
+        assertEquals(ActionContext.getContext().getValueStack().findValue("cookie1"), "cookie1value");
+        assertEquals(ActionContext.getContext().getValueStack().findValue("cookie2"), null);
+        assertEquals(ActionContext.getContext().getValueStack().findValue("cookie3"), null);
+    }
+
+
+    public static class MockActionWithCookieAware extends ActionSupport implements CookiesAware {
+
+        private static final long serialVersionUID = -6202290616812813386L;
+
+        private Map cookies = Collections.EMPTY_MAP;
+        private String cookie1;
+        private String cookie2;
+        private String cookie3;
+
+        public void setCookiesMap(Map cookies) {
+            this.cookies = cookies;
+        }
+        public Map getCookiesMap() {
+            return this.cookies;
+        }
+
+        public String getCookie1() { return cookie1; }
+        public void setCookie1(String cookie1) { this.cookie1 = cookie1; }
+
+        public String getCookie2() { return cookie2; }
+        public void setCookie2(String cookie2) { this.cookie2 = cookie2; }
+
+        public String getCookie3() { return cookie3; }
+        public void setCookie3(String cookie3) { this.cookie3 = cookie3; }
+    }
+
+}
diff --git a/core/src/test/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptorTest.java b/core/src/test/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptorTest.java
index e69d9ef..a0af7de 100644
--- a/core/src/test/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptorTest.java
+++ b/core/src/test/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptorTest.java
@@ -64,7 +64,7 @@
     private Map session;
     private ExecuteAndWaitInterceptor waitInterceptor;
 
-    public void _testOneWait() throws Exception {
+    public void testOneWait() throws Exception {
         waitInterceptor.setDelay(0);
         waitInterceptor.setDelaySleepInterval(0);
 
@@ -79,7 +79,7 @@
         assertEquals("success", result2);
     }
 
-    public void _testTwoWait() throws Exception {
+    public void testTwoWait() throws Exception {
         waitInterceptor.setDelay(0);
         waitInterceptor.setDelaySleepInterval(0);
 
@@ -100,7 +100,7 @@
         assertEquals("success", result3);
     }
 
-    public void _testOneWaitWithDelay() throws Exception {
+    public void testOneWaitWithDelay() throws Exception {
         waitInterceptor.setDelay(200);
         waitInterceptor.setDelaySleepInterval(100);
 
@@ -118,7 +118,7 @@
         assertEquals("success", result2);
     }
 
-    public void _testTwoWaitWithDelay() throws Exception {
+    public void testTwoWaitWithDelay() throws Exception {
         waitInterceptor.setDelay(100);
         waitInterceptor.setDelaySleepInterval(100);
 
@@ -154,7 +154,7 @@
         String result = proxy.execute();
         long diff = System.currentTimeMillis() - before;
         assertEquals("success", result);
-        assertTrue("Job done already after 500 so there should not be such long delay", diff <= 750);
+        assertTrue("Job done already after 500 so there should not be such long delay", diff <= 1000);
     }
 
     public void testWaitDelayAndJobAlreadyDone2() throws Exception {
@@ -166,7 +166,7 @@
         String result = proxy.execute();
         long diff = System.currentTimeMillis() - before;
         assertEquals("success", result);
-        assertTrue("Job done already after 500 so there should not be such long delay", diff <= 750);
+        assertTrue("Job done already after 500 so there should not be such long delay", diff <= 1000);
     }
 
     protected ActionProxy buildProxy(String actionName) throws Exception {
diff --git a/core/src/test/java/org/apache/struts2/interceptor/validation/AnnotationValidationInterceptorTest.java b/core/src/test/java/org/apache/struts2/interceptor/validation/AnnotationValidationInterceptorTest.java
index 05f114e..54718be 100644
--- a/core/src/test/java/org/apache/struts2/interceptor/validation/AnnotationValidationInterceptorTest.java
+++ b/core/src/test/java/org/apache/struts2/interceptor/validation/AnnotationValidationInterceptorTest.java
@@ -48,6 +48,7 @@
     public void testShouldNotSkip() throws Exception {
         mockActionProxy.expectAndReturn("getMethod", "execute");
         mockActionProxy.expectAndReturn("getActionName", "foo");
+        mockActionProxy.expectAndReturn("getMethod", "execute");
         interceptor.doIntercept((ActionInvocation)mockActionInvocation.proxy());
         mockActionProxy.verify();
     }
diff --git a/core/src/test/java/org/apache/struts2/portlet/context/PreparatorServletTest.java b/core/src/test/java/org/apache/struts2/portlet/context/PreparatorServletTest.java
deleted file mode 100644
index 6aa21eb..0000000
--- a/core/src/test/java/org/apache/struts2/portlet/context/PreparatorServletTest.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.portlet.context;
-
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.struts2.ServletActionContext;
-import org.apache.struts2.StrutsTestCase;
-import org.easymock.MockControl;
-
-/**
- *
- * Test for the {@link PreparatorServletTest}
- *
- */
-public class PreparatorServletTest extends StrutsTestCase {
-
-    /**
-     * Test that the service method stores the request, response and servlet context
-     * in the {@link com.opensymphony.xwork2.ActionContext}
-     */
-    public void testServiceHttpServletRequestHttpServletResponse() throws Exception {
-        MockControl mockRequest = MockControl.createNiceControl(HttpServletRequest.class);
-        MockControl mockResponse = MockControl.createNiceControl(HttpServletResponse.class);
-        MockControl mockContext = MockControl.createNiceControl(ServletContext.class);
-        MockControl mockConfig = MockControl.createNiceControl(ServletConfig.class);
-
-        HttpServletRequest req = (HttpServletRequest)mockRequest.getMock();
-        HttpServletResponse res = (HttpServletResponse)mockResponse.getMock();
-        ServletContext context = (ServletContext)mockContext.getMock();
-        ServletConfig config = (ServletConfig)mockConfig.getMock();
-
-        mockConfig.expectAndDefaultReturn(config.getServletContext(), context);
-        mockConfig.replay();
-
-        PreparatorServlet servlet = new PreparatorServlet();
-        servlet.init(config);
-        servlet.service(req, res);
-        assertSame(req, ServletActionContext.getRequest());
-        assertSame(res, ServletActionContext.getResponse());
-        assertSame(context, ServletActionContext.getServletContext());
-
-        mockConfig.verify();
-    }
-
-}
diff --git a/core/src/test/java/org/apache/struts2/portlet/context/ServletContextHolderListenerTest.java b/core/src/test/java/org/apache/struts2/portlet/context/ServletContextHolderListenerTest.java
deleted file mode 100644
index 23ad498..0000000
--- a/core/src/test/java/org/apache/struts2/portlet/context/ServletContextHolderListenerTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.portlet.context;
-
-import javax.servlet.ServletContext;
-import javax.servlet.ServletContextEvent;
-
-import junit.framework.TestCase;
-
-import org.easymock.MockControl;
-
-/**
- */
-public class ServletContextHolderListenerTest extends TestCase {
-
-    public void testContextInitialized() {
-        MockControl mockContext = MockControl.createNiceControl(ServletContext.class);
-        ServletContext context = (ServletContext)mockContext.getMock();
-        ServletContextEvent event = new ServletContextEvent(context);
-        ServletContextHolderListener listener = new ServletContextHolderListener();
-        listener.contextInitialized(event);
-        assertSame(ServletContextHolderListener.getServletContext(), context);
-
-        listener.contextDestroyed(event);
-        assertNull(ServletContextHolderListener.getServletContext());
-    }
-
-}
diff --git a/core/src/test/java/org/apache/struts2/portlet/dispatcher/Jsr168DispatcherTest.java b/core/src/test/java/org/apache/struts2/portlet/dispatcher/Jsr168DispatcherTest.java
index 852fc15..8595439 100644
--- a/core/src/test/java/org/apache/struts2/portlet/dispatcher/Jsr168DispatcherTest.java
+++ b/core/src/test/java/org/apache/struts2/portlet/dispatcher/Jsr168DispatcherTest.java
@@ -20,41 +20,21 @@
  */
 package org.apache.struts2.portlet.dispatcher;
 
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.ListResourceBundle;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.portlet.ActionRequest;
-import javax.portlet.ActionResponse;
-import javax.portlet.PortletConfig;
-import javax.portlet.PortletContext;
-import javax.portlet.PortletMode;
-import javax.portlet.PortletSession;
-import javax.portlet.RenderRequest;
-import javax.portlet.RenderResponse;
-import javax.portlet.WindowState;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletContextEvent;
-
-import junit.textui.TestRunner;
-
-import org.apache.struts2.StrutsConstants;
-import org.apache.struts2.dispatcher.mapper.ActionMapper;
-import org.apache.struts2.portlet.PortletActionConstants;
-import org.apache.struts2.portlet.context.ServletContextHolderListener;
-import org.jmock.Mock;
-import org.jmock.cglib.MockObjectTestCase;
-import org.jmock.core.Constraint;
-
 import com.opensymphony.xwork2.Action;
 import com.opensymphony.xwork2.ActionInvocation;
 import com.opensymphony.xwork2.ActionProxy;
 import com.opensymphony.xwork2.ActionProxyFactory;
 import com.opensymphony.xwork2.util.ValueStack;
 import com.opensymphony.xwork2.util.ValueStackFactory;
+import junit.textui.TestRunner;
+import org.apache.struts2.StrutsConstants;
+import org.apache.struts2.portlet.PortletActionConstants;
+import org.jmock.Mock;
+import org.jmock.cglib.MockObjectTestCase;
+import org.jmock.core.Constraint;
+
+import javax.portlet.*;
+import java.util.*;
 
 /**
  * Jsr168DispatcherTest. Insert description.
@@ -80,6 +60,7 @@
         mockConfig = mock(PortletConfig.class);
         mockCtx = mock(PortletContext.class);
         mockConfig.stubs().method(ANYTHING);
+        mockCtx.stubs().method(ANYTHING);
         setupStub(initParams, mockConfig, "getInitParameter");
         mockCtx.stubs().method("getAttributeNames").will(returnValue(Collections.enumeration(attributes.keySet())));
         setupStub(attributes, mockCtx, "getAttribute");
@@ -88,7 +69,6 @@
         setupStub(initParams, mockCtx, "getInitParameter");
         mockConfig.stubs().method("getInitParameterNames").will(returnValue(Collections.enumeration(initParams.keySet())));
         setupStub(initParams, mockConfig, "getInitParameter");
-
         mockConfig.stubs().method("getResourceBundle").will(returnValue(new ListResourceBundle() {
             protected Object[][] getContents() {
                 return new String[][]{{"javax.portlet.title", "MyTitle"}};
@@ -116,10 +96,7 @@
     public void testRender_ok() {
         final Mock mockResponse = mock(RenderResponse.class);
         mockResponse.stubs().method(ANYTHING);
-        final Mock servletContext = mock(ServletContext.class);
-        servletContext.stubs().method(ANYTHING);
-        ServletContextEvent event = new ServletContextEvent((ServletContext)servletContext.proxy());
-        new ServletContextHolderListener().contextInitialized(event);
+
         PortletMode mode = PortletMode.VIEW;
 
         Map requestParams = new HashMap();
@@ -170,16 +147,6 @@
         initPortletConfig(initParams, new HashMap());
         initRequest(requestParams, new HashMap(), new HashMap(), new HashMap(), PortletMode.VIEW, WindowState.NORMAL, true, null);
         setupActionFactory("/view", "testAction", "success", ValueStackFactory.getFactory().createValueStack());
-        Constraint[] paramConstraints = new Constraint[] {
-                eq(PortletActionConstants.EVENT_ACTION), same(mockActionProxy.proxy()) };
-
-        mockSession.expects(once()).method("setAttribute").with(
-                paramConstraints);
-
-        mockResponse.expects(once()).method("setRenderParameter").with(
-                new Constraint[] { eq(PortletActionConstants.EVENT_ACTION),
-                        eq("true") });
-
         //mockSession.expects(once()).method("setAttribute").with(new Constraint[]{eq(PortletActionConstants.LAST_MODE), eq(PortletMode.VIEW)});
         try {
             dispatcher
diff --git a/core/src/test/java/org/apache/struts2/portlet/interceptor/PortletAwareInterceptorTest.java b/core/src/test/java/org/apache/struts2/portlet/interceptor/PortletAwareInterceptorTest.java
new file mode 100644
index 0000000..1f62de0
--- /dev/null
+++ b/core/src/test/java/org/apache/struts2/portlet/interceptor/PortletAwareInterceptorTest.java
@@ -0,0 +1,67 @@
+/*

+ * $Id: $

+ *

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you 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.

+ */

+package org.apache.struts2.portlet.interceptor;

+

+import java.util.HashMap;

+import java.util.Map;

+

+import javax.portlet.PortletRequest;

+

+import junit.framework.TestCase;

+

+import org.apache.struts2.portlet.PortletActionConstants;

+import org.easymock.EasyMock;

+

+import com.opensymphony.xwork2.ActionContext;

+import com.opensymphony.xwork2.ActionInvocation;

+

+public class PortletAwareInterceptorTest extends TestCase implements PortletActionConstants {

+

+	private PortletAwareInterceptor interceptor;

+	

+	protected void setUp() throws Exception {

+		super.setUp();

+		interceptor = new PortletAwareInterceptor();

+	}

+	

+	protected void tearDown() throws Exception {

+		super.tearDown();

+	}

+	

+	public void testPortletRequestIsSet() throws Exception {

+		PortletRequest request = EasyMock.createMock(PortletRequest.class);

+		Map<String, Object> ctx = new HashMap<String, Object>();

+		ctx.put(REQUEST, request);

+		PortletRequestAware action = EasyMock.createMock(PortletRequestAware.class);

+		action.setPortletRequest(request);

+		

+		ActionInvocation invocation = EasyMock.createNiceMock(ActionInvocation.class);

+		EasyMock.expect(invocation.getInvocationContext()).andReturn(new ActionContext(ctx));

+		EasyMock.expect(invocation.getAction()).andReturn(action);

+		

+		EasyMock.replay(action);

+		EasyMock.replay(invocation);

+		

+		interceptor.intercept(invocation);

+		

+		EasyMock.verify(action);

+	}

+}

diff --git a/core/src/test/java/org/apache/struts2/portlet/result/PortletResultTest.java b/core/src/test/java/org/apache/struts2/portlet/result/PortletResultTest.java
index 5aa9fea..43433d7 100644
--- a/core/src/test/java/org/apache/struts2/portlet/result/PortletResultTest.java
+++ b/core/src/test/java/org/apache/struts2/portlet/result/PortletResultTest.java
@@ -46,7 +46,7 @@
  * PortletResultTest. Insert description.
  *
  */
-public class PortletResultTest extends MockObjectTestCase {
+public class PortletResultTest extends MockObjectTestCase implements PortletActionConstants {
 
     Mock mockInvocation = null;
     Mock mockConfig = null;
@@ -79,7 +79,6 @@
         Mock mockRequest = mock(RenderRequest.class);
         Mock mockResponse = mock(RenderResponse.class);
         Mock mockRd = mock(PortletRequestDispatcher.class);
-        Mock mockPrep = mock(PortletRequestDispatcher.class);
 
         RenderRequest req = (RenderRequest)mockRequest.proxy();
         RenderResponse res = (RenderResponse)mockResponse.proxy();
@@ -90,9 +89,7 @@
 
         Constraint[] params = new Constraint[]{same(req), same(res)};
         mockRd.expects(once()).method("include").with(params);
-        mockPrep.expects(once()).method("include").with(params);
         mockCtx.expects(once()).method("getRequestDispatcher").with(eq("/WEB-INF/pages/testPage.jsp")).will(returnValue(rd));
-        mockCtx.expects(once()).method("getNamedDispatcher").with(eq("preparator")).will(returnValue(mockPrep.proxy()));
         mockResponse.expects(once()).method("setContentType").with(eq("text/html"));
         mockConfig.expects(once()).method("getPortletContext").will(returnValue(ctx));
 
@@ -148,26 +145,27 @@
 
         Constraint[] params = new Constraint[]{eq(PortletActionConstants.ACTION_PARAM), eq("renderDirect")};
         mockResponse.expects(once()).method("setRenderParameter").with(params);
-        params = new Constraint[]{eq("location"), eq("/WEB-INF/pages/testJsp.jsp")};
-        mockResponse.expects(once()).method("setRenderParameter").with(params);
         params = new Constraint[]{eq(PortletActionConstants.MODE_PARAM), eq(PortletMode.VIEW.toString())};
         mockResponse.expects(once()).method("setRenderParameter").with(params);
         mockRequest.stubs().method("getPortletMode").will(returnValue(PortletMode.VIEW));
 
         ActionContext ctx = ActionContext.getContext();
 
+        Map session = new HashMap();
+
         ctx.put(PortletActionConstants.REQUEST, mockRequest.proxy());
         ctx.put(PortletActionConstants.RESPONSE, mockResponse.proxy());
         ctx.put(PortletActionConstants.PHASE, PortletActionConstants.EVENT_PHASE);
+        ctx.put(ActionContext.SESSION, session);
 
         PortletResult result = new PortletResult();
         try {
             result.doExecute("/WEB-INF/pages/testJsp.jsp", (ActionInvocation)mockInvocation.proxy());
-        }
-        catch(Exception e) {
+        } catch(Exception e) {
             e.printStackTrace();
             fail("Error occured!");
         }
+        assertEquals("/WEB-INF/pages/testJsp.jsp", session.get(RENDER_DIRECT_LOCATION));
     }
 
     public void testDoExecute_event_locationHasQueryParams() {
@@ -204,7 +202,6 @@
         Mock mockRequest = mock(RenderRequest.class);
         Mock mockResponse = mock(RenderResponse.class);
         Mock mockRd = mock(PortletRequestDispatcher.class);
-        Mock mockPrep = mock(PortletRequestDispatcher.class);
 
         RenderRequest req = (RenderRequest)mockRequest.proxy();
         RenderResponse res = (RenderResponse)mockResponse.proxy();
@@ -214,9 +211,7 @@
 
         Constraint[] params = new Constraint[]{same(req), same(res)};
         mockRd.expects(once()).method("include").with(params);
-        mockPrep.expects(once()).method("include").with(params);
         mockCtx.expects(once()).method("getRequestDispatcher").with(eq("/WEB-INF/pages/testPage.jsp")).will(returnValue(rd));
-        mockCtx.expects(once()).method("getNamedDispatcher").with(eq("preparator")).will(returnValue(mockPrep.proxy()));
         mockConfig.expects(once()).method("getPortletContext").will(returnValue(ctx));
 
         mockRequest.stubs().method("getPortletMode").will(returnValue(PortletMode.VIEW));
diff --git a/core/src/test/java/org/apache/struts2/portlet/util/PortletUrlHelperTest.java b/core/src/test/java/org/apache/struts2/portlet/util/PortletUrlHelperTest.java
index 32af419..43a7fd3 100644
--- a/core/src/test/java/org/apache/struts2/portlet/util/PortletUrlHelperTest.java
+++ b/core/src/test/java/org/apache/struts2/portlet/util/PortletUrlHelperTest.java
@@ -95,7 +95,7 @@
         renderRequestControl.replay();
         renderResponseControl.replay();
         portletUrlControl.replay();
-        PortletUrlHelper.buildUrl("testAction", null,
+        PortletUrlHelper.buildUrl("testAction", null, null,
                 new HashMap(), null, null, null);
         portletUrlControl.verify();
         renderRequestControl.verify();
@@ -113,7 +113,7 @@
         renderRequestControl.replay();
         renderResponseControl.replay();
         portletUrlControl.replay();
-        PortletUrlHelper.buildUrl("testAction", null,
+        PortletUrlHelper.buildUrl("testAction", null, null,
                 new HashMap(), null, "edit", null);
         portletUrlControl.verify();
         renderRequestControl.verify();
@@ -131,7 +131,7 @@
         renderRequestControl.replay();
         renderResponseControl.replay();
         portletUrlControl.replay();
-        PortletUrlHelper.buildUrl("testAction", null,
+        PortletUrlHelper.buildUrl("testAction", null, null,
                 new HashMap(), null, null, "maximized");
         portletUrlControl.verify();
         renderRequestControl.verify();
@@ -149,7 +149,7 @@
         renderRequestControl.replay();
         renderResponseControl.replay();
         portletUrlControl.replay();
-        PortletUrlHelper.buildUrl("testAction", null,
+        PortletUrlHelper.buildUrl("testAction", null, null,
                 new HashMap(), "action", null, null);
         portletUrlControl.verify();
         renderRequestControl.verify();
diff --git a/core/src/test/java/org/apache/struts2/views/freemarker/tags/TagModelTest.java b/core/src/test/java/org/apache/struts2/views/freemarker/tags/TagModelTest.java
new file mode 100644
index 0000000..a623cde
--- /dev/null
+++ b/core/src/test/java/org/apache/struts2/views/freemarker/tags/TagModelTest.java
@@ -0,0 +1,426 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+package org.apache.struts2.views.freemarker.tags;
+
+import java.io.StringWriter;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.apache.struts2.StrutsTestCase;
+import org.apache.struts2.components.Component;
+import org.apache.struts2.views.freemarker.tags.TagModel;
+import org.springframework.mock.web.MockHttpServletRequest;
+import org.springframework.mock.web.MockHttpServletResponse;
+
+import com.opensymphony.xwork2.util.OgnlValueStack;
+
+import freemarker.ext.util.WrapperTemplateModel;
+import freemarker.template.AdapterTemplateModel;
+import freemarker.template.TemplateBooleanModel;
+import freemarker.template.TemplateCollectionModel;
+import freemarker.template.TemplateHashModel;
+import freemarker.template.TemplateModel;
+import freemarker.template.TemplateModelException;
+import freemarker.template.TemplateModelIterator;
+import freemarker.template.TemplateNumberModel;
+import freemarker.template.TemplateScalarModel;
+import freemarker.template.TemplateSequenceModel;
+
+public class TagModelTest extends StrutsTestCase {
+
+    final Object ADAPTER_TEMPLATE_MODEL_CONTAINED_OBJECT = new Object();
+    final Object WRAPPING_TEMPLATE_MODEL_CONTAINED_OBJECT = new Object();
+
+    public void testUnwrapMap() throws Exception {
+
+        MockHttpServletRequest request = new MockHttpServletRequest();
+        MockHttpServletResponse response = new MockHttpServletResponse();
+        OgnlValueStack stack = new OgnlValueStack();
+
+        Map params = new LinkedHashMap();
+
+        // Try to test out the commons Freemarker's Template Model
+
+        // TemplateBooleanModel
+        params.put("property1", new TemplateBooleanModel() {
+            public boolean getAsBoolean() throws TemplateModelException {
+                return true;
+            }
+        });
+        params.put("property2", new TemplateBooleanModel() {
+            public boolean getAsBoolean() throws TemplateModelException {
+                return false;
+            }
+        });
+
+        // TemplateScalarModel
+        params.put("property3", new TemplateScalarModel() {
+            public String getAsString() throws TemplateModelException {
+                return "toby";
+            }
+        });
+        params.put("property4", new TemplateScalarModel() {
+            public String getAsString() throws TemplateModelException {
+                return "phil";
+            }
+        });
+
+        // TemplateNumberModel
+        params.put("property5", new TemplateNumberModel() {
+            public Number getAsNumber() throws TemplateModelException {
+                return new Integer("10");
+            }
+        });
+        params.put("property6", new TemplateNumberModel() {
+            public Number getAsNumber() throws TemplateModelException {
+                return new Float("1.1");
+            }
+        });
+
+        // TemplateHashModel
+        params.put("property7", new TemplateHashModel() {
+            public TemplateModel get(String arg0) throws TemplateModelException {
+                return null;
+            }
+
+            public boolean isEmpty() throws TemplateModelException {
+                return true;
+            }
+        });
+
+        // TemplateSequenceModel
+        params.put("property8", new TemplateSequenceModel() {
+            public TemplateModel get(int arg0) throws TemplateModelException {
+                return null;
+            }
+
+            public int size() throws TemplateModelException {
+                return 0;
+            }
+        });
+
+        // TemplateCollectionModel
+        params.put("property9", new TemplateCollectionModel() {
+            public TemplateModelIterator iterator() throws TemplateModelException {
+                return new TemplateModelIterator() {
+                    private Iterator i;
+                    {
+                        i = Collections.EMPTY_LIST.iterator();
+                    }
+
+                    public boolean hasNext() throws TemplateModelException {
+                        return i.hasNext();
+                    }
+
+                    public TemplateModel next() throws TemplateModelException {
+                        return (TemplateModel) i.next();
+                    }
+                };
+            }
+        });
+
+        // AdapterTemplateModel
+        params.put("property10", new AdapterTemplateModel() {
+            public Object getAdaptedObject(Class arg0) {
+                return ADAPTER_TEMPLATE_MODEL_CONTAINED_OBJECT;
+            }
+        });
+
+        // WrapperTemplateModel
+        params.put("property11", new WrapperTemplateModel() {
+            public Object getWrappedObject() {
+                return WRAPPING_TEMPLATE_MODEL_CONTAINED_OBJECT;
+            }
+        });
+
+        TagModel tagModel = new TagModel(stack, request, response) {
+            protected Component getBean() {
+                return null;
+            }
+        };
+
+        Map result = tagModel.unwrapParameters(params);
+
+        assertNotNull(result);
+        assertEquals(result.size(), 11);
+        assertEquals(result.get("property1"), Boolean.TRUE);
+        assertEquals(result.get("property2"), Boolean.FALSE);
+        assertEquals(result.get("property3"), "toby");
+        assertEquals(result.get("property4"), "phil");
+        assertEquals(result.get("property5"), new Integer(10));
+        assertEquals(result.get("property6"), new Float(1.1));
+        assertNotNull(result.get("property7"));
+        assertTrue(result.get("property7") instanceof Map);
+        assertNotNull(result.get("property8"));
+        assertTrue(result.get("property8") instanceof Collection);
+        assertNotNull(result.get("property9"));
+        assertTrue(result.get("property9") instanceof Collection);
+        assertEquals(result.get("property10"),
+            ADAPTER_TEMPLATE_MODEL_CONTAINED_OBJECT);
+        assertEquals(result.get("property11"),
+            WRAPPING_TEMPLATE_MODEL_CONTAINED_OBJECT);
+    }
+
+    public void testGetWriter() throws Exception {
+
+        OgnlValueStack stack = new OgnlValueStack();
+
+        final InternalBean bean = new InternalBean(stack);
+
+        MockHttpServletRequest request = new MockHttpServletRequest();
+        MockHttpServletResponse response = new MockHttpServletResponse();
+
+        Map params = new LinkedHashMap();
+
+        // Try to test out the commons Freemarker's Template Model
+
+        // TemplateBooleanModel
+        params.put("property1", new TemplateBooleanModel() {
+            public boolean getAsBoolean() throws TemplateModelException {
+                return true;
+            }
+        });
+        params.put("property2", new TemplateBooleanModel() {
+            public boolean getAsBoolean() throws TemplateModelException {
+                return false;
+            }
+        });
+
+        // TemplateScalarModel
+        params.put("property3", new TemplateScalarModel() {
+            public String getAsString() throws TemplateModelException {
+                return "toby";
+            }
+        });
+        params.put("property4", new TemplateScalarModel() {
+            public String getAsString() throws TemplateModelException {
+                return "phil";
+            }
+        });
+
+        // TemplateNumberModel
+        params.put("property5", new TemplateNumberModel() {
+            public Number getAsNumber() throws TemplateModelException {
+                return new Integer("10");
+            }
+        });
+        params.put("property6", new TemplateNumberModel() {
+            public Number getAsNumber() throws TemplateModelException {
+                return new Float("1.1");
+            }
+        });
+
+        // TemplateHashModel
+        params.put("property7", new TemplateHashModel() {
+            public TemplateModel get(String arg0) throws TemplateModelException {
+                return null;
+            }
+
+            public boolean isEmpty() throws TemplateModelException {
+                return true;
+            }
+        });
+
+        // TemplateSequenceModel
+        params.put("property8", new TemplateSequenceModel() {
+            public TemplateModel get(int arg0) throws TemplateModelException {
+                return null;
+            }
+
+            public int size() throws TemplateModelException {
+                return 0;
+            }
+        });
+
+        // TemplateCollectionModel
+        params.put("property9", new TemplateCollectionModel() {
+            public TemplateModelIterator iterator() throws TemplateModelException {
+                return new TemplateModelIterator() {
+                    private Iterator i;
+                    {
+                        i = Collections.EMPTY_LIST.iterator();
+                    }
+
+                    public boolean hasNext() throws TemplateModelException {
+                        return i.hasNext();
+                    }
+
+                    public TemplateModel next() throws TemplateModelException {
+                        return (TemplateModel) i.next();
+                    }
+                };
+            }
+        });
+
+        // AdapterTemplateModel
+        params.put("property10", new AdapterTemplateModel() {
+            public Object getAdaptedObject(Class arg0) {
+                return ADAPTER_TEMPLATE_MODEL_CONTAINED_OBJECT;
+            }
+        });
+
+        // WrapperTemplateModel
+        params.put("property11", new WrapperTemplateModel() {
+            public Object getWrappedObject() {
+                return WRAPPING_TEMPLATE_MODEL_CONTAINED_OBJECT;
+            }
+        });
+
+        TagModel tagModel = new TagModel(stack, request, response) {
+            protected Component getBean() {
+                return bean;
+            }
+        };
+
+        tagModel.getWriter(new StringWriter(), params);
+
+        assertNotNull(bean);
+        assertEquals(bean.getProperty1(), true);
+        assertEquals(bean.getProperty2(), false);
+        assertEquals(bean.getProperty3(), "toby");
+        assertEquals(bean.getProperty4(), "phil");
+        assertEquals(bean.getProperty5(), new Integer(10));
+        assertEquals(bean.getProperty6(), new Float(1.1));
+        assertNotNull(bean.getProperty7());
+        assertTrue(bean.getProperty7() instanceof Map);
+        assertNotNull(bean.getProperty8());
+        assertTrue(bean.getProperty8() instanceof Collection);
+        assertNotNull(bean.getProperty9());
+        assertTrue(bean.getProperty9() instanceof Collection);
+        assertEquals(bean.getProperty10(), ADAPTER_TEMPLATE_MODEL_CONTAINED_OBJECT);
+        assertEquals(bean.getProperty11(), WRAPPING_TEMPLATE_MODEL_CONTAINED_OBJECT);
+    }
+
+    public static class InternalBean extends Component {
+
+        public InternalBean(OgnlValueStack stack) {
+            super(stack);
+        }
+
+        private boolean property1 = false; // inverse of the expected result, so we could test that it works
+        private boolean property2 = true; // inverse of the expected result, so we could test that it works
+
+        private String property3;
+        private String property4;
+
+        private Integer property5;
+        private Float property6;
+
+        private Map property7;
+        private Collection property8;
+        private Collection property9;
+
+        private Object property10;
+        private Object property11;
+
+        public void setProperty1(boolean property1) {
+            this.property1 = property1;
+        }
+
+        public boolean getProperty1() {
+            return property1;
+        }
+
+        public void setProperty2(boolean property2) {
+            this.property2 = property2;
+        }
+
+        public boolean getProperty2() {
+            return property2;
+        }
+
+        public void setProperty3(String property3) {
+            this.property3 = property3;
+        }
+
+        public String getProperty3() {
+            return this.property3;
+        }
+
+        public void setProperty4(String property4) {
+            this.property4 = property4;
+        }
+
+        public String getProperty4() {
+            return this.property4;
+        }
+
+        public void setProperty5(Integer property5) {
+            this.property5 = property5;
+        }
+
+        public Integer getProperty5() {
+            return this.property5;
+        }
+
+        public void setProperty6(Float property6) {
+            this.property6 = property6;
+        }
+
+        public Float getProperty6() {
+            return this.property6;
+        }
+
+        public void setProperty7(Map property7) {
+            this.property7 = property7;
+        }
+
+        public Map getProperty7() {
+            return property7;
+        }
+
+        public void setProperty8(Collection property8) {
+            this.property8 = property8;
+        }
+
+        public Collection getProperty8() {
+            return property8;
+        }
+
+        public void setProperty9(Collection property9) {
+            this.property9 = property9;
+        }
+
+        public Collection getProperty9() {
+            return this.property9;
+        }
+
+        public void setProperty10(Object property10) {
+            this.property10 = property10;
+        }
+
+        public Object getProperty10() {
+            return this.property10;
+        }
+
+        public void setProperty11(Object property11) {
+            this.property11 = property11;
+        }
+
+        public Object getProperty11() {
+            return this.property11;
+        }
+
+    }
+}
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/AnchorTagTest.java b/core/src/test/java/org/apache/struts2/views/jsp/AnchorTagTest.java
index 814c662..8746818 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/AnchorTagTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/AnchorTagTest.java
@@ -22,7 +22,6 @@
 
 import java.io.StringWriter;
 
-import javax.servlet.jsp.JspException;
 import javax.servlet.jsp.JspWriter;
 
 import org.apache.struts2.views.jsp.ui.AnchorTag;
@@ -30,41 +29,12 @@
 
 
 /**
- *
+ * Unit test for {@ link AnchorTag}.
  */
 public class AnchorTagTest extends AbstractUITagTest {
     private StringWriter writer = new StringWriter();
     private AnchorTag tag;
 
-    public void testActionURL() {
-        tag.setHref("TestAction.action");
-        try {
-            tag.doStartTag();
-            tag.doEndTag();
-            assertTrue( writer.toString().indexOf("href=\"TestAction.action\"") > -1);
-        } catch (JspException ex) {
-            ex.printStackTrace();
-            fail();
-        }
-    }
-
-    public void testAddParameters() {
-        tag.setHref("/TestAction.action");
-        String bodyText = "<img src=\"#\"/>";
-        try {
-            StrutsBodyContent bodyContent = new StrutsBodyContent(null);
-            bodyContent.print(bodyText);
-            tag.setBodyContent(bodyContent);
-
-            tag.doStartTag();
-            tag.doEndTag();
-        } catch (Exception ex) {
-            ex.printStackTrace();
-            fail();
-        }
-    }
-
-
     protected void setUp() throws Exception {
         super.setUp();
 
@@ -78,4 +48,85 @@
         pageContext.setJspWriter(jspWriter);
     }
 
+    public void testActionURL() throws Exception {
+        tag.setHref("TestAction.action");
+        tag.doStartTag();
+        tag.doEndTag();
+        assertTrue(writer.toString().indexOf("href=\"TestAction.action\"") > -1);
+        assertEquals("<a href=\"TestAction.action\"></a>", writer.toString());
+    }
+
+    public void testNoNewLineAtEnd() throws Exception {
+        tag.setHref("TestAction.action");
+        tag.doStartTag();
+        tag.doEndTag();
+        assertFalse(writer.toString().endsWith("\n"));
+    }
+
+    public void testAccessKey() throws Exception {
+        tag.setHref("TestAction.action");
+        tag.setAccesskey("T");
+        tag.doStartTag();
+        tag.doEndTag();
+        assertTrue(writer.toString().indexOf("accesskey=\"T\"") > -1);
+        assertFalse(writer.toString().endsWith("\n"));
+    }
+
+    public void testId() throws Exception {
+        tag.setId("home&improvements");
+        tag.doStartTag();
+        tag.doEndTag();
+        assertEquals("<a id=\"home&amp;improvements\"></a>", writer.toString());
+        assertFalse(writer.toString().endsWith("\n"));
+    }
+
+    public void testTitle() throws Exception {
+    	tag.setHref("home.ftl");
+        tag.setTitle("home & improvements");
+        tag.doStartTag();
+        tag.doEndTag();
+        assertEquals("<a href=\"home.ftl\" title=\"home &amp; improvements\"></a>", writer.toString());
+        assertFalse(writer.toString().endsWith("\n"));
+    }
+
+    public void testOnMouseOver() throws Exception {
+        tag.setHref("TestAction.action");
+        tag.setOnmouseover("over");
+        tag.doStartTag();
+        tag.doEndTag();
+        assertTrue(writer.toString().indexOf("onmouseover=\"over\"") > -1);
+        assertFalse(writer.toString().endsWith("\n"));
+    }
+
+    public void testOnMouseOverAndFocus() throws Exception {
+        tag.setHref("TestAction.action");
+        tag.setOnmouseover("overme");
+        tag.setOnfocus("focusme");
+        tag.doStartTag();
+        tag.doEndTag();
+        assertTrue(writer.toString().indexOf("onmouseover=\"overme\"") > -1);
+        assertTrue(writer.toString().indexOf("onfocus=\"focusme\"") > -1);
+        assertFalse(writer.toString().endsWith("\n"));
+    }
+
+    public void testWithContent() throws Exception {
+        tag.setHref("TestAction.action");
+        tag.doStartTag();
+        writer.write("Home");       
+        tag.doEndTag();
+        assertEquals("<a href=\"TestAction.action\">Home</a>", writer.toString());
+        assertFalse(writer.toString().endsWith("\n"));
+    }
+
+    public void testAddParameters() throws Exception {
+        tag.setHref("/TestAction.action");
+        String bodyText = "<img src=\"#\"/>";
+        StrutsBodyContent bodyContent = new StrutsBodyContent(null);
+        bodyContent.print(bodyText);
+        tag.setBodyContent(bodyContent);
+
+        tag.doStartTag();
+        tag.doEndTag();
+    }
+
 }
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/IteratorGeneratorTagTest.java b/core/src/test/java/org/apache/struts2/views/jsp/IteratorGeneratorTagTest.java
index 1ab1ef6..3670c7a 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/IteratorGeneratorTagTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/IteratorGeneratorTagTest.java
@@ -190,6 +190,14 @@
         assertNotSame(topOfStack, afterTopOfStack);
     }
 
+    public void testGeneratorWithDoubleCount() throws Exception {
+        IteratorGeneratorTag tag = new IteratorGeneratorTag();
+        tag.setPageContext(pageContext);
+        tag.setVal("%{'not used'}");
+        tag.setCount("3.0");
+        tag.doStartTag();
+        tag.doEndTag();
+    }
 
     public Action getAction() {
         return new ActionSupport() {
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/StrutsMockServletContext.java b/core/src/test/java/org/apache/struts2/views/jsp/StrutsMockServletContext.java
index 5c94d3e..3d30779 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/StrutsMockServletContext.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/StrutsMockServletContext.java
@@ -43,6 +43,7 @@
 
     String realPath;
     String servletInfo;
+    String contextPath;
     Map initParams = new HashMap();
     Map attributes = new HashMap();
     InputStream resourceAsStream;
@@ -158,4 +159,12 @@
     public void setServletInfo(String servletInfo) {
         this.servletInfo = servletInfo;
     }
+    
+    public String getContextPath() {
+        return contextPath;
+    } 
+
+    public void setContextPath(String contextPath) {
+        this.contextPath = contextPath;
+    }
 }
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/SubsetIteratorTagTest.java b/core/src/test/java/org/apache/struts2/views/jsp/SubsetIteratorTagTest.java
index 4d0b093..efc4672 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/SubsetIteratorTagTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/SubsetIteratorTagTest.java
@@ -243,6 +243,21 @@
     }
 
 
+        public void testWithDoubleCount() throws Exception {
+            SubsetIteratorTag tag = new SubsetIteratorTag();
+            tag.setPageContext(pageContext);
+            tag.setCount("3.0");
+            tag.doStartTag();
+            tag.doEndTag();
+        }
+
+        public void testWithDoubleStart() throws Exception {
+            SubsetIteratorTag tag = new SubsetIteratorTag();
+            tag.setPageContext(pageContext);
+            tag.setStart("2.0");
+            tag.doStartTag();
+            tag.doEndTag();
+        }
 
     public Action getAction() {
         return new ActionSupport() {
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java b/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java
index d1513c2..0092619 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/URLTagTest.java
@@ -223,7 +223,7 @@
         tag.component.addParameter("param1", "value1");
         tag.component.addParameter("param2", "value2");
         tag.doEndTag();
-        assertEquals("/TestAction.action?param2=value2&amp;param0=value0&amp;param1=value1", writer.toString());
+        assertEquals("/TestAction.action?param0=value0&amp;param1=value1&amp;param2=value2", writer.toString());
     }
 
     public void testEvaluateValue() throws Exception {
@@ -281,7 +281,7 @@
         paramTag.doEndTag();
         urlTag.doEndTag();
 
-        assertEquals(writer.getBuffer().toString(), "/context/someAction.action?name=John&amp;id=33");
+        assertEquals("/context/someAction.action?id=33&amp;name=John", writer.getBuffer().toString());
     }
 
     public void testParamPrecedenceWithAnchor() throws Exception {
@@ -304,7 +304,7 @@
         paramTag.doEndTag();
         urlTag.doEndTag();
 
-        assertEquals(writer.getBuffer().toString(), "/context/someAction.action?name=John&amp;id=33#testAnchor");
+        assertEquals("/context/someAction.action?id=33&amp;name=John#testAnchor", writer.getBuffer().toString());
     }
 
     public void testPutId() throws Exception {
@@ -348,6 +348,19 @@
         assertEquals("/team.action?section=team&amp;company=acme+inc", writer.toString());
     }
 
+    public void testRequestURIActionIncludeGetDoNotEscapeAmp() throws Exception {
+        request.setRequestURI("/public/about");
+        request.setQueryString("section=team&company=acme inc");
+
+        tag.setAction("team");
+        tag.setIncludeParams("get");
+        tag.setEscapeAmp("false");
+        tag.doStartTag();
+        tag.doEndTag();
+
+        assertEquals("/team.action?section=team&company=acme+inc", writer.toString());
+    }
+    
     public void testRequestURINoActionIncludeNone() throws Exception {
         request.setRequestURI("/public/about");
         request.setQueryString("section=team&company=acme inc");
@@ -391,7 +404,7 @@
 
         tag.doEndTag();
 
-        assertEquals("/team.action?section=team&amp;year=2006&amp;company=acme+inc", writer.toString());
+        assertEquals("/team.action?section=team&amp;company=acme+inc&amp;year=2006", writer.toString());
     }
 
     public void testRequestURINoActionIncludeAll() throws Exception {
@@ -413,7 +426,7 @@
 
         tag.doEndTag();
 
-        assertEquals("/public/about?section=team&amp;year=2006&amp;company=acme+inc", writer.toString());
+        assertEquals("/public/about?section=team&amp;company=acme+inc&amp;year=2006", writer.toString());
     }
 
     public void testUnknownIncludeParam() throws Exception {
@@ -449,6 +462,15 @@
         assertEquals("/myapp/company.action", writer.toString());
     }
 
+    public void testForceAddSchemeHostAndPort() throws Exception {
+        tag.setForceAddSchemeHostAndPort("true");
+        tag.setAction("company");
+        tag.doStartTag();
+        tag.doEndTag();
+
+        assertEquals("http://localhost/company.action", writer.toString());
+    }
+
     protected void setUp() throws Exception {
         super.setUp();
 
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/AnchorTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/AnchorTest.java
index 4b59b1c..777c3f3 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/AnchorTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/AnchorTest.java
@@ -49,10 +49,25 @@
         tag.setNotifyTopics("j");
         tag.setIndicator("k");
         tag.setShowErrorTransportText("true");
+        tag.setShowLoadingText("true");
         tag.doStartTag();
         tag.doEndTag();
 
         verify(AnchorTest.class.getResource("href-1.txt"));
     }
 
+    public void testSimpleBadQuote() throws Exception {
+        TestAction testAction = (TestAction) action;
+        testAction.setFoo("bar");
+
+        AnchorTag tag = new AnchorTag();
+        tag.setPageContext(pageContext);
+
+        tag.setId("mylink");
+        tag.setHref("a\"");
+        tag.doStartTag();
+        tag.doEndTag();
+
+        verify(AnchorTest.class.getResource("href-2.txt"));
+    }
 }
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/AutocompleterTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/AutocompleterTest.java
index 5a1cbd2..7fe8276 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/AutocompleterTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/AutocompleterTest.java
@@ -43,9 +43,14 @@
         tag.setName("f");
         tag.setValue("g");
         tag.setIndicator("h");
+        tag.setKeyName("i");
         tag.setLoadOnTextChange("true");
         tag.setLoadMinimumCount("3");
         tag.setShowDownArrow("false");
+        tag.setIconPath("i");
+        tag.setTemplateCssPath("j");
+        tag.setDataFieldName("k");
+        tag.setResultsLimit("1");
         tag.doStartTag();
         tag.doEndTag();
 
@@ -67,6 +72,9 @@
         tag.setSearchType("b");
         tag.setDisabled("c");
         tag.setName("f");
+        tag.setIconPath("i");
+        tag.setTemplateCssPath("j");
+        tag.setResultsLimit("1");
         tag.doStartTag();
         tag.doEndTag();
 
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/CheckboxListTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/CheckboxListTest.java
index d7d8bcb..0485941 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/CheckboxListTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/CheckboxListTest.java
@@ -140,7 +140,8 @@
         testAction.setFoo("hello");
         testAction.setList(new String[][]{
                 {"hello", "world"},
-                {"foo", "bar"}
+                {"foo", "bar"},
+                {"baz", null}
         });
 
         CheckboxListTag tag = new CheckboxListTag();
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/ComboBoxTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/ComboBoxTest.java
index cf1077f..3d15ff6 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/ComboBoxTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/ComboBoxTest.java
@@ -78,6 +78,7 @@
         tag.setPageContext(pageContext);
         tag.setLabel("mylabel");
         tag.setName("foo");
+        tag.setId("cb");
         tag.setList("collection");
 
         tag.doStartTag();
@@ -139,4 +140,26 @@
 
         verify(ComboBoxTag.class.getResource("ComboBox-3.txt"));
     }
+
+    public void testJsCallNamingUsesEscapedId() throws Exception {
+        TestAction testAction = (TestAction) action;
+        testAction.setFoo("hello");
+
+        ArrayList collection = new ArrayList();
+        collection.add("foo");
+        testAction.setCollection(collection);
+
+        ComboBoxTag tag = new ComboBoxTag();
+        tag.setPageContext(pageContext);
+        tag.setLabel("mylabel");
+        tag.setName("foo");
+        tag.setId("cb.bc");
+        tag.setList("collection");
+
+        tag.doStartTag();
+        tag.doEndTag();
+
+        verify(ComboBoxTag.class.getResource("ComboBox-4.txt"));
+    }
+
 }
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/DateTagTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/DateTagTest.java
index 29d3906..ba16041 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/DateTagTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/DateTagTest.java
@@ -225,7 +225,8 @@
 
         // hmmm the Date component isn't the best to calculate the excat difference so we'll just check
         // that it starts with in 2 years
-        assertTrue(writer.toString().startsWith("in 2 years"));
+        String s = writer.toString();
+        assertTrue(s.startsWith("in 2 years"));
     }
 
     public void testNoDateObjectInContext() throws Exception {
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/DateTimePickerTagTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/DateTimePickerTagTest.java
index 6bed51d..61322f9 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/DateTimePickerTagTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/DateTimePickerTagTest.java
@@ -59,6 +59,7 @@
         tag.setWeekStartsOn("g");
         tag.setName("h");
         tag.setLanguage("i");
+        tag.setTemplateCssPath("j");
         tag.doStartTag();
         tag.doEndTag();
 
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/DivTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/DivTest.java
index 12744e4..23e9d96 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/DivTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/DivTest.java
@@ -67,6 +67,8 @@
         tag.setRefreshOnShow("true");
         tag.setHandler("l");
         tag.setIndicator("m");
+        tag.setShowLoadingText("true");
+        tag.setSeparateScripts("false");
         tag.doStartTag();
         tag.doEndTag();
 
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/DoubleSelectTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/DoubleSelectTest.java
index 6eafe10..44c0a5c 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/DoubleSelectTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/DoubleSelectTest.java
@@ -84,6 +84,12 @@
         tag.setOnmouseover("window.status='onmouseover';");
         tag.setOnmouseup("window.status='onmouseup';");
 
+        //css style and class
+        tag.setCssClass("c1");
+        tag.setCssStyle("s1");
+        tag.setDoubleCssClass("c2");
+        tag.setDoubleCssStyle("s2");
+        
         tag.doStartTag();
         tag.doEndTag();
 
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java
index 5b26627..9c006c4 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/FormTagTest.java
@@ -55,7 +55,7 @@
         FormTag tag = new FormTag();
         tag.setPageContext(pageContext);
         tag.setName("myForm");
-        tag.setMethod("POST");
+        tag.setMethod("post");
         tag.setAcceptcharset("UTF-8");
         tag.setAction("testAction");
         tag.setEnctype("myEncType");
@@ -74,7 +74,7 @@
         tag.setPageContext(pageContext);
         tag.setName("myForm");
         tag.setNamespace("/testNamespace");
-        tag.setMethod("POST");
+        tag.setMethod("post");
         tag.setAcceptcharset("UTF-8");
         tag.setAction("testNamespaceAction");
         tag.setEnctype("myEncType");
@@ -98,7 +98,7 @@
         FormTag tag = new FormTag();
         tag.setPageContext(pageContext);
         tag.setName("myForm");
-        tag.setMethod("POST");
+        tag.setMethod("post");
         tag.setAcceptcharset("UTF-8");
         tag.setAction("myAction");
         tag.setEnctype("myEncType");
@@ -188,7 +188,7 @@
             FormTag tag = new FormTag();
             tag.setPageContext(pageContext);
             tag.setName("myForm");
-            tag.setMethod("POST");
+            tag.setMethod("post");
             tag.setAction("myAction");
             tag.setAcceptcharset("UTF-8");
             tag.setEnctype("myEncType");
@@ -293,7 +293,7 @@
             FormTag tag = new FormTag();
             tag.setPageContext(pageContext);
             tag.setName("myForm");
-            tag.setMethod("POST");
+            tag.setMethod("post");
             tag.setAction("myAction");
             tag.setAcceptcharset("UTF-8");
             tag.setEnctype("myEncType");
@@ -327,7 +327,7 @@
         FormTag tag = new FormTag();
         tag.setPageContext(pageContext);
         tag.setName("myForm");
-        tag.setMethod("POST");
+        tag.setMethod("post");
         tag.setAction("myAction");
         tag.setEnctype("myEncType");
         tag.setTitle("mytitle");
@@ -350,7 +350,7 @@
 
     /**
      * Testing that this: <p>
-     * &lt;a:form name=&quot;'myForm'&quot; namespace=&quot;'/testNamespace'&quot; action=&quot;'testNamespaceAction'&quot; method=&quot;'POST'&quot;&gt;
+     * &lt;a:form name=&quot;'myForm'&quot; namespace=&quot;'/testNamespace'&quot; action=&quot;'testNamespaceAction'&quot; method=&quot;'post'&quot;&gt;
      * <p/>
      * doesn't create an action of &quot;/testNamespace/testNamespaceAction.action&quot; when the &quot;struts.action.extension&quot;
      * config property is set to &quot;jspa&quot;.
@@ -366,7 +366,7 @@
         tag.setPageContext(pageContext);
         tag.setNamespace("/testNamespace");
         tag.setAction("testNamespaceAction");
-        tag.setMethod("POST");
+        tag.setMethod("post");
         tag.setName("myForm");
 
         tag.doStartTag();
@@ -377,7 +377,7 @@
 
     /**
      * Testing that this: <p>
-     * &lt;a:form name=&quot;'myForm'&quot; action=&quot;'/testNamespace/testNamespaceAction.jspa'&quot; method=&quot;'POST'&quot;&gt;
+     * &lt;a:form name=&quot;'myForm'&quot; action=&quot;'/testNamespace/testNamespaceAction.jspa'&quot; method=&quot;'post'&quot;&gt;
      * <p/>
      * doesn't create an action of &quot;/testNamespace/testNamespaceAction.action&quot;
      */
@@ -387,7 +387,7 @@
         FormTag tag = new FormTag();
         tag.setPageContext(pageContext);
         tag.setAction("/testNamespace/testNamespaceAction.jspa");
-        tag.setMethod("POST");
+        tag.setMethod("post");
         tag.setName("myForm");
 
         tag.doStartTag();
@@ -405,7 +405,7 @@
         FormTag tag = new FormTag();
         tag.setPageContext(pageContext);
         tag.setName("myForm");
-        tag.setMethod("POST");
+        tag.setMethod("post");
         tag.setAction("testNamespaceAction");
 
         tag.doStartTag();
@@ -569,7 +569,7 @@
         FormTag tag = new FormTag();
         tag.setPageContext(pageContext);
         tag.setAction("/testNamespace/testNamespaceAction.jspa");
-        tag.setMethod("POST");
+        tag.setMethod("post");
         tag.setName("myForm");
 
         tag.doStartTag();
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
index cf30864..4c16bc2 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
@@ -20,6 +20,9 @@
  */
 package org.apache.struts2.views.jsp.ui;
 
+import java.util.LinkedHashMap;
+
+import org.apache.struts2.TestAction;
 import org.apache.struts2.views.jsp.AbstractUITagTest;
 
 /**
@@ -27,7 +30,6 @@
  */
 public class OptGroupTest extends AbstractUITagTest {
 
-
     public void testOptGroupSimple() throws Exception {
         SelectTag selectTag = new SelectTag();
         selectTag.setName("mySelection");
@@ -120,4 +122,40 @@
         //System.out.println(writer.toString());
         verify(SelectTag.class.getResource("OptGroup-3.txt"));
     }
+    
+    public void testOptGroupNumbers() throws Exception {
+    	
+    	((TestAction)action).setMap(new LinkedHashMap() {{
+    		put("AAA", "aaa");
+    		put(new Long(111111), "bbb");
+    		put("CCC", "ccc");
+    	}});
+    	
+        SelectTag selectTag = new SelectTag();
+        selectTag.setName("mySelection");
+        selectTag.setLabel("My Selection");
+        selectTag.setList("%{#{'ONE':'one','TWO':'two','THREE':'three'}}");
+
+        OptGroupTag optGroupTag1 = new OptGroupTag();
+        optGroupTag1.setLabel("My Label 1");
+        optGroupTag1.setList("map");
+
+        OptGroupTag optGroupTag2 = new OptGroupTag();
+        optGroupTag2.setLabel("My Label 2");
+        optGroupTag2.setList("%{#{'DDD':'ddd','EEE':'eee','FFF':'fff'}}");
+
+        selectTag.setPageContext(pageContext);
+        selectTag.doStartTag();
+        optGroupTag1.setPageContext(pageContext);
+        optGroupTag1.doStartTag();
+        optGroupTag1.doEndTag();
+        optGroupTag2.setPageContext(pageContext);
+        optGroupTag2.doStartTag();
+        optGroupTag2.doEndTag();
+        selectTag.doEndTag();
+
+
+        //System.out.println(writer.toString());
+        verify(SelectTag.class.getResource("OptGroup-4.txt"));
+    }
 }
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/OptionTransferSelectTagTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/OptionTransferSelectTagTest.java
index 1a1af11..00c0b18 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/OptionTransferSelectTagTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/OptionTransferSelectTagTest.java
@@ -60,6 +60,8 @@
         tag.setDoubleSize("20");
         tag.setMultiple("true");
         tag.setDoubleEmptyOption("true");
+        tag.setDoubleCssClass("c2");
+        tag.setDoubleCssStyle("s2");
 
         tag.setAllowAddAllToLeft("true");
         tag.setAllowAddAllToRight("true");
@@ -514,6 +516,9 @@
         tag.setDoubleHeaderKey("Double Header Key");
         tag.setDoubleHeaderValue("Double Header Value");
 
+        tag.setAddToLeftOnclick("alert('Moving Left')");
+        tag.setAddToRightOnclick("alert('Moving Right')");
+
         tag.doStartTag();
         tag.doEndTag();
 
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/RadioTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/RadioTest.java
index c4b0518..9ae6fc8 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/RadioTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/RadioTest.java
@@ -75,6 +75,28 @@
 
         verify(RadioTag.class.getResource("Radio-2.txt"));
     }
+    
+    public void testMapCheckedNull() throws Exception {
+        TestAction testAction = (TestAction) action;
+        testAction.setFoo("bar");
+
+        HashMap map = new HashMap();
+        map.put("1", "One");
+        map.put("2", "Two");
+        testAction.setMap(map);
+
+        RadioTag tag = new RadioTag();
+        tag.setPageContext(pageContext);
+        tag.setLabel("mylabel");
+        tag.setName("myname");
+        tag.setValue("%{map['3']}");
+        tag.setList("#@java.util.TreeMap@{\"1\":\"One\", \"2\":\"Two\", \"\":\"N/A\"}");
+
+        tag.doStartTag();
+        tag.doEndTag();
+
+        verify(RadioTag.class.getResource("Radio-4.txt"));
+    }
 
     public void testSimple() throws Exception {
         TestAction testAction = (TestAction) action;
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/SelectTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/SelectTest.java
index 5270abe..80358b3 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/SelectTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/SelectTest.java
@@ -170,6 +170,33 @@
         }
     }
 
+    public class LongObject {
+        private Long id;
+        private String value;
+
+
+        public LongObject(Long id, String value) {
+            this.id = id;
+            this.value = value;
+        }
+
+        public Long getId() {
+            return id;
+        }
+
+        public void setId(Long id) {
+            this.id = id;
+        }
+
+        public String getValue() {
+            return value;
+        }
+
+        public void setValue(String value) {
+            this.value = value;
+        }
+    }
+
     public void testNullList() throws Exception {
         TestAction testAction = (TestAction) action;
         testAction.setList2(null);
@@ -239,6 +266,44 @@
         verify(SelectTag.class.getResource("Select-2.txt"));
     }
 
+    /**
+     * WW-1747 - should be a valid test case for the described issue
+     * @throws Exception
+     */
+    public void testMultipleWithLists() throws Exception {
+        TestAction testAction = (TestAction) action;
+        Collection collection = new ArrayList(2);
+
+        collection.add(1l);
+        collection.add(300000000l);
+        testAction.setCollection(collection);
+
+        List selectList = new ArrayList();
+        selectList.add(new LongObject(1l, "foo"));
+        selectList.add(new LongObject(2l, "bar"));
+        selectList.add(new LongObject(300000000l, "foobar"));
+        testAction.setList2(selectList);
+
+        SelectTag tag = new SelectTag();
+        tag.setPageContext(pageContext);
+        tag.setLabel("mylabel");
+        tag.setName("collection");
+        tag.setList("list2");
+        tag.setListKey("id");
+        tag.setListValue("value");
+        tag.setMultiple("true");
+        tag.setOnmousedown("alert('onmousedown');");
+        tag.setOnmousemove("alert('onmousemove');");
+        tag.setOnmouseout("alert('onmouseout');");
+        tag.setOnmouseover("alert('onmouseover');");
+        tag.setOnmouseup("alert('onmouseup');");
+
+        tag.doStartTag();
+        tag.doEndTag();
+
+        verify(SelectTag.class.getResource("Select-12.txt"));
+    }
+
     public void testSimple() throws Exception {
         TestAction testAction = (TestAction) action;
         testAction.setFoo("hello");
@@ -379,6 +444,109 @@
         verify(SelectTag.class.getResource("Select-6.txt"));
     }
 
+    public void testSimpleInteger() throws Exception {
+        TestAction testAction = (TestAction) action;
+
+        IdName hello = new IdName(new Integer(1), "hello");
+        IdName world = new IdName(new Integer(2), "world");
+        List list2 = new ArrayList();
+        list2.add(hello);
+        list2.add(world);
+        testAction.setList2(list2);
+
+        testAction.setFooInt(new Integer(1));
+
+        SelectTag tag = new SelectTag();
+        tag.setPageContext(pageContext);
+        tag.setEmptyOption("true");
+        tag.setLabel("mylabel");
+        tag.setName("fooInt");
+        tag.setList("list2");
+        tag.setListKey("id");
+        tag.setListValue("name");
+
+        // header stuff
+        tag.setHeaderKey("headerKey");
+        tag.setHeaderValue("headerValue");
+
+        // empty option
+        tag.setEmptyOption("true");
+
+        tag.doStartTag();
+        tag.doEndTag();
+
+        verify(SelectTag.class.getResource("Select-11.txt"));
+    }
+
+    public void testSimpleIntegerWithValueWorkaround() throws Exception {
+        TestAction testAction = (TestAction) action;
+
+        IdName hello = new IdName(new Integer(1), "hello");
+        IdName world = new IdName(new Integer(2), "world");
+        List list2 = new ArrayList();
+        list2.add(hello);
+        list2.add(world);
+        testAction.setList2(list2);
+
+        testAction.setFooInt(new Integer(1));
+
+        SelectTag tag = new SelectTag();
+        tag.setPageContext(pageContext);
+        tag.setEmptyOption("true");
+        tag.setLabel("mylabel");
+        tag.setName("fooInt");
+        tag.setList("list2");
+        tag.setListKey("id");
+        tag.setListValue("name");
+        tag.setValue("fooInt.toString()");
+
+        // header stuff
+        tag.setHeaderKey("headerKey");
+        tag.setHeaderValue("headerValue");
+
+        // empty option
+        tag.setEmptyOption("true");
+
+        tag.doStartTag();
+        tag.doEndTag();
+
+        verify(SelectTag.class.getResource("Select-11.txt"));
+    }
+    
+    public void testEnumList() throws Exception {
+
+        SelectTag tag = new SelectTag();
+        tag.setPageContext(pageContext);
+        tag.setLabel("mylabel");
+        tag.setName("status");
+        tag.setList("statusList");
+        tag.setListKey("name");
+        tag.setListValue("displayName");
+
+        tag.doStartTag();
+        tag.doEndTag();
+
+        verify(SelectTag.class.getResource("Select-13.txt"));
+    }
+
+    public class IdName {
+        private String name;
+        private Integer id;
+
+        public IdName(Integer id, String name) {
+            this.name = name;
+            this.id = id;
+        }
+
+        public String getName() {
+            return name;
+        }
+
+        public Integer getId() {
+            return id;
+        }
+    }
+
     private void prepareTagGeneric(SelectTag tag) {
         TestAction testAction = (TestAction) action;
         ArrayList collection = new ArrayList();
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/SubmitAjaxTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/SubmitAjaxTest.java
index d392009..d875db3 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/SubmitAjaxTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/SubmitAjaxTest.java
@@ -60,10 +60,11 @@
         tag.setLabel("i");
         tag.setNotifyTopics("k");
         tag.setIndicator("l");
+        tag.setShowLoadingText("true");
         tag.doStartTag();
         tag.doEndTag();
 
-        verify(DivTest.class.getResource("submit-ajax-1.txt"));
+        verify(SubmitAjaxTest.class.getResource("submit-ajax-1.txt"));
     }
 
     public void testButton() throws Exception {
@@ -89,7 +90,7 @@
         tag.doStartTag();
         tag.doEndTag();
 
-        verify(DivTest.class.getResource("submit-ajax-2.txt"));
+        verify(SubmitAjaxTest.class.getResource("submit-ajax-2.txt"));
     }
 
     public void testImage() throws Exception {
@@ -116,6 +117,6 @@
         tag.doStartTag();
         tag.doEndTag();
 
-        verify(DivTest.class.getResource("submit-ajax-3.txt"));
+        verify(SubmitAjaxTest.class.getResource("submit-ajax-3.txt"));
     }
 }
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/SubmitTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/SubmitTest.java
index fca88e5..c3d6530 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/SubmitTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/SubmitTest.java
@@ -20,15 +20,11 @@
  */
 package org.apache.struts2.views.jsp.ui;
 
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.servlet.jsp.tagext.BodyContent;
-
 import org.apache.struts2.TestAction;
 import org.apache.struts2.views.jsp.AbstractUITagTest;
 
-import com.mockobjects.servlet.MockBodyContent;
+import java.util.HashMap;
+import java.util.Map;
 
 
 /**
@@ -63,7 +59,9 @@
         tag.setAlign("left");
         tag.setName("myname");
         tag.setValue("%{foo}");
-
+        tag.setDisabled("true");
+        tag.setTabindex("1");
+        
         tag.doStartTag();
         tag.doEndTag();
 
@@ -79,7 +77,9 @@
         tag.setType("button");
         tag.setName("myname");
         tag.setValue("%{foo}");
-
+        tag.setDisabled("true");
+        tag.setTabindex("1");
+        
         tag.doStartTag();
         tag.doEndTag();
 
@@ -132,6 +132,7 @@
         tag.setType("image");
         tag.setName("myname");
         tag.setValue("%{foo}");
+        tag.setDisabled("true");
 
         tag.doStartTag();
         tag.doEndTag();
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/TabbedPanelTagTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/TabbedPanelTagTest.java
new file mode 100644
index 0000000..ff2b04a
--- /dev/null
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/TabbedPanelTagTest.java
@@ -0,0 +1,68 @@
+/*

+ * $Id$

+ *

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you 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.

+ */

+package org.apache.struts2.views.jsp.ui;

+

+import org.apache.struts2.views.jsp.AbstractUITagTest;

+

+/**

+ * TabbedPanelTagTest.

+ */

+public class TabbedPanelTagTest extends AbstractUITagTest {

+

+    public void testSimple() throws Exception {

+        TabbedPanelTag tag = new TabbedPanelTag();

+        tag.setPageContext(pageContext);

+

+        tag.doStartTag();

+        tag.doEndTag();

+

+        verify(TabbedPanelTag.class.getResource("TabbedPanel-1.txt"));

+

+    }

+

+    public void testCookieCodeAvailable() throws Exception {

+        TabbedPanelTag tag = new TabbedPanelTag();

+        tag.setPageContext(pageContext);

+        tag.setId("foo");

+        tag.setUseSelectedTabCookie("true");

+

+        tag.doStartTag();

+        tag.doEndTag();

+

+        verify(TabbedPanelTag.class.getResource("TabbedPanel-2.txt"));

+

+    }

+

+    public void testCookieCodeAvailableWithOverriddenSelectedTab() throws Exception {

+        TabbedPanelTag tag = new TabbedPanelTag();

+        tag.setPageContext(pageContext);

+        tag.setId("foo");

+        tag.setUseSelectedTabCookie("true");

+        tag.setSelectedTab("bar");

+

+        tag.doStartTag();

+        tag.doEndTag();

+

+        verify(TabbedPanelTag.class.getResource("TabbedPanel-3.txt"));

+

+    }

+

+}

diff --git a/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java b/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java
index 98dc39a..0a37fa1 100644
--- a/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java
+++ b/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java
@@ -20,6 +20,7 @@
  */
 package org.apache.struts2.views.util;
 
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
@@ -28,7 +29,6 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.StrutsTestCase;
 
 import com.mockobjects.dynamic.Mock;
@@ -40,8 +40,6 @@
  */
 public class UrlHelperTest extends StrutsTestCase {
 
-
-
     public void testForceAddSchemeHostAndPort() throws Exception {
         String expectedUrl = "http://localhost/contextPath/path1/path2/myAction.action";
 
@@ -49,7 +47,8 @@
         mockHttpServletRequest.expectAndReturn("getScheme", "http");
         mockHttpServletRequest.expectAndReturn("getServerName", "localhost");
         mockHttpServletRequest.expectAndReturn("getContextPath", "/contextPath");
-
+	mockHttpServletRequest.expectAndReturn("getServerPort", 80);
+	
         Mock mockHttpServletResponse = new Mock(HttpServletResponse.class);
         mockHttpServletResponse.expectAndReturn("encodeURL", expectedUrl, expectedUrl);
 
@@ -74,6 +73,42 @@
         assertEquals(expectedUrl, result);
     }
 
+    public void testForceAddSchemeHostAndPortWithNonStandardPort() throws Exception {
+        String expectedUrl = "http://localhost:9090/contextPath/path1/path2/myAction.action";
+
+        Mock mockHttpServletRequest = new Mock(HttpServletRequest.class);
+        mockHttpServletRequest.expectAndReturn("getScheme", "http");
+        mockHttpServletRequest.expectAndReturn("getServerName", "localhost");
+        mockHttpServletRequest.expectAndReturn("getContextPath", "/contextPath");
+        mockHttpServletRequest.expectAndReturn("getServerPort", 9090);
+
+        Mock mockHttpServletResponse = new Mock(HttpServletResponse.class);
+        mockHttpServletResponse.expectAndReturn("encodeURL", expectedUrl, expectedUrl);
+
+        String result = UrlHelper.buildUrl("/path1/path2/myAction.action", (HttpServletRequest) mockHttpServletRequest.proxy(), (HttpServletResponse)mockHttpServletResponse.proxy(), null, "http", true, true, true);
+        assertEquals(expectedUrl, result);
+        mockHttpServletRequest.verify();
+    }
+    
+    public void testForceAddNullSchemeHostAndPort() throws Exception {
+        String expectedUrl = "http://localhost/contextPath/path1/path2/myAction.action";
+
+        Mock mockHttpServletRequest = new Mock(HttpServletRequest.class);
+        mockHttpServletRequest.expectAndReturn("getScheme", "http");
+        mockHttpServletRequest.expectAndReturn("getServerName", "localhost");
+        mockHttpServletRequest.expectAndReturn("getContextPath", "/contextPath");
+
+        Mock mockHttpServletResponse = new Mock(HttpServletResponse.class);
+        mockHttpServletResponse.expectAndReturn("encodeURL", expectedUrl,
+            expectedUrl);
+
+        String result = UrlHelper.buildUrl("/path1/path2/myAction.action",
+            (HttpServletRequest) mockHttpServletRequest.proxy(),
+            (HttpServletResponse) mockHttpServletResponse.proxy(), null,
+            null, true, true, true);
+        assertEquals(expectedUrl, result);
+        mockHttpServletRequest.verify();
+    }        
 
     public void testBuildParametersStringWithUrlHavingSomeExistingParameters() throws Exception {
         String expectedUrl = "http://localhost:8080/myContext/myPage.jsp?initParam=initValue&amp;param1=value1&amp;param2=value2";
@@ -90,8 +125,6 @@
            expectedUrl, url.toString());
     }
 
-
-
     public void testBuildWithRootContext() {
         String expectedUrl = "/MyAction.action";
 
@@ -126,6 +159,22 @@
         assertEquals(expectedString, urlString);
     }
 
+    public void testBuildUrlCorrectlyAddsDoNotEscapeAmp() {
+        String expectedString = "my.actionName?foo=bar&hello=world";
+        Mock mockHttpServletRequest = new Mock(HttpServletRequest.class);
+        mockHttpServletRequest.expectAndReturn("getScheme", "http");
+        Mock mockHttpServletResponse = new Mock(HttpServletResponse.class);
+        mockHttpServletResponse.expectAndReturn("encodeURL", expectedString, expectedString);
+
+        String actionName = "my.actionName";
+        TreeMap params = new TreeMap();
+        params.put("hello", "world");
+        params.put("foo", "bar");
+
+        String urlString = UrlHelper.buildUrl(actionName, (HttpServletRequest) mockHttpServletRequest.proxy(), (HttpServletResponse) mockHttpServletResponse.proxy(), params, null, true, true, false, false);
+        assertEquals(expectedString, urlString);
+    }
+
     public void testBuildUrlWithStringArray() {
         String expectedString = "my.actionName?foo=bar&amp;hello=earth&amp;hello=mars";
         Mock mockHttpServletRequest = new Mock(HttpServletRequest.class);
@@ -300,6 +349,31 @@
         assertEquals(result.size(), 0);
     }
 
+    public void testParseMultiQuery() throws Exception {
+        Map result = UrlHelper.parseQueryString("param=1&param=1&param=1");
+        
+        assertNotNull(result);
+        assertEquals(result.size(), 1);
+        String values[] = (String[]) result.get("param");
+        Arrays.sort(values);
+        assertEquals(values.length, 3);
+        assertEquals(values[0], "1");
+        assertEquals(values[1], "1");
+        assertEquals(values[2], "1");
+    }
+
+    public void testParseDuplicateQuery() throws Exception {
+        Map result = UrlHelper.parseQueryString("param=1&param=2&param=3");
+        
+        assertNotNull(result);
+        assertEquals(result.size(), 1);
+        String values[] = (String[]) result.get("param");
+        Arrays.sort(values);
+        assertEquals(values.length, 3);
+        assertEquals(values[0], "1");
+        assertEquals(values[1], "2");
+        assertEquals(values[2], "3");
+    }
 
     public void testTranslateAndEncode() throws Exception {
         UrlHelper.setCustomEncoding("UTF-8");
diff --git a/core/src/test/resources/XSLTResultTest.xsl b/core/src/test/resources/XSLTResultTest.xsl
index 6741ccf..4d25dbd 100644
--- a/core/src/test/resources/XSLTResultTest.xsl
+++ b/core/src/test/resources/XSLTResultTest.xsl
@@ -1,3 +1,25 @@
+<!--
+/*
+ * $Id: RequestUtils.java 471717 2006-11-06 12:50:18Z husted $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <xsl:stylesheet version="1.0"
                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                 xmlns="http://www.w3.org/TR/xhtml1/strict">
diff --git a/core/src/test/resources/XSLTResultTest2.xsl b/core/src/test/resources/XSLTResultTest2.xsl
index 8afa9a7..53ed9e5 100644
--- a/core/src/test/resources/XSLTResultTest2.xsl
+++ b/core/src/test/resources/XSLTResultTest2.xsl
@@ -1,3 +1,25 @@
+<!--
+/*
+ * $Id: RequestUtils.java 471717 2006-11-06 12:50:18Z husted $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <xsl:stylesheet version="1.0"
                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                 xmlns="http://www.w3.org/TR/xhtml1/strict">
diff --git a/core/src/test/resources/XSLTResultTest3.xsl b/core/src/test/resources/XSLTResultTest3.xsl
index 3b18dbb..2215cf7 100644
--- a/core/src/test/resources/XSLTResultTest3.xsl
+++ b/core/src/test/resources/XSLTResultTest3.xsl
@@ -1,4 +1,26 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+ * $Id: RequestUtils.java 471717 2006-11-06 12:50:18Z husted $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <xsl:stylesheet version="1.0"
                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                 xmlns="http://www.w3.org/TR/xhtml1/strict">
diff --git a/core/src/test/resources/XSLTResultTest4.xsl b/core/src/test/resources/XSLTResultTest4.xsl
index 047286c..94a954a 100644
--- a/core/src/test/resources/XSLTResultTest4.xsl
+++ b/core/src/test/resources/XSLTResultTest4.xsl
@@ -1,3 +1,25 @@
+<!--
+/*
+ * $Id: RequestUtils.java 471717 2006-11-06 12:50:18Z husted $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <xsl:stylesheet version="1.0"
                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                 xmlns="http://www.w3.org/TR/xhtml1/strict">
diff --git a/core/src/test/resources/log4j.properties b/core/src/test/resources/log4j.properties
index 9c62331..2bc1363 100644
--- a/core/src/test/resources/log4j.properties
+++ b/core/src/test/resources/log4j.properties
@@ -1,3 +1,22 @@
+#  $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+# 
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you 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.
+
 log4j.rootLogger = WARN, stdout
 
 log4j.appender.stdout = org.apache.log4j.ConsoleAppender
diff --git a/core/src/test/resources/org/apache/struts2/TestAction-validation.xml b/core/src/test/resources/org/apache/struts2/TestAction-validation.xml
index 6f53dfb..65ba53f 100644
--- a/core/src/test/resources/org/apache/struts2/TestAction-validation.xml
+++ b/core/src/test/resources/org/apache/struts2/TestAction-validation.xml
@@ -1,3 +1,26 @@
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *
+ */
+-->
 <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
 <validators>
     <field name="foo">
diff --git a/core/src/test/resources/org/apache/struts2/TestAction.properties b/core/src/test/resources/org/apache/struts2/TestAction.properties
index 06c4339..d3e5581 100644
--- a/core/src/test/resources/org/apache/struts2/TestAction.properties
+++ b/core/src/test/resources/org/apache/struts2/TestAction.properties
@@ -1,3 +1,22 @@
+#  $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+# 
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you 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.
+
 simpleKey=Simple Message
 expressionKey=Foo is ${foo}
 messageFormatKey=Params are {0} {1} {2}
diff --git a/core/src/test/resources/org/apache/struts2/components/template/dummy.properties b/core/src/test/resources/org/apache/struts2/components/template/dummy.properties
index e69de29..183d078 100644
--- a/core/src/test/resources/org/apache/struts2/components/template/dummy.properties
+++ b/core/src/test/resources/org/apache/struts2/components/template/dummy.properties
@@ -0,0 +1,19 @@
+#  $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+# 
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you 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.
+
diff --git a/core/src/test/resources/org/apache/struts2/components/template/theme1/themeThroughClassPath.properties b/core/src/test/resources/org/apache/struts2/components/template/theme1/themeThroughClassPath.properties
index 1b04afa..257f75d 100644
--- a/core/src/test/resources/org/apache/struts2/components/template/theme1/themeThroughClassPath.properties
+++ b/core/src/test/resources/org/apache/struts2/components/template/theme1/themeThroughClassPath.properties
@@ -1 +1,20 @@
+#  $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+# 
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you 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.
+
 parent=xhtml
diff --git a/core/src/test/resources/org/apache/struts2/components/template/theme1/themeThroughFileSystem.properties b/core/src/test/resources/org/apache/struts2/components/template/theme1/themeThroughFileSystem.properties
index 1b04afa..257f75d 100644
--- a/core/src/test/resources/org/apache/struts2/components/template/theme1/themeThroughFileSystem.properties
+++ b/core/src/test/resources/org/apache/struts2/components/template/theme1/themeThroughFileSystem.properties
@@ -1 +1,20 @@
+#  $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+# 
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you 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.
+
 parent=xhtml
diff --git a/core/src/test/resources/org/apache/struts2/components/tempo.properties b/core/src/test/resources/org/apache/struts2/components/tempo.properties
index e69de29..183d078 100644
--- a/core/src/test/resources/org/apache/struts2/components/tempo.properties
+++ b/core/src/test/resources/org/apache/struts2/components/tempo.properties
@@ -0,0 +1,19 @@
+#  $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+# 
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you 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.
+
diff --git a/core/src/test/resources/org/apache/struts2/dispatcher/someJspFile.jsp b/core/src/test/resources/org/apache/struts2/dispatcher/someJspFile.jsp
index 6d615cc..9f12a03 100644
--- a/core/src/test/resources/org/apache/struts2/dispatcher/someJspFile.jsp
+++ b/core/src/test/resources/org/apache/struts2/dispatcher/someJspFile.jsp
@@ -1,5 +1,28 @@
 <%@ page language="java" contentType="text/html; charset=UTF-8"
     pageEncoding="UTF-8"%>
+<%--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *
+ */
+--%>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html>
 <head>
diff --git a/core/src/test/resources/org/apache/struts2/interceptor/FileUploadInterceptor.properties b/core/src/test/resources/org/apache/struts2/interceptor/FileUploadInterceptor.properties
index a5ad395..7d3bbad 100644
--- a/core/src/test/resources/org/apache/struts2/interceptor/FileUploadInterceptor.properties
+++ b/core/src/test/resources/org/apache/struts2/interceptor/FileUploadInterceptor.properties
@@ -1,3 +1,22 @@
+#  $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+# 
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you 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.
+
 ### Unit test of FileUploadInterceptor
 struts.messages.error.file.too.large=The file is to large to be uploaded {0} {1} {2} {3}
 struts.messages.error.uploading=Error uploading: {0}
diff --git a/core/src/test/resources/org/apache/struts2/othertest.properties b/core/src/test/resources/org/apache/struts2/othertest.properties
index f254366..8a67473 100644
--- a/core/src/test/resources/org/apache/struts2/othertest.properties
+++ b/core/src/test/resources/org/apache/struts2/othertest.properties
@@ -1 +1,20 @@
+#  $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+# 
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you 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.
+
 othertestkey=othertestvalue
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Autocompleter-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Autocompleter-1.txt
index 3b01b23..edfa57f 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Autocompleter-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Autocompleter-1.txt
@@ -9,8 +9,13 @@
  dropdownWidth="10"

  dropdownHeight="10"

  name="f"

+ keyName="i"

  initialValue="g"

  indicator="h"

  loadOnType="true"

  loadMinimum="3"

- visibleDownArrow="false">

+ visibleDownArrow="false"

+ buttonSrc="i"

+ templateCssPath="j"

+ dataFieldName="k"

+ searchLimit="1">

diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Autocompleter-2.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Autocompleter-2.txt
index 726f4d2..d8a24ff 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Autocompleter-2.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Autocompleter-2.txt
@@ -9,6 +9,10 @@
  dropdownWidth="10"

  dropdownHeight="10"

  name="f"

+ keyName="fKey"

+ buttonSrc="i"

+ templateCssPath="j"

+ searchLimit="1"

  >

  	<option value="d">d</option>

  	<option value="e">e</option>

diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/CheckboxList-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/CheckboxList-1.txt
index 7edb0d3..5b8a5b6 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/CheckboxList-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/CheckboxList-1.txt
@@ -5,5 +5,7 @@
 <label for="foo-1" class="checkboxLabel">world</label>
 <input type="checkbox" name="foo" value="foo" id="foo-2" title="mytitle" onchange="alert('foo');"/>
 <label for="foo-2" class="checkboxLabel">bar</label>
+<input type="checkbox" name="foo" value="baz" id="foo-3" title="mytitle" onchange="alert('foo');"/>
+<label for="foo-3" class="checkboxLabel"></label>
     </td>
 </tr>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/ComboBox-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/ComboBox-1.txt
index 050fa95..1c416a5 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/ComboBox-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/ComboBox-1.txt
@@ -1,13 +1,13 @@
 <tr>
-    <td class="tdLabel"><label for="foo" class="label">mylabel:</label></td>
+    <td class="tdLabel"><label for="cb" class="label">mylabel:</label></td>
     <td>
 <script type="text/javascript">
-	function autoPopulate_foo(targetElement) {
+	function autoPopulate_cb(targetElement) {
 		targetElement.form.elements['foo'].value=targetElement.options[targetElement.selectedIndex].value;
 	}
 </script>
-<input type="text" name="foo" value="hello" id="foo"/><br/>
-<select onChange="autoPopulate_foo(this);">
+<input type="text" name="foo" value="hello" id="cb"/><br/>
+<select onChange="autoPopulate_cb(this);">
     <option value="foo">foo</option>
     <option value="bar">bar</option>
     <option value="baz">baz</option>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/ComboBox-4.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/ComboBox-4.txt
new file mode 100644
index 0000000..26680b1
--- /dev/null
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/ComboBox-4.txt
@@ -0,0 +1,14 @@
+<tr>

+    <td class="tdLabel"><label for="cb.bc" class="label">mylabel:</label></td>

+    <td>

+<script type="text/javascript">

+	function autoPopulate_cb_bc(targetElement) {

+		targetElement.form.elements['foo'].value=targetElement.options[targetElement.selectedIndex].value;

+	}

+</script>

+<input type="text" name="foo" value="hello" id="cb.bc"/><br/>

+<select onChange="autoPopulate_cb_bc(this);">

+    <option value="foo">foo</option>

+</select>

+    </td>

+</tr>

diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/DateTimePickerTagTest-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/DateTimePickerTagTest-1.txt
index 6e5dcb8..b26416f 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/DateTimePickerTagTest-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/DateTimePickerTagTest-1.txt
@@ -16,6 +16,7 @@
          endDate="d"
          weekStartsOn="g"
          staticDisplay="false"
+         templateCssPath="j"
          saveFormat="rfc">
     </div>
 </td>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/DoubleSelect-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/DoubleSelect-1.txt
index b306be4..d6e8cfe 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/DoubleSelect-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/DoubleSelect-1.txt
@@ -1,12 +1,12 @@
 <tr>
     <td class="tdLabel"><label for="foo" class="label">mylabel:</label></td>
     <td>
-<select name="foo" id="foo" onmousedown="window.status='onmousedown';" onmouseup="window.status='onmouseup';" onmouseover="window.status='onmouseover';" onmousemove="window.status='onmousemove';" onmouseout="window.status='onmouseout';" onchange="fooRedirect(this.options.selectedIndex)">
+<select name="foo" id="foo" class="c1" style="s1" onmousedown="window.status='onmousedown';" onmouseup="window.status='onmouseup';" onmouseover="window.status='onmouseover';" onmousemove="window.status='onmousemove';" onmouseout="window.status='onmouseout';" onchange="fooRedirect(this.options.selectedIndex)">
     <option value="BE">Belgium</option>
     <option value="FR">France</option>
 </select>
 <br/>
-<select name="region">
+<select name="region" id="region" class="c2" style="s2">
 </select>
 <script type="text/javascript">
     var fooGroup = new Array(2 + 0);
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/DoubleSelect-2.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/DoubleSelect-2.txt
index 09cea18..8f63780 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/DoubleSelect-2.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/DoubleSelect-2.txt
@@ -6,7 +6,7 @@
     <option value="FR" selected="selected">France</option>
 </select>
 <br/>
-<select name="region">
+<select name="region" id="region">
 </select>
 <script type="text/javascript">
     var fooGroup = new Array(2 + 0);
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/DoubleSelect-3.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/DoubleSelect-3.txt
index 82955ec..6778f5d 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/DoubleSelect-3.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/DoubleSelect-3.txt
@@ -1,41 +1,41 @@
-<tr>
-    <td class="tdLabel"><label for="foo_bar" class="label">mylabel:</label></td>
-    <td>
-<select name="foo.bar" id="foo_bar" onmousedown="window.status='onmousedown';" onmouseup="window.status='onmouseup';" onmouseover="window.status='onmouseover';" onmousemove="window.status='onmousemove';" onmouseout="window.status='onmouseout';" onchange="foo_barRedirect(this.options.selectedIndex)">
-    <option value="BE">Belgium</option>
-    <option value="FR">France</option>
-</select>
-<br/>
-<select name="region">
-</select>
-<script type="text/javascript">
-    var foo_barGroup = new Array(2 + 0);
-    for (i = 0; i < (2 + 0); i++)
-    foo_barGroup[i] = new Array();
-
-    foo_barGroup[0][0] = new Option("Antwerp", "AN");
-    foo_barGroup[0][1] = new Option("Gent", "GN");
-    foo_barGroup[0][2] = new Option("Brugge", "BRG");
-    foo_barGroup[1][0] = new Option("Paris", "PA");
-    foo_barGroup[1][1] = new Option("Bordeaux", "BOR");
-
-    var foo_barTemp = document.inputForm.region;
-    foo_barRedirect(0);
-
-    function foo_barRedirect(x) {
-    	var selected = false;
-        for (m = foo_barTemp.options.length - 1; m >= 0; m--) {
-            foo_barTemp.options[m] = null;
-        }
-
-        for (i = 0; i < foo_barGroup[x].length; i++) {
-            foo_barTemp.options[i] = new Option(foo_barGroup[x][i].text, foo_barGroup[x][i].value);
-        }
-
-        if ((foo_barTemp.options.length > 0)  && (! selected)) {
-            foo_barTemp.options[0].selected = true;
-        }
-    }
-</script>
-    </td>
-</tr>
+<tr>

+    <td class="tdLabel"><label for="foo_bar" class="label">mylabel:</label></td>

+    <td>

+<select name="foo.bar" id="foo_bar" onmousedown="window.status='onmousedown';" onmouseup="window.status='onmouseup';" onmouseover="window.status='onmouseover';" onmousemove="window.status='onmousemove';" onmouseout="window.status='onmouseout';" onchange="foo_barRedirect(this.options.selectedIndex)">

+    <option value="BE">Belgium</option>

+    <option value="FR">France</option>

+</select>

+<br/>

+<select name="region" id="region">

+</select>

+<script type="text/javascript">

+    var foo_barGroup = new Array(2 + 0);

+    for (i = 0; i < (2 + 0); i++)

+    foo_barGroup[i] = new Array();

+

+    foo_barGroup[0][0] = new Option("Antwerp", "AN");

+    foo_barGroup[0][1] = new Option("Gent", "GN");

+    foo_barGroup[0][2] = new Option("Brugge", "BRG");

+    foo_barGroup[1][0] = new Option("Paris", "PA");

+    foo_barGroup[1][1] = new Option("Bordeaux", "BOR");

+

+    var foo_barTemp = document.inputForm.region;

+    foo_barRedirect(0);

+

+    function foo_barRedirect(x) {

+    	var selected = false;

+        for (m = foo_barTemp.options.length - 1; m >= 0; m--) {

+            foo_barTemp.options[m] = null;

+        }

+

+        for (i = 0; i < foo_barGroup[x].length; i++) {

+            foo_barTemp.options[i] = new Option(foo_barGroup[x][i].text, foo_barGroup[x][i].value);

+        }

+

+        if ((foo_barTemp.options.length > 0)  && (! selected)) {

+            foo_barTemp.options[0].selected = true;

+        }

+    }

+</script>

+    </td>

+</tr>

diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-1.txt
index 850faa1..bed4704 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-1.txt
@@ -1,4 +1,4 @@
-<form id="myAction" name="myForm" onsubmit="submitMe(); return true;" action="myAction" method="POST" enctype="myEncType" title="mytitle" accept-charset="UTF-8">
+<form id="myAction" name="myForm" onsubmit="submitMe(); return true;" action="myAction" method="post" enctype="myEncType" title="mytitle" accept-charset="UTF-8">
 <table class="wwFormTable">
 </table>
 </form>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-10.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-10.txt
index 5e6c687..6a6b291 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-10.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-10.txt
@@ -1,4 +1,4 @@
-<form id="testNamespaceAction" name="myForm" onsubmit="submitMe(); return true;" action="/testNamespace/testNamespaceAction.action" method="POST" enctype="myEncType" title="mytitle" accept-charset="UTF-8">
+<form id="testNamespaceAction" name="myForm" onsubmit="submitMe(); return true;" action="/testNamespace/testNamespaceAction.action" method="post" enctype="myEncType" title="mytitle" accept-charset="UTF-8">
 <table class="wwFormTable">
 </table>
 </form>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-11.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-11.txt
index 369ed54..a049674 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-11.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-11.txt
@@ -1,8 +1,8 @@
-<script src="/struts/xhtml/validation.js"></script>
-<form namespace="" id="myAction" name="myForm" onsubmit="submitMe(); return validateForm_myAction();" action="/myAction.action" method="POST" enctype="myEncType" title="mytitle" accept-charset="UTF-8">
+<script type="text/javascript" src="/struts/xhtml/validation.js"></script>
+<form namespace="" id="myAction" name="myForm" onsubmit="submitMe(); return validateForm_myAction();" action="/myAction.action" method="post" enctype="myEncType" title="mytitle" accept-charset="UTF-8">
 <table class="wwFormTable"> <tr>
     <td class="tdLabel"></td>
-    <td>	<script language="javascript" src="/struts/optiontransferselect.js"></script>
+    <td>	<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myUpDownSelectTag" size="5" id="myAction_myUpDownSelectTag" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-2.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-2.txt
index 105dbb0..a1eaf4d 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-2.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-2.txt
@@ -1,8 +1,8 @@
-<script src="/struts/xhtml/validation.js"></script>
-<form namespace="" id="myAction" name="myForm" onsubmit="submitMe(); return validateForm_myAction();" action="/myAction.action" method="POST" enctype="myEncType" title="mytitle" accept-charset="UTF-8">
+<script type="text/javascript" src="/struts/xhtml/validation.js"></script>
+<form namespace="" id="myAction" name="myForm" onsubmit="submitMe(); return validateForm_myAction();" action="/myAction.action" method="post" enctype="myEncType" title="mytitle" accept-charset="UTF-8">
 <table class="wwFormTable"> <tr>
     <td class="tdLabel"></td>
-    <td>	<script language="javascript" src="/struts/optiontransferselect.js"></script>
+    <td>	<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myUpDownSelectTag" size="5" id="myAction_myUpDownSelectTag" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-3.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-3.txt
index f058b15..d9ac104 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-3.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-3.txt
@@ -1,4 +1,4 @@
-<form id="testNamespaceAction" name="myForm" onsubmit="return true;" action="/testNamespace/testNamespaceAction.action" method="POST">
+<form id="testNamespaceAction" name="myForm" onsubmit="return true;" action="/testNamespace/testNamespaceAction.action" method="post">
 <table class="wwFormTable">
 </table>
 </form>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-4.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-4.txt
index 6cb85c4..b30aee1 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-4.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-4.txt
@@ -1,4 +1,4 @@
-<form id="foo" onsubmit="return true;" action="/foo.jsp" method="POST">
+<form id="foo" onsubmit="return true;" action="/foo.jsp" method="post">
 <table class="wwFormTable">
 </table>
 </form>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-5.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-5.txt
index 9ceee9b..9977152 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-5.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-5.txt
@@ -1,4 +1,4 @@
-<form id="testNamespaceAction" name="myForm"onsubmit="return true;" action="/testNamespace/testNamespaceAction.jspa" method="POST">
+<form id="testNamespaceAction" name="myForm"onsubmit="return true;" action="/testNamespace/testNamespaceAction.jspa" method="post">
 <table class="wwFormTable">
 </table>
 </form>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-6.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-6.txt
index 219f1c8..9a661a8 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-6.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-6.txt
@@ -1,7 +1,7 @@
-<form namespace="" id="myAction" name="myForm" onsubmit="submitMe(); return true;" action="myAction" method="POST" enctype="myEncType" title="mytitle">
+<form namespace="" id="myAction" name="myForm" onsubmit="submitMe(); return true;" action="myAction" method="post" enctype="myEncType" title="mytitle">
 <table class="wwFormTable"> <tr>
     <td class="tdLabel"></td>
-    <td>	<script language="javascript" src="/struts/optiontransferselect.js"></script>
+    <td>	<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myUpDownSelectTag" size="5" id="myAction_myUpDownSelectTag" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-7.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-7.txt
index 5cbaf30..0ef9690 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-7.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-7.txt
@@ -1,4 +1,4 @@
-<form id="test" onsubmit="return true;" action="test.html" method="POST">
+<form id="test" onsubmit="return true;" action="test.html" method="post">
 <table class="wwFormTable">
 </table>
 </form>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-8.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-8.txt
index 9ceee9b..9977152 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-8.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-8.txt
@@ -1,4 +1,4 @@
-<form id="testNamespaceAction" name="myForm"onsubmit="return true;" action="/testNamespace/testNamespaceAction.jspa" method="POST">
+<form id="testNamespaceAction" name="myForm"onsubmit="return true;" action="/testNamespace/testNamespaceAction.jspa" method="post">
 <table class="wwFormTable">
 </table>
 </form>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-9.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-9.txt
index 6fdb01a..ebb06ac 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-9.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-9.txt
@@ -1,4 +1,4 @@
-<form id="testAction" name="myForm" onsubmit="submitMe(); return true;" action="/testAction.action" method="POST" enctype="myEncType" title="mytitle" accept-charset="UTF-8">
+<form id="testAction" name="myForm" onsubmit="submitMe(); return true;" action="/testAction.action" method="post" enctype="myEncType" title="mytitle" accept-charset="UTF-8">
 <table class="wwFormTable">
 </table>
 </form>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-1.txt
index f4bacbe..1b11ce2 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-1.txt
@@ -1,6 +1,6 @@
 <link rel="stylesheet" href="/struts/xhtml/styles.css" type="text/css"/>
 
-<script language="JavaScript" type="text/javascript">
+<script type="text/javascript">
 	// Dojo configuration
 	djConfig={
 		baseRelativePath: "/struts/dojo",
@@ -10,8 +10,8 @@
 		//not needed, but allows the Venkman debugger to work with the includes};
 </script>
 
-<script language="JavaScript" type="text/javascript" src="/struts/dojo/dojo.js">
+<script type="text/javascript" src="/struts/dojo/dojo.js">
 </script>
 
-<script language="JavaScript" type="text/javascript" src="/struts/simple/dojoRequire.js">
+<script type="text/javascript" src="/struts/simple/dojoRequire.js">
 </script>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-2.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-2.txt
index d7c1996..d0f97cb 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-2.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-2.txt
@@ -1,5 +1,5 @@
 <link rel="stylesheet" href="/struts/xhtml/styles.css" type="text/css"/>
-<script language="JavaScript" type="text/javascript">
+<script type="text/javascript">
     // Dojo configuration
     djConfig = {
         baseRelativePath: "/struts/dojo",
@@ -8,11 +8,11 @@
         debugAtAllCosts: true // not needed, but allows the Venkman debugger to work with the includes
     };
 </script>
-<script language="JavaScript" type="text/javascript"
+<script type="text/javascript"
         src="/struts/dojo/dojo.js"></script>
-<script language="JavaScript" type="text/javascript"
+<script type="text/javascript"
         src="/struts/simple/dojoRequire.js"></script>
-<script language="JavaScript" type="text/javascript"
+<script type="text/javascript"
         src="/struts/ajax/dojoRequire.js"></script>
-<script language="JavaScript" type="text/javascript"
+<script type="text/javascript"
         src="/struts/CommonFunctions.js"></script>
\ No newline at end of file
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-3.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-3.txt
index 3df2327..aedbffb 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-3.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-3.txt
@@ -1,5 +1,5 @@
 <link rel="stylesheet" href="/struts/xhtml/styles.css" type="text/css"/>
-<script language="JavaScript" type="text/javascript">
+<script type="text/javascript">
     // Dojo configuration
     djConfig = {
         baseRelativePath: "/struts/dojo",
@@ -8,11 +8,11 @@
         debugAtAllCosts: true // not needed, but allows the Venkman debugger to work with the includes
     };
 </script>
-<script language="JavaScript" type="text/javascript"
+<script type="text/javascript"
         src="/struts/dojo/dojo.js"></script>
-<script language="JavaScript" type="text/javascript"
+<script type="text/javascript"
         src="/struts/simple/dojoRequire.js"></script>
-<script language="JavaScript" type="text/javascript"
+<script type="text/javascript"
         src="/struts/ajax/dojoRequire.js"></script>
-<script language="JavaScript" type="text/javascript"
+<script type="text/javascript"
         src="/struts/CommonFunctions.js"></script>
\ No newline at end of file
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-4.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-4.txt
index f4bacbe..1b11ce2 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-4.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-4.txt
@@ -1,6 +1,6 @@
 <link rel="stylesheet" href="/struts/xhtml/styles.css" type="text/css"/>
 
-<script language="JavaScript" type="text/javascript">
+<script type="text/javascript">
 	// Dojo configuration
 	djConfig={
 		baseRelativePath: "/struts/dojo",
@@ -10,8 +10,8 @@
 		//not needed, but allows the Venkman debugger to work with the includes};
 </script>
 
-<script language="JavaScript" type="text/javascript" src="/struts/dojo/dojo.js">
+<script type="text/javascript" src="/struts/dojo/dojo.js">
 </script>
 
-<script language="JavaScript" type="text/javascript" src="/struts/simple/dojoRequire.js">
+<script type="text/javascript" src="/struts/simple/dojoRequire.js">
 </script>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-4.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-4.txt
new file mode 100644
index 0000000..27ced4c
--- /dev/null
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-4.txt
@@ -0,0 +1,40 @@
+<tr>
+    <td class="tdLabel"><label for="mySelection" class="label">My Selection:</label></td>
+    <td>
+<select name="mySelection" id="mySelection">
+    <option value="ONE">one</option>
+    <option value="TWO">two</option>
+    <option value="THREE">three</option>
+
+<optgroup 
+	label="My Label 1"
+>
+
+	<option value="AAA"
+	>aaa
+	</option>
+	<option value="111111"
+	>bbb
+	</option>
+	<option value="CCC"
+	>ccc
+	</option>
+</optgroup>
+<optgroup 
+	label="My Label 2"
+>
+
+	<option value="DDD"
+	>ddd
+	</option>
+	<option value="EEE"
+	>eee
+	</option>
+	<option value="FFF"
+	>fff
+	</option>
+</optgroup>
+
+</select>
+</td>
+</tr>
\ No newline at end of file
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Radio-4.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Radio-4.txt
new file mode 100644
index 0000000..1ac889a
--- /dev/null
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Radio-4.txt
@@ -0,0 +1,8 @@
+<tr>
+    <td class="tdLabel"><label for="myname" class="label">mylabel:</label></td>
+    <td>
+<input type="radio" name="myname" id="myname" checked="checked" value=""/><label for="myname">N/A</label>
+<input type="radio" name="myname" id="myname1" value="1"/><label for="myname1">One</label>
+<input type="radio" name="myname" id="myname2" value="2"/><label for="myname2">Two</label>
+    </td>
+</tr>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Select-11.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Select-11.txt
new file mode 100644
index 0000000..09aad69
--- /dev/null
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Select-11.txt
@@ -0,0 +1,9 @@
+<tr>
+    <td class="tdLabel"><label for="fooInt" class="label">mylabel:</label></td>
+    <td><select name="fooInt" id="fooInt">
+    <option value="headerKey">headerValue</option>
+    <option value=""></option>
+    <option value="1" selected="selected">hello</option>
+    <option value="2">world</option>
+</select></td>
+</tr>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Select-12.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Select-12.txt
new file mode 100755
index 0000000..a3b44f1
--- /dev/null
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Select-12.txt
@@ -0,0 +1,8 @@
+<tr>

+    <td class="tdLabel"><label for="collection" class="label">mylabel:</label></td>

+    <td><select name="collection" id="collection" multiple="multiple" onmousedown="alert('onmousedown');" onmouseup="alert('onmouseup');" onmouseover="alert('onmouseover');" onmousemove="alert('onmousemove');" onmouseout="alert('onmouseout');">

+    <option value="1" selected="selected">foo</option>

+    <option value="2">bar</option>

+    <option value="300000000" selected="selected">foobar</option>

+</select></td>

+</tr>

diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Select-13.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Select-13.txt
new file mode 100644
index 0000000..9101514
--- /dev/null
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Select-13.txt
@@ -0,0 +1,7 @@
+<tr>
+    <td class="tdLabel"><label for="status" class="label">mylabel:</label></td>
+    <td><select name="status" id="status">
+    <option value="INIT">init</option>
+    <option value="COMPLETED" selected="selected">completed</option>
+</select></td>
+</tr>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Submit-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Submit-1.txt
index e0f675d..9057dd2 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Submit-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Submit-1.txt
@@ -1,3 +1,3 @@
 <tr>
-    <td colspan="2"><div align="left"><input type="submit" id="myname" name="myname" value="bar"/></div></td>
+    <td colspan="2"><div align="left"><input type="submit" id="myname" name="myname" value="bar" disabled="disabled" tabindex="1"/></div></td>
 </tr>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Submit-3.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Submit-3.txt
index 0c074b8..a2e9c8a 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Submit-3.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Submit-3.txt
@@ -1,3 +1,3 @@
 <tr>
-    <td colspan="2"><div align="right"><button type="submit" id="myname" name="myname" value="bar">bar</button></div></td>
+    <td colspan="2"><div align="right"><button type="submit" id="myname" name="myname" value="bar" disabled="disabled" tabindex="1">bar</button></div></td>
 </tr>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Submit-5.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Submit-5.txt
index eff2dcd..b55832d 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Submit-5.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Submit-5.txt
@@ -1,3 +1,3 @@
 <tr>
-    <td colspan="2"><div align="right"><input type="image" alt="bar" id="myname" name="myname" value="bar"/></div></td>
+    <td colspan="2"><div align="right"><input type="image" alt="bar" id="myname" name="myname" value="bar" disabled="disabled"/></div></td>
 </tr>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-1.txt
index 43e5adf..c0088cc 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-1.txt
@@ -1,12 +1,9 @@
 <script type="text/javascript">
-  dojo.require("dojo.widget.TabContainer");
-  dojo.require("dojo.widget.LinkPane");
-  dojo.require("dojo.widget.ContentPane");
+dojo.require("dojo.widget.TabContainer");
+dojo.require("dojo.widget.LinkPane");
+dojo.require("dojo.widget.ContentPane");
 </script>
 <div
-    dojoType="TabContainer"
-    selectedTab="a"
-    labelPosition="b"
-    closeButton="c"
-    doLayout="true">
-</div>
\ No newline at end of file
+  dojoType="TabContainer"
+  doLayout="false">
+</div>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-2.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-2.txt
index 8636901..c787be6 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-2.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-2.txt
@@ -1,9 +1,19 @@
 <script type="text/javascript">
-  dojo.require("dojo.widget.TabContainer");
-  dojo.require("dojo.widget.LinkPane");
-  dojo.require("dojo.widget.ContentPane");
+dojo.require("dojo.widget.TabContainer");
+dojo.require("dojo.widget.LinkPane");
+dojo.require("dojo.widget.ContentPane");
+dojo.require("dojo.io.cookie");
+dojo.addOnLoad(function(){
+    var tabContainer=dojo.widget.byId("foo");
+    var selectedTab=dojo.io.cookie.getCookie("Struts2TabbedPanel_selectedTab_foo");
+    if( selectedTab ){
+        tabContainer.selectChild(selectedTab,tabContainer.correspondingPageButton);
+    }
+    dojo.event.connect(tabContainer,"selectChild",function(evt){
+        dojo.io.cookie.setCookie("Struts2TabbedPanel_selectedTab_foo",evt.widgetId,1,null,null,null);
+        }
+    )
+});
 </script>
-<div
-    dojoType="TabContainer"
-    doLayout="false">
+<div dojoType="TabContainer" id="foo" doLayout="false">
 </div>
\ No newline at end of file
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-3.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-3.txt
index fe74364..711340e3a 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-3.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-3.txt
@@ -1,10 +1,15 @@
 <script type="text/javascript">
-  dojo.require("dojo.widget.TabContainer");
-  dojo.require("dojo.widget.LinkPane");
-  dojo.require("dojo.widget.ContentPane");
+dojo.require("dojo.widget.TabContainer");
+dojo.require("dojo.widget.LinkPane");
+dojo.require("dojo.widget.ContentPane");
+dojo.require("dojo.io.cookie");
+dojo.addOnLoad(function(){
+    var tabContainer=dojo.widget.byId("foo");
+    dojo.event.connect(tabContainer,"selectChild",function(evt){
+        dojo.io.cookie.setCookie("Struts2TabbedPanel_selectedTab_foo",evt.widgetId,1,null,null,null);
+        }
+    )
+});
 </script>
-<div
-    dojoType="TabContainer"
-    labelPosition="right-h"
-    doLayout="true">
+<div dojoType="TabContainer" id="foo" selectedTab="bar" doLayout="false">
 </div>
\ No newline at end of file
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/div-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/div-1.txt
index 96eacd2..0d6782a 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/div-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/div-1.txt
@@ -5,6 +5,8 @@
   autoStart="true"
   startTimerListenTopics="h"
   stopTimerListenTopics="i"
+  refreshOnShow="true"
+  scriptSeparation="false"
   id="mylabel"
   href="a"
   loadingText="b"
@@ -14,5 +16,6 @@
   afterLoading="k"
   handler="l"
   indicator="m"
-  showError="true">
+  showError="true"
+  showLoading="true">
 </div>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/href-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/href-1.txt
index 7913820..1dbd08c 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/href-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/href-1.txt
@@ -11,5 +11,6 @@
  targets="h"
  handler="i"
  indicator="k"
- showError="true">
+ showError="true"
+ showLoading="true">
 </a>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/href-2.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/href-2.txt
new file mode 100644
index 0000000..ec8b7ad
--- /dev/null
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/href-2.txt
@@ -0,0 +1,4 @@
+<a
+ id="mylink"
+ href="a&#34;">
+</a>
\ No newline at end of file
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/inputtransferselect-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/inputtransferselect-1.txt
index 6f6a812..cc8b0ad 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/inputtransferselect-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/inputtransferselect-1.txt
@@ -1,7 +1,7 @@
 <tr>
   <tdclass="tdLabel"></td>
   <td>
-  <scriptlanguage="javascript"src="/struts/inputtransferselect.js"></script>
+  <script type="text/javascript" src="/struts/inputtransferselect.js"></script>
   <tableborder="0">
   <tr><td><input type="text" name="collection_input" id="collection_input"/></td>
       <td valign="middle"align="center"><inputtype="button"value="-&gt;"onclick="addOption(document.getElementById('collection_input'),document.getElementById('collection'))"/>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-1.txt
index 27e8657..2d40b26 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-1.txt
@@ -1,7 +1,7 @@
 <tr> 
 <td class="tdLabel"></td> 
 <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table border="0">
 <tr>
 <td>
@@ -17,13 +17,13 @@
 </td>
 <td valign="middle" align="center">
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="Left" onclick="moveSelectedOptions(document.getElementById('doubleId'), document.getElementById('id'), false, 'Double Header Key', '')" /><br/><br/>
+			value="Left" onclick="moveSelectedOptions(document.getElementById('doubleId'), document.getElementById('id'), false, 'Double Header Key', '');" /><br/><br/>
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="Right" onclick="moveSelectedOptions(document.getElementById('id'), document.getElementById('doubleId'), false, 'Header Key', '')" /><br/><br/>
+			value="Right" onclick="moveSelectedOptions(document.getElementById('id'), document.getElementById('doubleId'), false, 'Header Key', '');" /><br/><br/>
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="All Left" onclick="moveAllOptions(document.getElementById('doubleId'), document.getElementById('id'), false, 'Double Header Key', '')" /><br/><br/>
+			value="All Left" onclick="moveAllOptions(document.getElementById('doubleId'), document.getElementById('id'), false, 'Double Header Key', '');" /><br/><br/>
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="All Right" onclick="moveAllOptions(document.getElementById('id'), document.getElementById('doubleId'), false, 'Header Key', '')" /><br/><br/>	
+			value="All Right" onclick="moveAllOptions(document.getElementById('id'), document.getElementById('doubleId'), false, 'Header Key', '');" /><br/><br/>
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
 			value="Select All" onclick="selectAllOptionsExceptSome(document.getElementById('id'), 'key', 'Header Key');selectAllOptionsExceptSome(document.getElementById('doubleId'), 'key', 'Double Header Key');" /><br/><br/>
 </td> 
@@ -34,6 +34,8 @@
 		size="20"		
 		multiple="multiple"
 		id="doubleId"
+		class="c2"
+		style="s2"
 	>
     	<option value="Double Header Key">Double Header Value</option>
     	<option value=""></option>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-2.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-2.txt
index a03b0f5..0ea63d9 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-2.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-2.txt
@@ -1,7 +1,7 @@
 <tr> 
 <td class="tdLabel"></td>
 <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table border="0">
 <tr>
 <td>
@@ -18,13 +18,13 @@
 </td>
 <td valign="middle" align="center">
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="Left" onclick="moveSelectedOptions(document.getElementById('doubleId'), document.getElementById('id'), false, 'Double Header Key', '')" /><br/><br/>
+			value="Left" onclick="moveSelectedOptions(document.getElementById('doubleId'), document.getElementById('id'), false, 'Double Header Key', '');" /><br/><br/>
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="Right" onclick="moveSelectedOptions(document.getElementById('id'), document.getElementById('doubleId'), false, 'Header Key', '')" /><br/><br/>
+			value="Right" onclick="moveSelectedOptions(document.getElementById('id'), document.getElementById('doubleId'), false, 'Header Key', '');" /><br/><br/>
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="All Left" onclick="moveAllOptions(document.getElementById('doubleId'), document.getElementById('id'), false, 'Double Header Key', '')" /><br/><br/>
+			value="All Left" onclick="moveAllOptions(document.getElementById('doubleId'), document.getElementById('id'), false, 'Double Header Key', '');" /><br/><br/>
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="All Right" onclick="moveAllOptions(document.getElementById('id'), document.getElementById('doubleId'), false, 'Header Key', '')" /><br/><br/>	
+			value="All Right" onclick="moveAllOptions(document.getElementById('id'), document.getElementById('doubleId'), false, 'Header Key', '');" /><br/><br/>	
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
 			value="Select All" onclick="selectAllOptionsExceptSome(document.getElementById('id'), 'key', 'Header Key');selectAllOptionsExceptSome(document.getElementById('doubleId'), 'key', 'Double Header Key');" /><br/><br/>
 </td> <td>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-3.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-3.txt
index e98da10..9476a44 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-3.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-3.txt
@@ -1,7 +1,7 @@
 <tr> 
 <td class="tdLabel"></td>
 <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table border="0">
 <tr>
 <td>
@@ -17,13 +17,13 @@
 </td>
 <td valign="middle" align="center">
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="Left" onclick="moveSelectedOptions(document.getElementById('doubleId'), document.getElementById('id'), false, '')" /><br/><br/>
+			value="Left" onclick="moveSelectedOptions(document.getElementById('doubleId'), document.getElementById('id'), false, '');" /><br/><br/>
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="Right" onclick="moveSelectedOptions(document.getElementById('id'), document.getElementById('doubleId'), false, '')" /><br/><br/>
+			value="Right" onclick="moveSelectedOptions(document.getElementById('id'), document.getElementById('doubleId'), false, '');" /><br/><br/>
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="All Left" onclick="moveAllOptions(document.getElementById('doubleId'), document.getElementById('id'), false, '')" /><br/><br/>
+			value="All Left" onclick="moveAllOptions(document.getElementById('doubleId'), document.getElementById('id'), false, '');" /><br/><br/>
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="All Right" onclick="moveAllOptions(document.getElementById('id'), document.getElementById('doubleId'), false, '')" /><br/><br/>	
+			value="All Right" onclick="moveAllOptions(document.getElementById('id'), document.getElementById('doubleId'), false, '');" /><br/><br/>	
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
 			value="Select All" onclick="selectAllOptions(document.getElementById('id'));selectAllOptions(document.getElementById('doubleId'));" /><br/><br/>
 </td>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-4.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-4.txt
index c60e450..f9b3a2c 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-4.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-4.txt
@@ -1,7 +1,7 @@
 <tr> 
 <td class="tdLabel"></td>
 <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table border="0">
 <tr>
 <td>
@@ -18,13 +18,13 @@
 </td>
 <td valign="middle" align="center">
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="Left" onclick="moveSelectedOptions(document.getElementById('doubleId'), document.getElementById('id'), false, '')" /><br/><br/>
+			value="Left" onclick="moveSelectedOptions(document.getElementById('doubleId'), document.getElementById('id'), false, '');" /><br/><br/>
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="Right" onclick="moveSelectedOptions(document.getElementById('id'), document.getElementById('doubleId'), false, 'Header Key', '')" /><br/><br/>
+			value="Right" onclick="moveSelectedOptions(document.getElementById('id'), document.getElementById('doubleId'), false, 'Header Key', '');" /><br/><br/>
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="All Left" onclick="moveAllOptions(document.getElementById('doubleId'), document.getElementById('id'), false, '')" /><br/><br/>
+			value="All Left" onclick="moveAllOptions(document.getElementById('doubleId'), document.getElementById('id'), false, '');" /><br/><br/>
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="All Right" onclick="moveAllOptions(document.getElementById('id'), document.getElementById('doubleId'), false, 'Header Key', '')" /><br/><br/>	
+			value="All Right" onclick="moveAllOptions(document.getElementById('id'), document.getElementById('doubleId'), false, 'Header Key', '');" /><br/><br/>	
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
 			value="Select All" onclick="selectAllOptionsExceptSome(document.getElementById('id'), 'key', 'Header Key');selectAllOptions(document.getElementById('doubleId'));" /><br/><br/>
 </td>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-5.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-5.txt
index 04c0609..a13a309 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-5.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-5.txt
@@ -1,7 +1,7 @@
 <tr> 
 <td class="tdLabel"></td> 
 <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table border="0">
 <tr>
 <td>
@@ -17,13 +17,13 @@
 </td>
 <td valign="middle" align="center">
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="Left" onclick="moveSelectedOptions(document.getElementById('doubleId'), document.getElementById('id'), false, 'Double Header Key', '')" /><br/><br/>
+			value="Left" onclick="moveSelectedOptions(document.getElementById('doubleId'), document.getElementById('id'), false, 'Double Header Key', '');" /><br/><br/>
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="Right" onclick="moveSelectedOptions(document.getElementById('id'), document.getElementById('doubleId'), false, 'Header Key', '')" /><br/><br/>
+			value="Right" onclick="moveSelectedOptions(document.getElementById('id'), document.getElementById('doubleId'), false, 'Header Key', '');" /><br/><br/>
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="All Left" onclick="moveAllOptions(document.getElementById('doubleId'), document.getElementById('id'), false, 'Double Header Key', '')" /><br/><br/>
+			value="All Left" onclick="moveAllOptions(document.getElementById('doubleId'), document.getElementById('id'), false, 'Double Header Key', '');" /><br/><br/>
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="All Right" onclick="moveAllOptions(document.getElementById('id'), document.getElementById('doubleId'), false, 'Header Key', '')" /><br/><br/>	
+			value="All Right" onclick="moveAllOptions(document.getElementById('id'), document.getElementById('doubleId'), false, 'Header Key', '');" /><br/><br/>	
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
 			value="Select All" onclick="selectAllOptionsExceptSome(document.getElementById('id'), 'key', 'Header Key');selectAllOptionsExceptSome(document.getElementById('doubleId'), 'key', 'Double Header Key');" /><br/><br/>
 </td>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-6.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-6.txt
index 511d36e..17948b8 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-6.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-6.txt
@@ -1,7 +1,7 @@
 <tr> 
 <td class="tdLabel"></td>
 <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table border="0">
 <tr>
 <td>
@@ -18,13 +18,13 @@
 </td>
 <td valign="middle" align="center">
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="Left" onclick="moveSelectedOptions(document.getElementById('doubleId'), document.getElementById('id'), false, 'Double Header Key', '')" /><br/><br/>
+			value="Left" onclick="moveSelectedOptions(document.getElementById('doubleId'), document.getElementById('id'), false, 'Double Header Key', '');" /><br/><br/>
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="Right" onclick="moveSelectedOptions(document.getElementById('id'), document.getElementById('doubleId'), false, 'Header Key', '')" /><br/><br/>
+			value="Right" onclick="moveSelectedOptions(document.getElementById('id'), document.getElementById('doubleId'), false, 'Header Key', '');" /><br/><br/>
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="All Left" onclick="moveAllOptions(document.getElementById('doubleId'), document.getElementById('id'), false, 'Double Header Key', '')" /><br/><br/>
+			value="All Left" onclick="moveAllOptions(document.getElementById('doubleId'), document.getElementById('id'), false, 'Double Header Key', '');" /><br/><br/>
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="All Right" onclick="moveAllOptions(document.getElementById('id'), document.getElementById('doubleId'), false, 'Header Key', '')" /><br/><br/>	
+			value="All Right" onclick="moveAllOptions(document.getElementById('id'), document.getElementById('doubleId'), false, 'Header Key', '');" /><br/><br/>	
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
 			value="Select All" onclick="selectAllOptionsExceptSome(document.getElementById('id'), 'key', 'Header Key');selectAllOptionsExceptSome(document.getElementById('doubleId'), 'key', 'Double Header Key');" /><br/><br/>
 </td>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-7.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-7.txt
index bea9f53..4517c93 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-7.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-7.txt
@@ -1,7 +1,7 @@
 <tr> 
 <td class="tdLabel"></td>
 <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table border="0">
 <tr>
 <td>
@@ -18,9 +18,9 @@
 </td>
 <td valign="middle" align="center">
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="Left" onclick="moveSelectedOptions(document.getElementById('doubleId'), document.getElementById('id'), false, 'Double Header Key', '')" /><br/><br/>
+			value="Left" onclick="moveSelectedOptions(document.getElementById('doubleId'), document.getElementById('id'), false, 'Double Header Key', '');alert('Moving Left');" /><br/><br/>
 	<input type="button" class="buttonCssClass" style="buttonCssStyle"
-			value="Right" onclick="moveSelectedOptions(document.getElementById('id'), document.getElementById('doubleId'), false, 'Header Key', '')" /><br/><br/>
+			value="Right" onclick="moveSelectedOptions(document.getElementById('id'), document.getElementById('doubleId'), false, 'Header Key', '');alert('Moving Right');" /><br/><br/>
 </td> 
 <td>
 	<label for="rightTitle">Title Right</label><br/>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-1.txt
index f2b7a85..1e6cd23 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-1.txt
@@ -16,6 +16,7 @@
   afterLoading="g"
   handler="h"
   indicator="l"
+  showLoading="true"
   />
   </div>
   </td>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-1.txt
index e1c09e4..1555ddf 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-1.txt
@@ -1,4 +1,4 @@
-<form id="myFormId" name="myForm" onsubmit="return true;" action="/testAction.action" method="POST">
+<form id="myFormId" name="myForm" onsubmit="return true;" action="/testAction.action" method="post">
  <table class="wwFormTable"> 
 <tr>
     <td class="tdLabel"><label for="myId" class="label">MyLabel:
@@ -16,7 +16,7 @@
 </form>
 
 <!-- javascript that is needed for tooltips -->
-<script language="JavaScript" type="text/javascript">dojo.require("dojo.widget.html.Tooltip");dojo.require("dojo.fx.html");</script>
+<script type="text/javascript">dojo.require("dojo.widget.Tooltip");dojo.require("dojo.fx.html");</script>
 
 
 
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-2.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-2.txt
index 847f566..0679890 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-2.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-2.txt
@@ -1,4 +1,4 @@
-<form id="myFormId" name="myForm" onsubmit="return true;" action="/testAction.action" method="POST">
+<form id="myFormId" name="myForm" onsubmit="return true;" action="/testAction.action" method="post">
  <table class="wwFormTable"> 
 <tr>
     <td class="tdLabel"><label for="myId" class="label">MyLabel:
@@ -16,4 +16,4 @@
 </form>
 
 <!-- javascript that is needed for tooltips -->
-<script language="JavaScript" type="text/javascript">dojo.require("dojo.widget.html.Tooltip");dojo.require("dojo.fx.html");</script>
+<script type="text/javascript">dojo.require("dojo.widget.Tooltip");dojo.require("dojo.fx.html");</script>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-3.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-3.txt
index 2a84222..48493df 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-3.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-3.txt
@@ -1,4 +1,4 @@
-<form id="myFormId" name="myForm" onsubmit="return true;" action="/testAction.action" method="POST">
+<form id="myFormId" name="myForm" onsubmit="return true;" action="/testAction.action" method="post">
  <table class="wwFormTable"> 
 <tr>
     <td class="tdLabel"><label for="myId" class="label">MyLabel:
@@ -16,5 +16,5 @@
 </form>
 
 <!-- javascript that is needed for tooltips -->
-<script language="JavaScript" type="text/javascript">dojo.require("dojo.widget.html.Tooltip");dojo.require("dojo.fx.html");</script>
+<script type="text/javascript">dojo.require("dojo.widget.Tooltip");dojo.require("dojo.fx.html");</script>
 
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/tree-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/tree-1.txt
index 069d7f5..eadb67c 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/tree-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/tree-1.txt
@@ -1,4 +1,4 @@
-<script language="JavaScript" type="text/javascript">
+<script type="text/javascript">
         <!--
         dojo.require("dojo.lang.*");
         dojo.require("dojo.widget.*");
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/tree-2.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/tree-2.txt
index bac2e5f..f64c2b6 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/tree-2.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/tree-2.txt
@@ -1,4 +1,4 @@
-<script language="JavaScript" type="text/javascript">
+<script type="text/javascript">
         <!--
         dojo.require("dojo.lang.*");
         dojo.require("dojo.widget.*");
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-1.txt
index 3f51a35..e57400c 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-1.txt
@@ -1,5 +1,5 @@
 <tr> <td class="tdLabel"></td> <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myName" size="5" id="myId" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-10.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-10.txt
index a41c4ec..08ea5b3 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-10.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-10.txt
@@ -1,5 +1,5 @@
 <tr> <td class="tdLabel"></td> <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myName" size="5" id="myId" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-11.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-11.txt
index bb322b2..b902ebd 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-11.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-11.txt
@@ -1,5 +1,5 @@
 <tr> <td class="tdLabel"></td> <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myName" size="5" id="myId" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-2.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-2.txt
index add362f..73bc156 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-2.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-2.txt
@@ -1,5 +1,5 @@
 <tr> <td class="tdLabel"></td> <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myName" size="5" id="myId" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-3.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-3.txt
index 30992b4..8824360 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-3.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-3.txt
@@ -1,5 +1,5 @@
 <tr> <td class="tdLabel"></td> <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myName" size="5" id="myId" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-4.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-4.txt
index 5f84a62..0158aa3 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-4.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-4.txt
@@ -1,5 +1,5 @@
 <tr> <td class="tdLabel"></td> <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myName" size="5" id="myId" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-5.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-5.txt
index 7b80541..65d9749 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-5.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-5.txt
@@ -1,5 +1,5 @@
 <tr> <td class="tdLabel"></td> <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myName" size="5" id="myId" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-6.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-6.txt
index c1d8ccd..ec1ab7e 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-6.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-6.txt
@@ -1,5 +1,5 @@
 <tr> <td class="tdLabel"></td> <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myName" size="5" id="myId" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-7.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-7.txt
index 7b8d635..06e0709 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-7.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-7.txt
@@ -1,5 +1,5 @@
 <tr> <td class="tdLabel"></td> <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myName" size="5" id="myId" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-8.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-8.txt
index 3cbfbfc..ac2c551 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-8.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-8.txt
@@ -1,5 +1,5 @@
 <tr> <td class="tdLabel"></td> <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myName" size="5" id="myId" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-9.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-9.txt
index d6067ce..4baaa90 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-9.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-9.txt
@@ -1,5 +1,5 @@
 <tr> <td class="tdLabel"></td> <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myName" size="5" id="myId" multiple="multiple">
diff --git a/core/src/test/resources/struts.properties b/core/src/test/resources/struts.properties
index 5766ea5..f350553 100644
--- a/core/src/test/resources/struts.properties
+++ b/core/src/test/resources/struts.properties
@@ -1,3 +1,22 @@
+#  $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+# 
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you 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.
+
 struts.i18n.encoding=ISO-8859-1
 struts.locale=de_DE
 struts.multipart.saveDir=\temp
diff --git a/core/src/test/resources/struts.xml b/core/src/test/resources/struts.xml
index 2d773c6..5257a6c 100644
--- a/core/src/test/resources/struts.xml
+++ b/core/src/test/resources/struts.xml
@@ -1,3 +1,25 @@
+<!--
+/*
+ * $Id: RequestUtils.java 471717 2006-11-06 12:50:18Z husted $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <!DOCTYPE struts PUBLIC
           "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
           "http://struts.apache.org/dtds/struts-2.0.dtd">
diff --git a/core/src/test/resources/template/test/Component.ftl b/core/src/test/resources/template/test/Component.ftl
index dbda224..62395fa 100644
--- a/core/src/test/resources/template/test/Component.ftl
+++ b/core/src/test/resources/template/test/Component.ftl
@@ -1,3 +1,26 @@
+<#--
+/*
+ * $Id: layout.jsp 503802 2007-02-05 18:36:44Z germuska $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *
+ */
+-->
 param hello     = ${parameters.hello}
 param argle     = ${parameters.argle}
 param glip      = ${parameters.glip}
diff --git a/core/src/test/resources/template/test/checkbox.jsp b/core/src/test/resources/template/test/checkbox.jsp
index dc82fcc..1982c7d 100644
--- a/core/src/test/resources/template/test/checkbox.jsp
+++ b/core/src/test/resources/template/test/checkbox.jsp
@@ -1,3 +1,26 @@
+<%--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *
+ */
+--%>
 <%@ taglib prefix="s" uri="/struts-tags" %>
 
 <input type="checkbox" <s:if test="parameters['nameValue']">checked="checked"</s:if>
diff --git a/core/src/test/resources/test.properties b/core/src/test/resources/test.properties
index 8ec9331..9a73eee 100644
--- a/core/src/test/resources/test.properties
+++ b/core/src/test/resources/test.properties
@@ -1 +1,20 @@
+#  $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+# 
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you 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.
+
 testkey=testvalue
diff --git a/core/src/test/resources/testmessages.properties b/core/src/test/resources/testmessages.properties
index 3987438..72d8918 100644
--- a/core/src/test/resources/testmessages.properties
+++ b/core/src/test/resources/testmessages.properties
@@ -1,2 +1,21 @@
+#  $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+# 
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you 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.
+
 default.testmessage=This is a test message
 struts.messages.invalid.token=Replaced message for token tag
diff --git a/core/src/test/resources/testmessages2.properties b/core/src/test/resources/testmessages2.properties
index 12472b8..b06966b 100644
--- a/core/src/test/resources/testmessages2.properties
+++ b/core/src/test/resources/testmessages2.properties
@@ -1 +1,20 @@
+#  $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+# 
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you 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.
+
 default.testmessage2=This is another test message
diff --git a/core/src/test/resources/validators.xml b/core/src/test/resources/validators.xml
index 4bd0842..b63e84f 100644
--- a/core/src/test/resources/validators.xml
+++ b/core/src/test/resources/validators.xml
@@ -1,3 +1,28 @@
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<!DOCTYPE validators PUBLIC
+        "-//OpenSymphony Group//XWork Validator Config 1.0//EN"
+        "http://www.opensymphony.com/xwork/xwork-validator-config-1.0.dtd">
 <validators>
     <validator name="required" class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/>
     <validator name="requiredstring" class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/>
diff --git a/plugins/codebehind/pom.xml b/plugins/codebehind/pom.xml
index 416c01c..a6c18ea 100644
--- a/plugins/codebehind/pom.xml
+++ b/plugins/codebehind/pom.xml
@@ -1,21 +1,42 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.0.5</version>
+        <version>2.0.14</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-codebehind-plugin</artifactId>
     <packaging>jar</packaging>
     <name>Struts 2 Codebehind Plugin</name>
-    
+
     <scm>
-       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/codebehind/</connection>
-       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/codebehind/</developerConnection>
-       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/plugins/codebehind/</url>
+       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/codebehind</connection>
+       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/codebehind</developerConnection>
+       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/tags/STRUTS_2_0_14/plugins/codebehind</url>
     </scm>
 
     <dependencies>
@@ -57,9 +78,9 @@
             <scope>provided</scope>
         </dependency>
 
- 
 
 
- 
+
+
    </dependencies>
 </project>
diff --git a/plugins/codebehind/src/main/java/org/apache/struts2/codebehind/CodebehindUnknownHandler.java b/plugins/codebehind/src/main/java/org/apache/struts2/codebehind/CodebehindUnknownHandler.java
index 0b7211f..1a49545 100644
--- a/plugins/codebehind/src/main/java/org/apache/struts2/codebehind/CodebehindUnknownHandler.java
+++ b/plugins/codebehind/src/main/java/org/apache/struts2/codebehind/CodebehindUnknownHandler.java
@@ -41,6 +41,7 @@
 import com.opensymphony.xwork2.UnknownHandler;
 import com.opensymphony.xwork2.XWorkException;
 import com.opensymphony.xwork2.config.Configuration;
+import com.opensymphony.xwork2.config.ConfigurationException;
 import com.opensymphony.xwork2.config.entities.ActionConfig;
 import com.opensymphony.xwork2.config.entities.PackageConfig;
 import com.opensymphony.xwork2.config.entities.ResultConfig;
@@ -70,6 +71,9 @@
         this.defaultPackageName = defaultPackage;
         resultsByExtension = new LinkedHashMap<String,ResultTypeConfig>();
         PackageConfig parentPackage = configuration.getPackageConfig(defaultPackageName);
+        if (parentPackage == null) {
+            throw new ConfigurationException("Unknown parent package: "+parentPackage);
+        }    
         Map<String,ResultTypeConfig> results = parentPackage.getAllResultTypeConfigs();
         
         resultsByExtension.put("jsp", results.get("dispatcher"));
diff --git a/plugins/codebehind/src/main/resources/struts-plugin.xml b/plugins/codebehind/src/main/resources/struts-plugin.xml
index 21afbe8..57fd52e 100644
--- a/plugins/codebehind/src/main/resources/struts-plugin.xml
+++ b/plugins/codebehind/src/main/resources/struts-plugin.xml
@@ -1,4 +1,26 @@
 <?xml version="1.0" encoding="UTF-8" ?>
+<!--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 
 <!DOCTYPE struts PUBLIC
     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
diff --git a/plugins/config-browser/pom.xml b/plugins/config-browser/pom.xml
index 3f1c3af..9df3155 100644
--- a/plugins/config-browser/pom.xml
+++ b/plugins/config-browser/pom.xml
@@ -1,21 +1,42 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.0.5</version>
+        <version>2.0.14</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-config-browser-plugin</artifactId>
     <packaging>jar</packaging>
     <name>Struts 2 Configuration Browser Plugin</name>
-    
+
     <scm>
-       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/config-browser/</connection>
-       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/config-browser/</developerConnection>
-       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/plugins/config-browser/</url>
+       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/config-browser</connection>
+       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/config-browser</developerConnection>
+       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/tags/STRUTS_2_0_14/plugins/config-browser</url>
     </scm>
 
     <dependencies>
diff --git a/plugins/config-browser/src/main/resources/config-browser/actionNames.ftl b/plugins/config-browser/src/main/resources/config-browser/actionNames.ftl
index 20f92d6..b0e6186 100644
--- a/plugins/config-browser/src/main/resources/config-browser/actionNames.ftl
+++ b/plugins/config-browser/src/main/resources/config-browser/actionNames.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "tigris-macros.ftl">
 <@startPage pageTitle="Actions in namespace"/>
 <h3>Actions in <#if namespace == ""> default namespace <#else> ${namespace} </#if></h3>
diff --git a/plugins/config-browser/src/main/resources/config-browser/config-styles.css b/plugins/config-browser/src/main/resources/config-browser/config-styles.css
index 6fe24fc..6996424 100644
--- a/plugins/config-browser/src/main/resources/config-browser/config-styles.css
+++ b/plugins/config-browser/src/main/resources/config-browser/config-styles.css
@@ -1,3 +1,24 @@
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
 <style type="text/css">
 	/* colors, backgrounds, borders, link indication */
 body {
diff --git a/plugins/config-browser/src/main/resources/config-browser/error.ftl b/plugins/config-browser/src/main/resources/config-browser/error.ftl
index 63433ad..629b0fb 100644
--- a/plugins/config-browser/src/main/resources/config-browser/error.ftl
+++ b/plugins/config-browser/src/main/resources/config-browser/error.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "tigris-macros.ftl">
 <@startPage pageTitle="An error occured"/>
 
diff --git a/plugins/config-browser/src/main/resources/config-browser/page-footer.ftl b/plugins/config-browser/src/main/resources/config-browser/page-footer.ftl
index 8bead21..74aca37 100644
--- a/plugins/config-browser/src/main/resources/config-browser/page-footer.ftl
+++ b/plugins/config-browser/src/main/resources/config-browser/page-footer.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 				</div>
 			</div>
    		</td>
diff --git a/plugins/config-browser/src/main/resources/config-browser/page-header.ftl b/plugins/config-browser/src/main/resources/config-browser/page-header.ftl
index 09cd518..e5a1dc4 100644
--- a/plugins/config-browser/src/main/resources/config-browser/page-header.ftl
+++ b/plugins/config-browser/src/main/resources/config-browser/page-header.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <!DOCTYPE html PUBLIC "-//Tigris//DTD XHTML 1.0 Transitional//EN"
     "${request.contextPath}/template-tigris/css/tigris_transitional.dtd">
 <html>
diff --git a/plugins/config-browser/src/main/resources/config-browser/showConfig.ftl b/plugins/config-browser/src/main/resources/config-browser/showConfig.ftl
index e913998..5e81c61 100644
--- a/plugins/config-browser/src/main/resources/config-browser/showConfig.ftl
+++ b/plugins/config-browser/src/main/resources/config-browser/showConfig.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "tigris-macros.ftl"/>
 <@startPage pageTitle="Action information"/>
 <h3>Action information - ${actionName}</h3>
diff --git a/plugins/config-browser/src/main/resources/config-browser/showValidators.ftl b/plugins/config-browser/src/main/resources/config-browser/showValidators.ftl
index d6b62ca..45a1947 100644
--- a/plugins/config-browser/src/main/resources/config-browser/showValidators.ftl
+++ b/plugins/config-browser/src/main/resources/config-browser/showValidators.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <!-- Validators -->
 <table width="100%">
     <tr><th>Field</th><th>Type</th><th>&nbsp;</th></tr>
diff --git a/plugins/config-browser/src/main/resources/config-browser/simple-error.ftl b/plugins/config-browser/src/main/resources/config-browser/simple-error.ftl
index f131fc9..05da79c 100644
--- a/plugins/config-browser/src/main/resources/config-browser/simple-error.ftl
+++ b/plugins/config-browser/src/main/resources/config-browser/simple-error.ftl
@@ -1,2 +1,24 @@
+<#--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "tigris-macros.ftl">
 <@errorMessageMultiple caption="An error occured" message="Unable to execute ${action.class.name}" errors="${action.actionErrors}"/>
diff --git a/plugins/config-browser/src/main/resources/config-browser/tigris-macros.ftl b/plugins/config-browser/src/main/resources/config-browser/tigris-macros.ftl
index 5b23410..52618e0 100644
--- a/plugins/config-browser/src/main/resources/config-browser/tigris-macros.ftl
+++ b/plugins/config-browser/src/main/resources/config-browser/tigris-macros.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#-- Display related macros -->
 
 <#macro startPage pageTitle>
diff --git a/plugins/config-browser/src/main/resources/config-browser/validatorDetails.ftl b/plugins/config-browser/src/main/resources/config-browser/validatorDetails.ftl
index a3cee00..cc700f6 100644
--- a/plugins/config-browser/src/main/resources/config-browser/validatorDetails.ftl
+++ b/plugins/config-browser/src/main/resources/config-browser/validatorDetails.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <#include "tigris-macros.ftl">
 <#assign hideNav = true>
 <#call startPage pageTitle="Validator Details"/>
diff --git a/plugins/config-browser/src/main/resources/struts-plugin.xml b/plugins/config-browser/src/main/resources/struts-plugin.xml
index fe7bfc0..8e095c2 100644
--- a/plugins/config-browser/src/main/resources/struts-plugin.xml
+++ b/plugins/config-browser/src/main/resources/struts-plugin.xml
@@ -1,4 +1,26 @@
 <?xml version="1.0" encoding="UTF-8" ?>
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 
 <!DOCTYPE struts PUBLIC
     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
diff --git a/plugins/continuations/pom.xml b/plugins/continuations/pom.xml
deleted file mode 100644
index 0ddd297..0000000
--- a/plugins/continuations/pom.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.struts</groupId>
-        <artifactId>struts2-plugins</artifactId>
-        <version>2.0.5</version>
-    </parent>
-    <groupId>org.apache.struts</groupId>
-    <artifactId>struts2-continuations-plugin</artifactId>
-    <packaging>jar</packaging>
-    <name>Struts 2 Continuations Plugin</name>
-    
-    <scm>
-       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/continuations/</connection>
-       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/continuations/</developerConnection>
-       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/plugins/continuations/</url>
-    </scm>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.rifers</groupId>
-            <artifactId>rife-continuations</artifactId>
-            <version>0.0.2</version>
-        </dependency>
-       <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-            <version>3.8.1</version>
-        </dependency>
-
-
-   </dependencies>
-</project>
diff --git a/plugins/continuations/src/main/java/org/apache/struts2/continuations/ContinuationsActionEventListener.java b/plugins/continuations/src/main/java/org/apache/struts2/continuations/ContinuationsActionEventListener.java
deleted file mode 100644
index c511bfe..0000000
--- a/plugins/continuations/src/main/java/org/apache/struts2/continuations/ContinuationsActionEventListener.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * $Id: Dispatcher.java 484733 2006-12-08 20:16:16Z mrdon $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.continuations;
-
-import java.util.Map;
-
-import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.ActionEventListener;
-import com.opensymphony.xwork2.util.ValueStack;
-import com.uwyn.rife.continuations.ContinuableObject;
-import com.uwyn.rife.continuations.ContinuationConfig;
-import com.uwyn.rife.continuations.ContinuationContext;
-import com.uwyn.rife.continuations.ContinuationManager;
-import com.uwyn.rife.continuations.exceptions.PauseException;
-
-/**
- * Hooks Rife continuations into key events in the Action instance lifecycle
- */
-public class ContinuationsActionEventListener implements ActionEventListener {
-    ContinuationManager cm;
-    
-    public ContinuationsActionEventListener() {
-        if (ContinuationConfig.getInstance() != null) {
-            cm = new ContinuationManager();
-        }
-    }
-    
-    /**
-     * Sets the continuation context and loads the proper continuation action
-     */
-    public Object prepare(Object action, ValueStack stack) {
-        Map params = ActionContext.getContext().getParameters();
-        String contId = (String) params.get(StrutsContinuationConfig.CONTINUE_PARAM);
-        if (contId != null) {
-            // remove the continue key from the params - we don't want to bother setting
-            // on the value stack since we know it won't work. Besides, this breaks devMode!
-            params.remove(StrutsContinuationConfig.CONTINUE_PARAM);
-        }
-        
-        
-        if (action instanceof ContinuableObject) {
-            ContinuationContext ctx = ContinuationContext.createInstance((ContinuableObject) action);
-            if (action instanceof NonCloningContinuableObject) {
-                ctx.setShouldClone(false);
-            }
-        }
-
-        try {
-            if (contId != null) {
-                ContinuationContext context = cm.getContext(contId);
-                if (context != null) {
-                    ContinuationContext.setContext(context);
-                    // use the original action instead
-                    Object original = context.getContinuable();
-                    action = original;
-                }
-            }
-        } catch (CloneNotSupportedException e) {
-            e.printStackTrace();
-        }
-        return action;
-    }
-    
-    /**
-     * Handles the normal continuation exception
-     */
-    public String handleException(Throwable t, ValueStack stack) {
-        if (t instanceof PauseException) {
-            // continuations in effect!
-            PauseException pe = ((PauseException) t);
-            ContinuationContext context = pe.getContext();
-            String result = (String) pe.getParameters();
-            stack.getContext().put(StrutsContinuationConfig.CONTINUE_KEY, context.getId());
-            cm.addContext(context);
-
-            return result;
-        }
-        return null;
-    }
-}
diff --git a/plugins/continuations/src/main/java/org/apache/struts2/continuations/ContinuationsClassLoader.java b/plugins/continuations/src/main/java/org/apache/struts2/continuations/ContinuationsClassLoader.java
deleted file mode 100644
index cd096a3..0000000
--- a/plugins/continuations/src/main/java/org/apache/struts2/continuations/ContinuationsClassLoader.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * $Id: Dispatcher.java 484733 2006-12-08 20:16:16Z mrdon $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.continuations;
-
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.struts2.StrutsConstants;
-
-import com.opensymphony.xwork2.XWorkException;
-import com.opensymphony.xwork2.inject.Inject;
-
-/**
- * Uses the Rife continuations classloader to bytecode enhance actions.  Only
- * enhances actions in the configured package.
- */
-public class ContinuationsClassLoader extends ClassLoader {
-    
-    private String base;
-    private ClassLoader parent;
-    
-    private static final Log LOG = LogFactory.getLog(ContinuationsClassLoader.class);
-
-    @Inject(value=StrutsConstants.STRUTS_CONTINUATIONS_PACKAGE, required=false)
-    public void setContinuationPackage(String continuationPackage) {
-        
-        // This reflection silliness is to ensure Rife is optional
-        Class contConfig = null;
-        try {
-            contConfig = Class.forName("com.uwyn.rife.continuations.ContinuationConfig");
-        } catch (ClassNotFoundException ex) {
-            throw new XWorkException("Unable to use continuations package, as the Rife " +
-                    "continuations jar is missing", ex);
-        }
-        try {
-            Method m = contConfig.getMethod("setInstance", contConfig);
-            m.invoke(contConfig, new StrutsContinuationConfig());
-        } catch (NoSuchMethodException ex) {
-            throw new XWorkException("Incorrect version of the Rife continuation library", ex);
-        } catch (IllegalAccessException ex) {
-            throw new XWorkException("Incorrect version of the Rife continuation library", ex);
-        } catch (InvocationTargetException ex) {
-            throw new XWorkException("Unable to initialize the Rife continuation library", ex);
-        }
-        this.base = continuationPackage;
-        this.parent = Thread.currentThread().getContextClassLoader();
-    }
-
-    public Class loadClass(String name) throws ClassNotFoundException {
-        if (validName(name)) {
-            Class clazz = findLoadedClass(name);
-            if (clazz == null) {
-                try {
-                    byte[] bytes = com.uwyn.rife.continuations.util.ClassByteUtil.getBytes(name, parent);
-                    if (bytes == null) {
-                        throw new ClassNotFoundException(name);
-                    }
-
-                    byte[] resume_bytes = null;
-                    try {
-                        resume_bytes = com.uwyn.rife.continuations.ContinuationInstrumentor.instrument(bytes, name, false);
-                    } catch (ClassNotFoundException e) {
-                        // this can happen when the Rife Continuations code gets broken (there are bugs in it still, ya know!)
-                        // rather than making a big deal, we'll quietly log this and move on
-                        // when more people are using continuations, perhaps we'll raise the log level
-                        LOG.debug("Error instrumenting with RIFE/Continuations, " +
-                                "loading class normally without continuation support", e);
-                    }
-
-                    if (resume_bytes == null) {
-                        return parent.loadClass(name);
-                    } else {
-                        return defineClass(name, resume_bytes, 0, resume_bytes.length);
-                    }
-                } catch (IOException e) {
-                    throw new XWorkException("Continuation error", e);
-                }
-            } else {
-                return clazz;
-            }
-        } else {
-            return parent.loadClass(name);
-        }
-    }
-
-    private boolean validName(String name) {
-        return name.startsWith(base + ".");
-    }
-}
diff --git a/plugins/continuations/src/main/java/org/apache/struts2/continuations/ContinuationsExtraParameterProvider.java b/plugins/continuations/src/main/java/org/apache/struts2/continuations/ContinuationsExtraParameterProvider.java
deleted file mode 100644
index 9065e78..0000000
--- a/plugins/continuations/src/main/java/org/apache/struts2/continuations/ContinuationsExtraParameterProvider.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * $Id: URL.java 474191 2006-11-13 08:30:40Z mrdon $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.continuations;
-
-import java.util.Collections;
-import java.util.Map;
-
-import org.apache.struts2.components.URL.ExtraParameterProvider;
-
-import com.opensymphony.xwork2.ActionContext;
-
-/**
- * Injects the continuation id into the url parameters
- */
-public class ContinuationsExtraParameterProvider implements ExtraParameterProvider {
-
-    public Map getExtraParameters() {
-        // tie in the continuation parameter
-        String continueId = (String) ActionContext.getContext().get(StrutsContinuationConfig.CONTINUE_KEY);
-        if (continueId != null) {
-            return Collections.singletonMap(StrutsContinuationConfig.CONTINUE_PARAM, continueId);
-        }
-        return Collections.EMPTY_MAP;
-    }
-
-}
diff --git a/plugins/continuations/src/main/java/org/apache/struts2/continuations/NonCloningContinuableObject.java b/plugins/continuations/src/main/java/org/apache/struts2/continuations/NonCloningContinuableObject.java
deleted file mode 100644
index f84e21c..0000000
--- a/plugins/continuations/src/main/java/org/apache/struts2/continuations/NonCloningContinuableObject.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * $Id: URL.java 474191 2006-11-13 08:30:40Z mrdon $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.continuations;
-
-import com.uwyn.rife.continuations.ContinuableObject;
-
-/**
- * Implementing this interface indicates that the action should not be cloned, but instead should be re-used. This is
- * needed when you are using objects, fields, and method variables that cannot be cloned. The downside to using this is
- * that the advanced forward/backward historical support that normally automatically comes with continuations is no
- * longer available.
- */
-public interface NonCloningContinuableObject extends ContinuableObject {
-}
diff --git a/plugins/continuations/src/main/java/org/apache/struts2/continuations/StrutsContinuationConfig.java b/plugins/continuations/src/main/java/org/apache/struts2/continuations/StrutsContinuationConfig.java
deleted file mode 100644
index 47c84f2..0000000
--- a/plugins/continuations/src/main/java/org/apache/struts2/continuations/StrutsContinuationConfig.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * $Id: URL.java 474191 2006-11-13 08:30:40Z mrdon $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- */
-package org.apache.struts2.continuations;
-
-import com.uwyn.rife.continuations.ContinuationConfig;
-
-/**
- * RIFE Continuation configuration.
- */
-public class StrutsContinuationConfig extends ContinuationConfig {
-    public static final String CONTINUE_PARAM = "__continue";
-    public static final String CONTINUE_KEY = "__continue";
-
-    public String getContinuableClassInternalName() {
-        return "com.opensymphony.xwork2.ActionSupport";
-    }
-
-    public String getContinuableInterfaceInternalName() {
-        return "com.opensymphony.xwork2.Action";
-    }
-
-    public String getEntryMethod() {
-        return "execute()Ljava/lang/String;";
-    }
-
-    public String getContinuableClassOrInterfaceName() {
-        return "com.opensymphony.xwork2.ActionSupport";
-    }
-
-    public String getPauseSignature() {
-        return "(Ljava/lang/String;)V";
-    }
-}
diff --git a/plugins/continuations/src/main/resources/LICENSE.txt b/plugins/continuations/src/main/resources/LICENSE.txt
deleted file mode 100644
index dd5b3a5..0000000
--- a/plugins/continuations/src/main/resources/LICENSE.txt
+++ /dev/null
@@ -1,174 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
diff --git a/plugins/continuations/src/main/resources/NOTICE.txt b/plugins/continuations/src/main/resources/NOTICE.txt
deleted file mode 100644
index cd13ec4..0000000
--- a/plugins/continuations/src/main/resources/NOTICE.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Apache Struts
-Copyright 2000-2007 The Apache Software Foundation
-
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
\ No newline at end of file
diff --git a/plugins/continuations/src/main/resources/struts-plugin.xml b/plugins/continuations/src/main/resources/struts-plugin.xml
deleted file mode 100644
index 0901b68..0000000
--- a/plugins/continuations/src/main/resources/struts-plugin.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<!DOCTYPE struts PUBLIC
-    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
-    "http://struts.apache.org/dtds/struts-2.0.dtd">
-    
-<struts>
-    <bean type="java.lang.ClassLoader" name="objectFactory.classloader" class="org.apache.struts2.continuations.ContinuationsClassLoader" />
-    <bean type="org.apache.struts2.components.URL$ExtraParameterProvider" class="org.apache.struts2.continuations.ContinuationsExtraParameterProvider" />
-    <bean type="com.opensymphony.xwork2.ActionEventListener" class="org.apache.struts2.continuations.ContinuationsActionEventListener" />
-    
-</struts>
diff --git a/plugins/jasperreports/pom.xml b/plugins/jasperreports/pom.xml
index ea700d8..e300c28 100644
--- a/plugins/jasperreports/pom.xml
+++ b/plugins/jasperreports/pom.xml
@@ -1,21 +1,42 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.0.5</version>
+        <version>2.0.14</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-jasperreports-plugin</artifactId>
     <packaging>jar</packaging>
     <name>Struts 2 Jasper Reports Plugin</name>
-    
+
     <scm>
-       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/jasperreports/</connection>
-       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/jasperreports/</developerConnection>
-       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/plugins/jasperreports/</url>
+       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/jasperreports</connection>
+       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/jasperreports</developerConnection>
+       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/tags/STRUTS_2_0_14/plugins/jasperreports</url>
     </scm>
 
     <dependencies>
diff --git a/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportConstants.java b/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportConstants.java
index 8bbdffe..3fdf2da 100644
--- a/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportConstants.java
+++ b/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportConstants.java
@@ -51,4 +51,9 @@
      * CSV format constant
      */
     public static final String FORMAT_CSV = "CSV";
+    
+    /**
+     * RTF format constant
+     */
+    public static final String FORMAT_RTF = "RTF";
 }
diff --git a/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportsResult.java b/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportsResult.java
index 4e5b636..8c9cf37 100644
--- a/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportsResult.java
+++ b/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportsResult.java
@@ -32,22 +32,30 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import net.sf.jasperreports.engine.*;
+import net.sf.jasperreports.engine.JRException;
+import net.sf.jasperreports.engine.JRExporter;
+import net.sf.jasperreports.engine.JRExporterParameter;
+import net.sf.jasperreports.engine.JRParameter;
+import net.sf.jasperreports.engine.JasperExportManager;
+import net.sf.jasperreports.engine.JasperFillManager;
+import net.sf.jasperreports.engine.JasperPrint;
+import net.sf.jasperreports.engine.JasperReport;
 import net.sf.jasperreports.engine.export.JRCsvExporter;
 import net.sf.jasperreports.engine.export.JRCsvExporterParameter;
 import net.sf.jasperreports.engine.export.JRHtmlExporter;
 import net.sf.jasperreports.engine.export.JRHtmlExporterParameter;
+import net.sf.jasperreports.engine.export.JRRtfExporter;
 import net.sf.jasperreports.engine.export.JRXlsExporter;
 import net.sf.jasperreports.engine.export.JRXmlExporter;
 import net.sf.jasperreports.engine.util.JRLoader;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-
-import com.opensymphony.xwork2.util.TextUtils;
 import org.apache.struts2.ServletActionContext;
 import org.apache.struts2.dispatcher.StrutsResultSupport;
+
 import com.opensymphony.xwork2.ActionInvocation;
+import com.opensymphony.xwork2.util.TextUtils;
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
@@ -286,6 +294,9 @@
                     } else if (format.equals(FORMAT_XML)) {
                         response.setContentType("text/xml");
                         exporter = new JRXmlExporter();
+                    } else if (format.equals(FORMAT_RTF)) {
+                        response.setContentType("application/rtf");
+                        exporter = new JRRtfExporter();
                     } else {
                         throw new ServletException("Unknown report format: " + format);
                     }
diff --git a/plugins/jasperreports/src/main/resources/org/apache/struts2/views/jasperreports/package.html b/plugins/jasperreports/src/main/resources/org/apache/struts2/views/jasperreports/package.html
index 5b3fed8..7bbd406 100644
--- a/plugins/jasperreports/src/main/resources/org/apache/struts2/views/jasperreports/package.html
+++ b/plugins/jasperreports/src/main/resources/org/apache/struts2/views/jasperreports/package.html
@@ -1 +1,23 @@
+<!--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <body>Classes for views using Jasper Reports.</body>
diff --git a/plugins/jasperreports/src/main/resources/struts-plugin.xml b/plugins/jasperreports/src/main/resources/struts-plugin.xml
index 266b18f..ee557a1 100644
--- a/plugins/jasperreports/src/main/resources/struts-plugin.xml
+++ b/plugins/jasperreports/src/main/resources/struts-plugin.xml
@@ -1,4 +1,26 @@
 <?xml version="1.0" encoding="UTF-8" ?>
+<!--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 
 <!DOCTYPE struts PUBLIC
     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
diff --git a/plugins/jfreechart/pom.xml b/plugins/jfreechart/pom.xml
index a3382bc..5a67083 100644
--- a/plugins/jfreechart/pom.xml
+++ b/plugins/jfreechart/pom.xml
@@ -1,87 +1,108 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.0.5</version>
+        <version>2.0.14</version>
    </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-jfreechart-plugin</artifactId>
     <packaging>jar</packaging>
     <name>Struts 2 JFreeChart Plugin</name>
-    
+
     <scm>
-       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/jfreechart/</connection>
-       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/jfreechart/</developerConnection>
-       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/plugins/jfreechart/</url>
+       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/jfreechart</connection>
+       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/jfreechart</developerConnection>
+       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/tags/STRUTS_2_0_14/plugins/jfreechart</url>
     </scm>
-    
+
     <profiles>
-		<profile>
-	    	<!-- 
-	    		Run the translator for Java 1.4 compatiblity
-	    		
-	    		Sample:
-	    		$ cd struts/struts2/
-	    		$ mvn clean install -Papps,j4 -Djava14.jar=$JAVA_HOME/../Classes/classes.jar
-	    	
-	    	 -->
-	      <id>j4</id>
-	      <build>
-	        <plugins>
-	          <plugin>
-	            <groupId>org.codehaus.mojo</groupId>
-	            <artifactId>retrotranslator-maven-plugin</artifactId>
-	            <executions>
-	              <execution>
-	                <id>retrotranslate</id>
-	              </execution>
-	            </executions>
-	          </plugin>
-	          <plugin>
-	            <artifactId>maven-jar-plugin</artifactId>
-	            <executions>
-	              <execution>
-	                <id>create-j4-jar</id>
-	                <goals><goal>jar</goal></goals>
-	                <configuration>
-	                  <classesDirectory>${project.build.directory}/classes-retro</classesDirectory>
-	                  <classifier>j4</classifier>
-	                  <archive>
-	                    <manifestEntries>
-	                      <Extension-Name>${project.artifactId}-j4</Extension-Name>
-	                      <Specification-Vendor>${project.organization.name}</Specification-Vendor>
-	                      <Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
-	                      <Implementation-Title>${project.description}</Implementation-Title>
-	                      <Implementation-Version>${project.version}</Implementation-Version>
-	                      <Revision>${scm.revision}</Revision>
-	                    </manifestEntries>
-	                   </archive>
-	                </configuration>
-	              </execution>
-	            </executions>
-	          </plugin>
-	        </plugins>
-	      </build>
-	       <dependencies>
-	        <dependency>
-	          <groupId>sun.jdk</groupId>
-	          <artifactId>rt</artifactId>
-	          <version>1.4.0</version>
-	          <scope>system</scope>
-	          <!-- path to rt.jar (on OSX, it's classes.jar) -->
-	          <systemPath>${java14.jar}</systemPath>
-	        </dependency>
-	        <dependency>
-	          <groupId>net.sf.retrotranslator</groupId>
-	          <artifactId>retrotranslator-runtime</artifactId>
-	          <version>1.0.8</version>
-	        </dependency>
-	      </dependencies>
-	    </profile>
-    
+    <profile>
+        <!--
+          Run the translator for Java 1.4 compatiblity
+
+          Sample:
+          $ cd struts/struts2/
+          $ mvn clean install -Papps,j4 -Djava14.jar=$JAVA_HOME/../Classes/classes.jar
+
+         -->
+        <id>j4</id>
+        <build>
+          <plugins>
+            <plugin>
+              <groupId>org.codehaus.mojo</groupId>
+              <artifactId>retrotranslator-maven-plugin</artifactId>
+              <executions>
+                <execution>
+                  <id>retrotranslate</id>
+                </execution>
+              </executions>
+            </plugin>
+            <plugin>
+              <artifactId>maven-jar-plugin</artifactId>
+              <executions>
+                <execution>
+                  <id>create-j4-jar</id>
+                  <goals><goal>jar</goal></goals>
+                  <configuration>
+                    <classesDirectory>${project.build.directory}/classes-retro</classesDirectory>
+                    <classifier>j4</classifier>
+                    <archive>
+                      <manifestEntries>
+                        <Extension-Name>${project.artifactId}-j4</Extension-Name>
+                        <Specification-Vendor>${project.organization.name}</Specification-Vendor>
+                        <Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
+                        <Implementation-Title>${project.description}</Implementation-Title>
+                        <Implementation-Version>${project.version}</Implementation-Version>
+                        <Revision>${scm.revision}</Revision>
+                      </manifestEntries>
+                     </archive>
+                  </configuration>
+                </execution>
+              </executions>
+            </plugin>
+          </plugins>
+        </build>
+         <dependencies>
+          <dependency>
+            <groupId>sun.jdk</groupId>
+            <artifactId>rt</artifactId>
+            <version>1.4.0</version>
+            <scope>system</scope>
+            <!-- path to rt.jar (on OSX, it's classes.jar) -->
+            <systemPath>${java14.jar}</systemPath>
+          </dependency>
+          <dependency>
+            <groupId>net.sf.retrotranslator</groupId>
+            <artifactId>retrotranslator-runtime</artifactId>
+            <version>1.0.8</version>
+          </dependency>
+        </dependencies>
+      </profile>
+
     </profiles>
 
     <dependencies>
diff --git a/plugins/jfreechart/src/main/resources/struts-plugin.xml b/plugins/jfreechart/src/main/resources/struts-plugin.xml
index 5a58773..f8c1db1 100644
--- a/plugins/jfreechart/src/main/resources/struts-plugin.xml
+++ b/plugins/jfreechart/src/main/resources/struts-plugin.xml
@@ -1,4 +1,26 @@
 <?xml version="1.0" encoding="UTF-8" ?>
+<!--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 
 <!DOCTYPE struts PUBLIC
     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
diff --git a/plugins/jsf/pom.xml b/plugins/jsf/pom.xml
index 04cd806..2f3457f 100644
--- a/plugins/jsf/pom.xml
+++ b/plugins/jsf/pom.xml
@@ -1,21 +1,42 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.0.5</version>
+        <version>2.0.14</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-jsf-plugin</artifactId>
     <packaging>jar</packaging>
     <name>Struts 2 JSF Plugin</name>
-    
+
     <scm>
-       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/jsf/</connection>
-       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/jsf/</developerConnection>
-       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/plugins/jsf/</url>
+       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/jsf</connection>
+       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/jsf</developerConnection>
+       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/tags/STRUTS_2_0_14/plugins/jsf</url>
     </scm>
 
     <dependencies>
@@ -24,7 +45,7 @@
             <artifactId>struts-core</artifactId>
             <version>1.3.5</version>
         </dependency>
- 
+
         <dependency>
             <groupId>myfaces</groupId>
             <artifactId>myfaces-jsf-api</artifactId>
@@ -32,7 +53,7 @@
             <scope>provided</scope>
         </dependency>
 
-     
+
         <dependency>
             <groupId>mockobjects</groupId>
             <artifactId>mockobjects-core</artifactId>
diff --git a/plugins/jsf/src/main/resources/org/apache/struts2/jsf/package.html b/plugins/jsf/src/main/resources/org/apache/struts2/jsf/package.html
index 0b6bccd..fd5a62b 100644
--- a/plugins/jsf/src/main/resources/org/apache/struts2/jsf/package.html
+++ b/plugins/jsf/src/main/resources/org/apache/struts2/jsf/package.html
@@ -1,3 +1,25 @@
+<!--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <body>
 Integrates the JSF library into Struts.  The overall approach
 	splits the JSF lifecycle into an Interceptor stack and Result, delegating
diff --git a/plugins/jsf/src/main/resources/struts-plugin.xml b/plugins/jsf/src/main/resources/struts-plugin.xml
index df5a8a1..674c12e 100644
--- a/plugins/jsf/src/main/resources/struts-plugin.xml
+++ b/plugins/jsf/src/main/resources/struts-plugin.xml
@@ -1,4 +1,26 @@
 <?xml version="1.0" encoding="UTF-8" ?>
+<!--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 
 <!DOCTYPE struts PUBLIC
     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
diff --git a/plugins/pell-multipart/pom.xml b/plugins/pell-multipart/pom.xml
index 7892868..5d5388d 100644
--- a/plugins/pell-multipart/pom.xml
+++ b/plugins/pell-multipart/pom.xml
@@ -1,21 +1,42 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.0.5</version>
+        <version>2.0.14</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-pell-multipart-plugin</artifactId>
     <packaging>jar</packaging>
     <name>Struts 2 Pell Multipart Plugin</name>
-    
+
     <scm>
-       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/pell-multipart/</connection>
-       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/pell-multipart/</developerConnection>
-       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/plugins/pell-multipart/</url>
+       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/pell-multipart</connection>
+       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/pell-multipart</developerConnection>
+       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/tags/STRUTS_2_0_14/plugins/pell-multipart</url>
     </scm>
 
     <dependencies>
diff --git a/plugins/pell-multipart/src/main/resources/struts-plugin.xml b/plugins/pell-multipart/src/main/resources/struts-plugin.xml
index 4998b8e..b2a8466 100644
--- a/plugins/pell-multipart/src/main/resources/struts-plugin.xml
+++ b/plugins/pell-multipart/src/main/resources/struts-plugin.xml
@@ -1,4 +1,26 @@
 <?xml version="1.0" encoding="UTF-8" ?>
+<!--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 
 <!DOCTYPE struts PUBLIC
     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
diff --git a/plugins/plexus/pom.xml b/plugins/plexus/pom.xml
index b50a628..9c7472b 100644
--- a/plugins/plexus/pom.xml
+++ b/plugins/plexus/pom.xml
@@ -1,28 +1,49 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.0.5</version>
+        <version>2.0.14</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-plexus-plugin</artifactId>
     <packaging>jar</packaging>
     <name>Struts 2 Plexus Plugin</name>
-    
+
     <scm>
-       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/plexus/</connection>
-       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/plexus/</developerConnection>
-       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/plugins/plexus/</url>
+       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/plexus</connection>
+       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/plexus</developerConnection>
+       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/tags/STRUTS_2_0_14/plugins/plexus</url>
     </scm>
 
     <dependencies>
         <dependency>
             <groupId>org.codehaus.plexus</groupId>
             <artifactId>plexus-container-default</artifactId>
-            <version>1.0-alpha-10-SNAPSHOT</version>
+            <version>1.0-alpha-10</version>
         </dependency>
    </dependencies>
 </project>
diff --git a/plugins/plexus/src/main/resources/struts-plugin.xml b/plugins/plexus/src/main/resources/struts-plugin.xml
index 4f99ac0..a0998d3 100644
--- a/plugins/plexus/src/main/resources/struts-plugin.xml
+++ b/plugins/plexus/src/main/resources/struts-plugin.xml
@@ -1,4 +1,26 @@
 <?xml version="1.0" encoding="UTF-8" ?>
+<!--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 
 <!DOCTYPE struts PUBLIC
     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
diff --git a/plugins/pom.xml b/plugins/pom.xml
index 68e41da..c104ee5 100644
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -1,11 +1,32 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-parent</artifactId>
-        <version>2.0.5</version>
+        <version>2.0.14</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-plugins</artifactId>
@@ -13,15 +34,14 @@
     <name>Struts Plugins</name>
 
    <scm>
-     <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/</connection>
-     <developerConnection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/</developerConnection>
-     <url>http://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/</url>
+     <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins</connection>
+     <developerConnection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins</developerConnection>
+     <url>http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins</url>
    </scm>
 
     <modules>
         <module>codebehind</module>
         <module>config-browser</module>
-        <module>continuations</module>
         <module>jasperreports</module>
         <module>jfreechart</module>
         <module>jsf</module>
@@ -33,7 +53,7 @@
         <module>struts1</module>
         <module>tiles</module>
     </modules>
-    
+
     <dependencies>
 
         <dependency>
@@ -62,5 +82,21 @@
 
 
     </dependencies>
-    
+
+    <reporting>
+        <plugins>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>rat-maven-plugin</artifactId>
+                <version>1.0-alpha-2</version>
+                <configuration>
+                    <includes>
+                        <include>pom.xml</include>
+                        <include>src/**</include>
+                    </includes>
+                </configuration>
+            </plugin>
+        </plugins>
+    </reporting>
+
 </project>
diff --git a/plugins/sitegraph/pom.xml b/plugins/sitegraph/pom.xml
index 2469895..d1aeaf4 100644
--- a/plugins/sitegraph/pom.xml
+++ b/plugins/sitegraph/pom.xml
@@ -1,11 +1,32 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.0.5</version>
+        <version>2.0.14</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-sitegraph-plugin</artifactId>
@@ -13,9 +34,9 @@
     <name>Struts 2 Sitegraph Plugin</name>
 
     <scm>
-       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/sitegraph/</connection>
-       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/sitegraph/</developerConnection>
-       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/plugins/sitegraph/</url>
+       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/sitegraph</connection>
+       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/sitegraph</developerConnection>
+       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/tags/STRUTS_2_0_14/plugins/sitegraph</url>
     </scm>
 
     <build>
@@ -137,7 +158,27 @@
             <version>1.2.8</version>
             <scope>test</scope>
         </dependency>
- 
+
 
     </dependencies>
+
+    <reporting>
+        <plugins>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>rat-maven-plugin</artifactId>
+                <version>1.0-alpha-2</version>
+                <configuration>
+                    <includes>
+                        <include>pom.xml</include>
+                        <include>src/**</include>
+                    </includes>
+                    <excludes>
+                        <exclude>src/main/resources/org/apache/struts2/sitegraph/sitegraph-usage.txt</exclude>
+                        <exclude>src/test/resources/org/apache/struts2/sitegraph/out.txt</exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+        </plugins>
+    </reporting>
 </project>
diff --git a/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/SiteGraph.java b/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/SiteGraph.java
index 0daf7c8..c6075f9 100644
--- a/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/SiteGraph.java
+++ b/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/SiteGraph.java
@@ -1,5 +1,22 @@
 /*
- * Created on Aug 12, 2004 by mgreer
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
  */
 package org.apache.struts2.sitegraph;
 
diff --git a/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/StrutsConfigRetriever.java b/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/StrutsConfigRetriever.java
index b2bfe05..3213a17 100644
--- a/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/StrutsConfigRetriever.java
+++ b/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/StrutsConfigRetriever.java
@@ -1,5 +1,22 @@
 /*
- * Created on Aug 14, 2004 by mgreer
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
  */
 package org.apache.struts2.sitegraph;
 
diff --git a/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/entities/FreeMarkerView.java b/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/entities/FreeMarkerView.java
index c80cb2f..4b05af7 100644
--- a/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/entities/FreeMarkerView.java
+++ b/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/entities/FreeMarkerView.java
@@ -1,3 +1,23 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
 package org.apache.struts2.sitegraph.entities;
 
 import java.io.File;
diff --git a/plugins/sitegraph/src/test/resources/org/apache/struts2/sitegraph/hello.jsp b/plugins/sitegraph/src/test/resources/org/apache/struts2/sitegraph/hello.jsp
index a024f35..a793f75 100644
--- a/plugins/sitegraph/src/test/resources/org/apache/struts2/sitegraph/hello.jsp
+++ b/plugins/sitegraph/src/test/resources/org/apache/struts2/sitegraph/hello.jsp
@@ -1 +1,23 @@
+<%--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+--%>
 nothing here, move along...
diff --git a/plugins/sitegraph/src/test/resources/org/apache/struts2/sitegraph/struts.xml b/plugins/sitegraph/src/test/resources/org/apache/struts2/sitegraph/struts.xml
index 402ba34..bcc63c1 100644
--- a/plugins/sitegraph/src/test/resources/org/apache/struts2/sitegraph/struts.xml
+++ b/plugins/sitegraph/src/test/resources/org/apache/struts2/sitegraph/struts.xml
@@ -1,3 +1,25 @@
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <!DOCTYPE struts PUBLIC
           "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
           "http://struts.apache.org/dtds/struts-2.0.dtd">
diff --git a/plugins/sitegraph/src/test/resources/org/apache/struts2/sitegraph/tutorial/sitegraph/guess-error.ftl b/plugins/sitegraph/src/test/resources/org/apache/struts2/sitegraph/tutorial/sitegraph/guess-error.ftl
index 5ebf4af..970bcc8 100644
--- a/plugins/sitegraph/src/test/resources/org/apache/struts2/sitegraph/tutorial/sitegraph/guess-error.ftl
+++ b/plugins/sitegraph/src/test/resources/org/apache/struts2/sitegraph/tutorial/sitegraph/guess-error.ftl
@@ -1 +1,23 @@
+<#--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 Error!
diff --git a/plugins/sitegraph/src/test/resources/org/apache/struts2/sitegraph/tutorial/sitegraph/guess-input.ftl b/plugins/sitegraph/src/test/resources/org/apache/struts2/sitegraph/tutorial/sitegraph/guess-input.ftl
index b031ee2..412b863 100644
--- a/plugins/sitegraph/src/test/resources/org/apache/struts2/sitegraph/tutorial/sitegraph/guess-input.ftl
+++ b/plugins/sitegraph/src/test/resources/org/apache/struts2/sitegraph/tutorial/sitegraph/guess-input.ftl
@@ -1,3 +1,25 @@
+<#--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <html>
 <head>
     <title>Guess a number</title>
diff --git a/plugins/sitegraph/src/test/resources/org/apache/struts2/sitegraph/tutorial/sitegraph/guess-success.jsp b/plugins/sitegraph/src/test/resources/org/apache/struts2/sitegraph/tutorial/sitegraph/guess-success.jsp
index 74ec1c6..0f4ef85 100644
--- a/plugins/sitegraph/src/test/resources/org/apache/struts2/sitegraph/tutorial/sitegraph/guess-success.jsp
+++ b/plugins/sitegraph/src/test/resources/org/apache/struts2/sitegraph/tutorial/sitegraph/guess-success.jsp
@@ -1 +1,23 @@
+<%--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+--%>
 You guessed correctly! Want to play <a href="guess!default.action">again</a>?
diff --git a/plugins/sitemesh/pom.xml b/plugins/sitemesh/pom.xml
index c4e35b1..23e4434 100644
--- a/plugins/sitemesh/pom.xml
+++ b/plugins/sitemesh/pom.xml
@@ -1,23 +1,44 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.0.5</version>
+        <version>2.0.14</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-sitemesh-plugin</artifactId>
     <packaging>jar</packaging>
     <name>Struts 2 Sitemesh Plugin</name>
-    
+
     <scm>
-       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/sitemesh/</connection>
-       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/sitemesh/</developerConnection>
-       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/plugins/sitemesh/</url>
+       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/sitemesh</connection>
+       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/sitemesh</developerConnection>
+       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/tags/STRUTS_2_0_14/plugins/sitemesh</url>
     </scm>
-    
+
     <dependencies>
         <dependency>
             <groupId>opensymphony</groupId>
diff --git a/plugins/sitemesh/src/main/resources/struts-plugin.xml b/plugins/sitemesh/src/main/resources/struts-plugin.xml
index 3921bd4..60be453 100644
--- a/plugins/sitemesh/src/main/resources/struts-plugin.xml
+++ b/plugins/sitemesh/src/main/resources/struts-plugin.xml
@@ -1,4 +1,26 @@
 <?xml version="1.0" encoding="UTF-8" ?>
+<!--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 
 <!DOCTYPE struts PUBLIC
     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
diff --git a/plugins/spring/pom.xml b/plugins/spring/pom.xml
index 0f66555..0780359 100644
--- a/plugins/spring/pom.xml
+++ b/plugins/spring/pom.xml
@@ -1,52 +1,73 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.0.5</version>
+        <version>2.0.14</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-spring-plugin</artifactId>
     <packaging>jar</packaging>
     <name>Struts 2 Spring Plugin</name>
-    
+
     <scm>
-       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/spring/</connection>
-       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/spring/</developerConnection>
-       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/plugins/spring/</url>
+       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/spring</connection>
+       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/spring</developerConnection>
+       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/tags/STRUTS_2_0_14/plugins/spring</url>
     </scm>
 
     <dependencies>
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-beans</artifactId>
-            <version>2.0.1</version>
+            <version>2.0.5</version>
         </dependency>
 
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-core</artifactId>
-            <version>2.0.1</version>
+            <version>2.0.5</version>
         </dependency>
 
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-context</artifactId>
-            <version>2.0.1</version>
+            <version>2.0.5</version>
         </dependency>
 
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-web</artifactId>
-            <version>2.0.1</version>
+            <version>2.0.5</version>
         </dependency>
 
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-mock</artifactId>
-            <version>2.0.1</version>
+            <version>2.0.5</version>
             <scope>test</scope>
         </dependency>
 
diff --git a/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java b/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java
index 9b547c6..75dcfb6 100644
--- a/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java
+++ b/plugins/spring/src/main/java/org/apache/struts2/spring/StrutsSpringObjectFactory.java
@@ -43,28 +43,21 @@
  */
 public class StrutsSpringObjectFactory extends SpringObjectFactory {
     private static final Log log = LogFactory.getLog(StrutsSpringObjectFactory.class);
-    
-    private String autoWire;
-    private boolean useClassCache = true;
-    
-    @Inject(value=StrutsConstants.STRUTS_OBJECTFACTORY_SPRING_AUTOWIRE,required=false)
-    public void setAutoWire(String val) {
-        autoWire = val;
-    }
-    
-    @Inject(value=StrutsConstants.STRUTS_OBJECTFACTORY_SPRING_USE_CLASS_CACHE,required=false)
-    public void setUseClassCache(String val) {
-        useClassCache = "true".equals(val);
-    }
-    
+
     @Inject
-    public void setServletContext(ServletContext servletContext) {
+    public StrutsSpringObjectFactory(
+            @Inject(value=StrutsConstants.STRUTS_OBJECTFACTORY_SPRING_AUTOWIRE,required=false) String autoWire,
+            @Inject(value=StrutsConstants.STRUTS_OBJECTFACTORY_SPRING_USE_CLASS_CACHE,required=false) String useClassCacheStr,
+            @Inject ServletContext servletContext) {
+          
+        super();
+        boolean useClassCache = "true".equals(useClassCacheStr);
         log.info("Initializing Struts-Spring integration...");
 
         ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(servletContext);
         if (appContext == null) {
             // uh oh! looks like the lifecycle listener wasn't installed. Let's inform the user
-            String message = "********** FATAL ERROR STARTING UP SPRING-STRUTS INTEGRATION **********\n" +
+            String message = "********** FATAL ERROR STARTING UP STRUTS-SPRING INTEGRATION **********\n" +
                     "Looks like the Spring listener was not configured for your web app! \n" +
                     "Nothing will work until WebApplicationContextUtils returns a valid ApplicationContext.\n" +
                     "You might need to add the following to web.xml: \n" +
diff --git a/plugins/spring/src/main/resources/struts-plugin.xml b/plugins/spring/src/main/resources/struts-plugin.xml
index 6184901..a161a83 100644
--- a/plugins/spring/src/main/resources/struts-plugin.xml
+++ b/plugins/spring/src/main/resources/struts-plugin.xml
@@ -1,4 +1,26 @@
 <?xml version="1.0" encoding="UTF-8" ?>
+<!--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 
 <!DOCTYPE struts PUBLIC
     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
diff --git a/plugins/spring/src/test/java/org/apache/struts2/spring/StrutsSpringObjectFactoryTest.java b/plugins/spring/src/test/java/org/apache/struts2/spring/StrutsSpringObjectFactoryTest.java
index 283c872..c813696 100644
--- a/plugins/spring/src/test/java/org/apache/struts2/spring/StrutsSpringObjectFactoryTest.java
+++ b/plugins/spring/src/test/java/org/apache/struts2/spring/StrutsSpringObjectFactoryTest.java
@@ -38,18 +38,13 @@
 
     public void testNoSpringContext() throws Exception {
         // to cover situations where there will be logged an error
-        StrutsSpringObjectFactory fac = new StrutsSpringObjectFactory();
-        ServletContext msc = (ServletContext) new MockServletContext();
-        fac.setServletContext(msc);
+        StrutsSpringObjectFactory fac = new StrutsSpringObjectFactory(null, null, new MockServletContext());
 
         assertEquals(AutowireCapableBeanFactory.AUTOWIRE_BY_NAME, fac.getAutowireStrategy());
     }
 
     public void testWithSpringContext() throws Exception {
-        StrutsSpringObjectFactory fac = new StrutsSpringObjectFactory();
-
-        // autowire by constructure, we try a non default setting in this unit test
-        fac.setAutoWire("constructor");
+        
 
         ConfigurableWebApplicationContext ac = new XmlWebApplicationContext();
         ServletContext msc = (ServletContext) new MockServletContext();
@@ -57,8 +52,7 @@
         ac.setServletContext(msc);
         ac.setConfigLocations(new String[] {"org/apache/struts2/spring/StrutsSpringObjectFactoryTest-applicationContext.xml"});
         ac.refresh();
-
-        fac.setServletContext(msc);
+        StrutsSpringObjectFactory fac = new StrutsSpringObjectFactory("constructor", null, msc);
 
         assertEquals(AutowireCapableBeanFactory.AUTOWIRE_CONSTRUCTOR, fac.getAutowireStrategy());
     }
diff --git a/plugins/spring/src/test/resources/org/apache/struts2/spring/StrutsSpringObjectFactoryTest-applicationContext.xml b/plugins/spring/src/test/resources/org/apache/struts2/spring/StrutsSpringObjectFactoryTest-applicationContext.xml
index af4657f..4b91938 100644
--- a/plugins/spring/src/test/resources/org/apache/struts2/spring/StrutsSpringObjectFactoryTest-applicationContext.xml
+++ b/plugins/spring/src/test/resources/org/apache/struts2/spring/StrutsSpringObjectFactoryTest-applicationContext.xml
@@ -1,4 +1,26 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
 
 <beans>
diff --git a/plugins/struts1/pom.xml b/plugins/struts1/pom.xml
index 2d7a32e..3d8932e 100644
--- a/plugins/struts1/pom.xml
+++ b/plugins/struts1/pom.xml
@@ -1,30 +1,51 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.0.5</version>
+        <version>2.0.14</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-struts1-plugin</artifactId>
     <packaging>jar</packaging>
     <name>Struts 2 Struts 1 Plugin</name>
-    
+
     <scm>
-       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/struts1/</connection>
-       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/struts1/</developerConnection>
-       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/plugins/struts1/</url>
+       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/struts1</connection>
+       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/struts1</developerConnection>
+       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/tags/STRUTS_2_0_14/plugins/struts1</url>
     </scm>
-    
+
     <dependencies>
         <dependency>
             <groupId>org.apache.struts</groupId>
             <artifactId>struts-core</artifactId>
             <version>1.3.5</version>
         </dependency>
-      
+
         <dependency>
             <groupId>mockobjects</groupId>
             <artifactId>mockobjects-core</artifactId>
diff --git a/plugins/struts1/src/main/resources/struts-plugin.xml b/plugins/struts1/src/main/resources/struts-plugin.xml
index 2d7bfae..15e7334 100644
--- a/plugins/struts1/src/main/resources/struts-plugin.xml
+++ b/plugins/struts1/src/main/resources/struts-plugin.xml
@@ -1,4 +1,26 @@
 <?xml version="1.0" encoding="UTF-8" ?>
+<!--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 
 <!DOCTYPE struts PUBLIC
     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
diff --git a/plugins/struts1/src/test/java/org/apache/struts2/s1/DynaBeanPropertyAccessorTest.java b/plugins/struts1/src/test/java/org/apache/struts2/s1/DynaBeanPropertyAccessorTest.java
index 3c74bd0..922f739 100644
--- a/plugins/struts1/src/test/java/org/apache/struts2/s1/DynaBeanPropertyAccessorTest.java
+++ b/plugins/struts1/src/test/java/org/apache/struts2/s1/DynaBeanPropertyAccessorTest.java
@@ -1,3 +1,23 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
 package org.apache.struts2.s1;
 
 import junit.framework.*;
diff --git a/plugins/struts1/src/test/java/org/apache/struts2/s1/Struts1FactoryTest.java b/plugins/struts1/src/test/java/org/apache/struts2/s1/Struts1FactoryTest.java
index d398318..d5ce4ae 100644
--- a/plugins/struts1/src/test/java/org/apache/struts2/s1/Struts1FactoryTest.java
+++ b/plugins/struts1/src/test/java/org/apache/struts2/s1/Struts1FactoryTest.java
@@ -1,3 +1,23 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
 package org.apache.struts2.s1;
 
 import java.lang.reflect.InvocationTargetException;
diff --git a/plugins/struts1/src/test/resources/org/apache/struts2/s1/test-struts-factory.xml b/plugins/struts1/src/test/resources/org/apache/struts2/s1/test-struts-factory.xml
index ee38d95..d7db8de 100644
--- a/plugins/struts1/src/test/resources/org/apache/struts2/s1/test-struts-factory.xml
+++ b/plugins/struts1/src/test/resources/org/apache/struts2/s1/test-struts-factory.xml
@@ -1,4 +1,26 @@
 <?xml version="1.0" encoding="UTF-8" ?>
+<!--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 
 <!DOCTYPE struts PUBLIC
     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
diff --git a/plugins/tiles/pom.xml b/plugins/tiles/pom.xml
index 9f743ff..83d5f93 100644
--- a/plugins/tiles/pom.xml
+++ b/plugins/tiles/pom.xml
@@ -1,28 +1,49 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<!--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.0.5</version>
+        <version>2.0.14</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-tiles-plugin</artifactId>
     <packaging>jar</packaging>
     <name>Struts 2 Tiles Plugin</name>
-    
+
     <scm>
-       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/tiles/</connection>
-       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/tiles/</developerConnection>
-       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/plugins/tiles/</url>
+       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/tiles</connection>
+       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14/plugins/tiles</developerConnection>
+       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/tags/STRUTS_2_0_14/plugins/tiles</url>
     </scm>
-    
+
     <dependencies>
         <dependency>
             <groupId>org.apache.tiles</groupId>
             <artifactId>tiles-core</artifactId>
-            <version>2.0-SNAPSHOT</version>
+            <version>2.0.4</version>
         </dependency>
         <dependency>
             <groupId>javax.servlet</groupId>
diff --git a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
index 3bbe4fc..1a6fb11 100644
--- a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
+++ b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
@@ -29,52 +29,36 @@
 import org.apache.tiles.impl.BasicTilesContainer;
 import org.apache.tiles.preparer.PreparerFactory;
 
-import javax.servlet.jsp.PageContext;
 import java.util.Map;
 
 
 public class StrutsTilesContainerFactory extends TilesContainerFactory {
 
-    /**
-     * Initialize the container in a struts specific manner.
-     * 
-     * @param context
-     * @param container
-     * @throws TilesException
-     */
-    public void initializeContainer(Object context,
-                                    BasicTilesContainer container)
-            throws TilesException {
 
-        Map<String, String> initParmMap =
-               TilesContainerFactory.getInitParameterMap(context);
-
-        TilesContextFactory contextFactory = (TilesContextFactory)
-                TilesContainerFactory.createFactory(
-                        initParmMap, TilesContainerFactory.CONTEXT_FACTORY_INIT_PARAM);
+    @Override
+    protected void storeContainerDependencies(Object context, Map<String, String> initParameters, Map<String, String> configuration, BasicTilesContainer container) throws TilesException {
+        TilesContextFactory contextFactory =
+            (TilesContextFactory) createFactory(configuration,
+                CONTEXT_FACTORY_INIT_PARAM);
 
         contextFactory = new StrutsTilesContextFactory(contextFactory);
 
-        DefinitionsFactory defsFactory = (DefinitionsFactory)
-                TilesContainerFactory.createFactory(
-                         initParmMap,
-                         TilesContainerFactory.DEFINITIONS_FACTORY_INIT_PARAM);
+        DefinitionsFactory defsFactory =
+            (DefinitionsFactory) createFactory(configuration,
+                DEFINITIONS_FACTORY_INIT_PARAM);
 
         PreparerFactory prepFactory =
-                (PreparerFactory) TilesContainerFactory.createFactory(
-                        initParmMap,
-                        TilesContainerFactory.PREPARER_FACTORY_INIT_PARAM);
+            (PreparerFactory) createFactory(configuration,
+                PREPARER_FACTORY_INIT_PARAM);
 
+        contextFactory.init(configuration);
         TilesApplicationContext tilesContext =
-                contextFactory.createApplicationContext(context);
+            contextFactory.createApplicationContext(context);
 
         container.setDefinitionsFactory(defsFactory);
         container.setContextFactory(contextFactory);
         container.setPreparerFactory(prepFactory);
         container.setApplicationContext(tilesContext);
-
-        container.init(getInitParameterMap(context));
-
     }
 
     /**
@@ -90,7 +74,7 @@
             this.factory = factory;
         }
 
-        public void init(Map map) {
+        public void init(Map<String, String> map) {
             factory.init(map);
         }
 
@@ -98,13 +82,10 @@
             return factory.createApplicationContext(context);
         }
 
-        public TilesRequestContext createRequestContext(TilesApplicationContext tilesApplicationContext, Object request, Object response) {
-            TilesRequestContext context = factory.createRequestContext(tilesApplicationContext, request, response);
-            return new StrutsTilesRequestContext(context);
-        }
-
-        public TilesRequestContext createRequestContext(TilesApplicationContext tilesApplicationContext, PageContext pageContext) {
-            TilesRequestContext context = factory.createRequestContext(tilesApplicationContext, pageContext);
+        public TilesRequestContext createRequestContext(
+                TilesApplicationContext tilesApplicationContext,
+                Object... requestItems) {
+            TilesRequestContext context = factory.createRequestContext(tilesApplicationContext, requestItems);
             return new StrutsTilesRequestContext(context);
         }
     }
diff --git a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesListener.java b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesListener.java
index 9c1a4d4..f8543db 100644
--- a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesListener.java
+++ b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesListener.java
@@ -20,10 +20,10 @@
  */
 package org.apache.struts2.tiles;
 
-import org.apache.tiles.listener.TilesListener;
 import org.apache.tiles.TilesContainer;
 import org.apache.tiles.TilesException;
 import org.apache.tiles.factory.TilesContainerFactory;
+import org.apache.tiles.web.startup.TilesListener;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
diff --git a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesRequestContext.java b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesRequestContext.java
index 2973547..747e4e3 100644
--- a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesRequestContext.java
+++ b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesRequestContext.java
@@ -30,7 +30,6 @@
 import org.apache.tiles.context.TilesRequestContext;
 import org.apache.tiles.context.TilesRequestContextWrapper;
 
-import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
@@ -80,7 +79,12 @@
     }
 
     public void dispatch(String include) throws IOException {
-        include(include);
+    	if (include.endsWith(mask)) {
+            // FIXME This way FreeMarker results still don't have a content-type!
+    	    include(include);
+        } else {
+            super.dispatch(include);
+        }
     }
 
     /**
diff --git a/plugins/tiles/src/main/java/org/apache/struts2/views/tiles/TilesResult.java b/plugins/tiles/src/main/java/org/apache/struts2/views/tiles/TilesResult.java
index 57dff60..b3503f0 100644
--- a/plugins/tiles/src/main/java/org/apache/struts2/views/tiles/TilesResult.java
+++ b/plugins/tiles/src/main/java/org/apache/struts2/views/tiles/TilesResult.java
@@ -101,6 +101,6 @@
         HttpServletRequest request = ServletActionContext.getRequest();
         HttpServletResponse response = ServletActionContext.getResponse();
 
-        container.render(request, response, location);
+        container.render(location, request, response);
     }
 }
diff --git a/plugins/tiles/src/main/resources/struts-plugin.xml b/plugins/tiles/src/main/resources/struts-plugin.xml
index 8cb5e62..86f85b0 100644
--- a/plugins/tiles/src/main/resources/struts-plugin.xml
+++ b/plugins/tiles/src/main/resources/struts-plugin.xml
@@ -1,3 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+/*
+ * $Id: pom.xml 559206 2007-07-24 21:01:18Z apetrelli $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
+
 <!DOCTYPE struts PUBLIC
         "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
         "http://struts.apache.org/dtds/struts-2.0.dtd">
diff --git a/pom.xml b/pom.xml
index bfe5fc4..95cc339 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,27 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/*
- * Copyright 2006 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.
- * 
- * $Id$
- */
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 
    <parent>
       <groupId>org.apache.struts</groupId>
@@ -32,28 +9,28 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-parent</artifactId>
-    <version>2.0.5</version>
+    <version>2.0.14</version>
     <packaging>pom</packaging>
     <name>Struts 2</name>
     <url>http://struts.apache.org/struts2</url>
     <description>Apache Struts 2</description>
 
     <inceptionYear>2000</inceptionYear>
-    
+
     <!--
     <description>
-        Apache Struts 2 is an elegant, extensible framework, 
-        well suited for creating moderate to large-scale Java web 
-        applications. The framework is designed to streamline the 
-        full development cycle, from building, to deploying, 
+        Apache Struts 2 is an elegant, extensible framework,
+        well suited for creating moderate to large-scale Java web
+        applications. The framework is designed to streamline the
+        full development cycle, from building, to deploying,
         to maintaining applications over time.
     </description>
     -->
 
     <scm>
-       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/</connection>
-       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/</developerConnection>
-       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/</url>
+       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14</connection>
+       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_14</developerConnection>
+       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/tags/STRUTS_2_0_14</url>
     </scm>
 
     <issueManagement>
@@ -61,8 +38,13 @@
         <url>http://issues.apache.org/struts/</url>
     </issueManagement>
 
-    <ciManagement/>
+    <ciManagement />
     <distributionManagement>
+        <repository>
+            <id>struts-staging</id>
+            <name>Apache Struts Staging Repository</name>
+            <url>scp://people.apache.org/www/people.apache.org/builds/struts/${pom.version}/m2-staging-repository</url>
+        </repository>
         <snapshotRepository>
            <id>apache.snapshots</id>
            <uniqueVersion>false</uniqueVersion>
@@ -71,14 +53,15 @@
         </snapshotRepository>
         <site>
             <id>apache-site</id>
-            <url>scp://people.apache.org/www/struts.apache.org/2.x/</url>
+            <url>scp://people.apache.org/www/struts.apache.org/2.0.x/</url>
         </site>
     </distributionManagement>
 
     <modules>
         <module>core</module>
-        <!--<module>assembly</module>-->
-        <module>api</module>
+        <module>apps</module>
+        <module>plugins</module>
+        <module>assembly</module>
     </modules>
 
     <licenses>
@@ -86,7 +69,7 @@
             <name>The Apache Software License, Version 2.0</name>
             <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
             <distribution>repo</distribution>
-            <comments/>
+            <comments />
         </license>
     </licenses>
 
@@ -97,30 +80,6 @@
 
     <profiles>
         <profile>
-            <id>apps</id>
-            <activation>
-                <property>
-                    <name>apps</name>
-                </property>
-            </activation>
-            <modules>
-                <module>apps</module>
-            </modules>
-        </profile>
-        <profile>
-            <id>plugins</id>
-            <modules>
-                <module>plugins</module>
-            </modules>
-        </profile>
-        <profile>
-            <id>all</id>
-            <modules>
-                <module>plugins</module>
-                <module>apps</module>
-            </modules>
-        </profile>
-        <profile>
             <id>xwork</id>
             <modules>
                 <module>../xwork</module>
@@ -133,58 +92,7 @@
             </modules>
         </profile>
         <profile>
-            <id>1.4-backport</id>
-            <activation>
-                <jdk>1.4</jdk>
-            </activation>
-            <dependencies>
-                <!-- should have the org.w3c.dom dependency here -->
-            </dependencies>
-        </profile>
-        
-        <profile>
-            <id>alljars</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-javadoc-plugin</artifactId>
-                        <version>2.2</version>
-                        <!--
-                        <configuration>
-                            <aggregate>true</aggregate>
-                        </configuration>
-                        -->
-                        <executions>
-                            <execution>
-                                <id>attach-source</id>
-                                <goals>
-                                    <goal>jar</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-source-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>attach-source</id>
-                                <goals>
-                                    <goal>jar</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
             <id>release</id>
-            <activation>
-                <property>
-                    <name>release</name>
-                </property>
-            </activation>
             <build>
                 <plugins>
                     <plugin>
@@ -222,10 +130,6 @@
                                 <name>xwork</name>
                                 <sources>file://$xwork$/src/java</sources>
                             </library>
-                            <library>
-                                <name>xwork-tiger</name>
-                                <sources>file://$xwork$/tiger/src/java</sources>
-                            </library>
                         </libraries>
                         -->
                     </configuration>
@@ -242,10 +146,9 @@
                     </configuration>
                 </plugin>
                 <plugin>
-
-                    <!-- Using 2.1.3 because of http://jira.codehaus.org/browse/MSUREFIRE-114 -->
+                    <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-surefire-plugin</artifactId>
-                    <version>2.1.3</version>
+                    <version>2.3</version>
                     <configuration>
                         <includes>
                             <include>**/*Test.java</include>
@@ -256,28 +159,153 @@
                     </configuration>
                 </plugin>
                 <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-release-plugin</artifactId>
+                    <configuration>
+                        <preparationGoals>clean verify install</preparationGoals>
+                        <useReleaseProfile>true</useReleaseProfile>
+                    </configuration>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+        <plugins>
+            <plugin>
+              <artifactId>maven-jar-plugin</artifactId>
+              <configuration>
+                <archive>
+                  <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+                </archive>
+              </configuration>
+            </plugin>
+            <plugin>
+              <groupId>org.apache.felix</groupId>
+              <artifactId>maven-bundle-plugin</artifactId>
+              <executions>
+                <execution>
+                  <id>bundle-manifest</id>
+                  <phase>process-classes</phase>
+                  <goals>
+                    <goal>manifest</goal>
+                  </goals>
+                </execution>
+              </executions>
+            </plugin>
+            <!--
+            <plugin>
                   <groupId>org.codehaus.mojo</groupId>
-                  <artifactId>retrotranslator-maven-plugin</artifactId>
-                  <version>1.0-SNAPSHOT</version>
+                <artifactId>rat-maven-plugin</artifactId>
+                  <version>1.0-alpha-2</version>
                   <executions>
                     <execution>
-                        <phase>process-classes</phase>
+                        <phase>verify</phase>
                         <goals>
-                            <goal>translate</goal>
+                            <goal>check</goal>
                         </goals>
                         <configuration>
+                            <addDefaultLicenseMatchers>false</addDefaultLicenseMatchers>
+                            <licenseMatchers>
+                                <classNames>
+                                    <className>rat.analysis.license.ApacheSoftwareLicense20</className>
+                                </classNames>
+                            </licenseMatchers>
                             <includes>
-                                <include>
-                                    <directory>${pom.basedir}/target/classes</directory>
-                                </include>
+                                <include>pom.xml</include>
+                                <include>src/**</include>
                             </includes>
                         </configuration>
                     </execution>
                   </executions>
                 </plugin>
-            </plugins>
-        </pluginManagement>
+            -->
+                <plugin>
+                <artifactId>maven-javadoc-plugin</artifactId>
+                <version>2.2</version>
+                <!--
+                  <configuration>
+                    <aggregate>true</aggregate>
+                  </configuration>
+                -->
+                <executions>
+                    <execution>
+                        <id>attach-source</id>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-source-plugin</artifactId>
+                    <executions>
+                        <execution>
+                        <id>attach-source</id>
+                            <goals>
+                            <goal>jar</goal>
+                            </goals>
+                        </execution>
+                    </executions>
+                </plugin>
+<!--
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>retrotranslator-maven-plugin</artifactId>
+                <version>1.0-alpha-3</version>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>translate-project</goal>
+                        </goals>
+                        <configuration>
+                            <verify>false</verify>
+                            <classifier>jdk14</classifier>
+                            <attach>true</attach>
+                            <failonwarning>true</failonwarning>
+                            <lazy>true</lazy>
+                            <advanced>true</advanced>
+                            <verbose>false</verbose>
+                            <destdir>${project.build.directory}/classes-retro</destdir>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+-->
+            <!-- Commenting out the license plugin, until it works like we want.
+            To use the "license:format" goal, remove the "core" module before running,
+            otherwise it will ignore the file exclusions.
 
+            <plugin>
+	            <groupId>com.google.code.maven-license-plugin</groupId>
+	            <artifactId>maven-license-plugin</artifactId>
+	            <version>1.2.7-SNAPSHOT</version>
+	            <configuration>
+	            	<header>src/etc/header.txt</header>
+	            	<includes>
+	            		<include>pom.xml</include>
+	            		<include>src/**</include>
+	            		<include>core/pom.xml</include>
+	            		<include>core/src/**</include>
+	            		<include>plugins/**/pom.xml</include>
+	            		<include>plugins/**/src/**</include>
+	            		<include>apps/**/pom.xml</include>
+	            	</includes>
+	            	<excludes>
+	            		<exclude>**/*.txt</exclude>
+                        <exclude>core/src/test/resources/org/apache/struts2/views/jsp/ui/*</exclude>
+                        <exclude>core/src/main/resources/org/apache/struts2/static/domTT.js</exclude>
+                        <exclude>core/src/test/resources/org/apache/struts2/interceptor/validation/*</exclude>
+                        <exclude>core/src/site/resources/tags/**</exclude>
+                        <exclude>plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/nls/**</exclude>
+                        <exclude>plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/**</exclude>
+                        <exclude>plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/*</exclude>
+                        <exclude>plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/**</exclude>
+	                    <exclude>apps/**/src/**</exclude>
+	            	</excludes>
+	            </configuration>
+	        </plugin> -->
+
+            </plugins>
         <defaultGoal>install</defaultGoal>
 
     </build>
@@ -317,6 +345,22 @@
                 <artifactId>maven-pmd-plugin</artifactId>
             </plugin>
             -->
+            <!--
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>rat-maven-plugin</artifactId>
+                <version>1.0-alpha-2</version>
+                <configuration>
+                    <includes>
+                        <include>pom.xml</include>
+                        <include>src/**</include>
+                    </includes>
+                    <excludes>
+                        <exclude>assembly/src/main/resources/backport/RETROTRANSLATOR-LICENSE.txt</exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+            -->
         </plugins>
     </reporting>
 
@@ -338,33 +382,34 @@
             <id>apache.snapshots</id>
             <name>Apache Maven Repository (Snapshots and Test Builds)</name>
             <url>http://people.apache.org/repo/m2-snapshot-repository</url>
-            <releases><enabled>false</enabled></releases>
-            <snapshots><enabled>true</enabled></snapshots>
-        </repository>
-        <repository>
-            <id>opensymphony</id>
-            <name>opensymphony</name>
-            <layout>legacy</layout>
+            <releases>
+                <enabled>false</enabled>
+            </releases>
             <snapshots>
                 <enabled>true</enabled>
-                <updatePolicy>always</updatePolicy>
-                <checksumPolicy>ignore</checksumPolicy>
+            </snapshots>
+        </repository>
+        <repository>
+            <id>opensymphony-maven2</id>
+            <name>opensymphony-maven2</name>
+            <snapshots>
+                <enabled>true</enabled>
             </snapshots>
             <releases>
                 <enabled>true</enabled>
             </releases>
-            <url>http://maven.opensymphony.com</url>
+            <url>http://maven2.opensymphony.com</url>
         </repository>
-          <repository>
+        <repository>
             <id>Maven Snapshots</id>
             <url>http://snapshots.maven.codehaus.org/maven2/</url>
             <snapshots>
-              <enabled>true</enabled>
+                <enabled>true</enabled>
             </snapshots>
             <releases>
-              <enabled>false</enabled>
+                <enabled>false</enabled>
             </releases>
-          </repository>
+        </repository>
     </repositories>
     <pluginRepositories>
       <pluginRepository>
@@ -384,7 +429,7 @@
             <releases><enabled>false</enabled></releases>
             <snapshots><enabled>true</enabled></snapshots>
         </pluginRepository>
- 
+
     </pluginRepositories>
 
 </project>
diff --git a/src/main/idea/project.xml b/src/main/idea/project.xml
index 3828139..ec39bfe 100644
--- a/src/main/idea/project.xml
+++ b/src/main/idea/project.xml
@@ -1,4 +1,26 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <project version="4" relativePaths="false">
   <component name="CodeStyleManager">
     <option name="USE_DEFAULT_CODE_STYLE_SCHEME" value="true" />
diff --git a/src/main/idea/workspace.xml b/src/main/idea/workspace.xml
index 9678b89..1d8c028 100644
--- a/src/main/idea/workspace.xml
+++ b/src/main/idea/workspace.xml
@@ -1,4 +1,26 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <project version="4" relativePaths="false">
     <component name="RunManager">
         <activeType name="JUnit"/>
diff --git a/src/site/resources/images/download.gif b/src/site/resources/images/download.gif
new file mode 100644
index 0000000..c67d21b
--- /dev/null
+++ b/src/site/resources/images/download.gif
Binary files differ
diff --git a/src/site/resources/images/help.gif b/src/site/resources/images/help.gif
new file mode 100644
index 0000000..728f837
--- /dev/null
+++ b/src/site/resources/images/help.gif
Binary files differ
diff --git a/src/site/resources/images/plugins.gif b/src/site/resources/images/plugins.gif
new file mode 100644
index 0000000..b1a8c13
--- /dev/null
+++ b/src/site/resources/images/plugins.gif
Binary files differ
diff --git a/src/site/site.xml b/src/site/site.xml
index 21bd640..deaee24 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -1,4 +1,26 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+/*
+ * $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+-->
 <project name="Struts 2">
     <bannerLeft>
         <name>Apache Software Foundation</name>
@@ -9,10 +31,10 @@
         <name>Apache Struts</name>
         <src>images/struts2.png</src>
         <href>http://struts.apache.org</href>
-    </bannerRight>     
+    </bannerRight>
     <body>
         <links>
-            <item name="Apache" href="http://www.apache.org" /> 
+            <item name="Apache" href="http://www.apache.org" />
             <item name="Struts 2" href="http://struts.apache.org/2.x" />
             <item name="Struts 1" href="http://struts.apache.org/1.x" />
         </links>
@@ -27,30 +49,30 @@
         </menu>
 
         <menu name="Documentation">
-        
+
             <item
                     name="Getting Started"
                     href="docs/home.html"
-                    />        
+                    />
             <item
                     name="Tutorials"
                     href="docs/tutorials.html"
-                    />        
+                    />
 
             <item
                     name="FAQs"
                     href="docs/faqs.html"
-                    />        
+                    />
 
             <item
                     name="Guides"
                     href="docs/guides.html"
-                    />        
+                    />
 
             <item
                     name="Release Notes"
-                    href="docs/release-notes-205.html"
-                    />        
+                    href="docs/release-notes-2014.html"
+                    />
 
         </menu>
 
@@ -79,10 +101,6 @@
                     href="docs/tag-reference.html"
                     />
             <item
-                    name="New API (experimental)"
-                    href="struts2-api/apidocs/index.html"
-                    />
-            <item
                     name="Plugin Registry"
                     href="http://cwiki.apache.org/S2PLUGINS/home.html"
                     />
diff --git a/src/site/xdoc/index.xml b/src/site/xdoc/index.xml
index 2ece721..98f7246 100644
--- a/src/site/xdoc/index.xml
+++ b/src/site/xdoc/index.xml
@@ -13,167 +13,176 @@
         <section name="About Apache Struts 2">
             <a name="Welcome"/>
 
-        <div style="text-align:left">
+        <div style="text-align:left;min-height:200px">
         <a href="docs/home.html"><img src="images/struts2-merger2.png" alt="Struts 2 and WebWork merger" hspace="16" align="left"/></a>
-        
-        <p>       
-         <strong>Apache Struts 2 is an elegant, extensible framework</strong> for creating enterprise-ready Java web applications. 
-         The framework is designed to streamline the full development cycle, 
-         from building, to deploying, to maintaining applications over time.
-        </p>     
-        
+
         <p>
-         Apache Struts 2 was originally known as WebWork 2. 
-         After working independently for several years, 
-         the WebWork and Struts communities joined forces to create Struts<sup>2</sup>. 
+         <strong>Apache Struts 2 is an elegant, extensible framework</strong> for creating enterprise-ready Java web applications.
+         The framework is designed to streamline the full development cycle,
+         from building, to deploying, to maintaining applications over time.
+        </p>
+
+        <p>
+         Apache Struts 2 was originally known as WebWork 2.
+         After working independently for several years,
+         the WebWork and Struts communities joined forces to create Struts<sup>2</sup>.
          This new version of Struts is simpler to use and
          closer to how Struts was always meant to be.
-        </p>      
-        <ul><li>
-         For more about Apache Struts 2, visit
-         <a href="docs/home.html">
-            Getting Started.
-         </a>
-        </li>
-        <li>
-         To download the framework, visit
-         <a href="http://struts.apache.org/download.cgi#struts201">
-            Apache Struts Distributions.
-         </a>
-        </li>
-        <li>
-          For more about extensions, visit our 
-         <a href="http://cwiki.apache.org/S2PLUGINS/home.html">
-            Plugin Registry.
-         </a>
-        </li>
-        <li>
-          For more about migrating, visit our 
-         <a href="http://struts.apache.org/2.x/docs/migration-guide.html">
-            Migration Guide.
-         </a>
-        </li>        </ul>
+        </p>
         </div>
-            
+        <div>
+        <table><tr><td>
+        <a href="http://struts.apache.org/download.cgi#struts2014">
+          <div style="background:url(images/download.gif) no-repeat scroll 0%; width:200px; min-height:80px; float:left;position:relative;margin:5px">
+            <span style="top:15px;position:absolute;color:white;padding-left:10px">
+              <small>version 2.0.14</small>
+              <br />
+              <span style="font-weight: bold; font-size:140%">Download Now</span>
+            </span>
+          </div>
+        </a>
+        </td><td>
+        <a href="http://struts.apache.org/2.x/docs/home.html" style="margin:10px">
+          <div style="background:url(images/help.gif) no-repeat scroll 0%; width:200px; min-height:80px; float:left;position:relative;margin:5px">
+            <span style="top:15px;position:absolute;color:white;padding-left:10px">
+              <span style="font-weight: bold; font-size:140%">Get Started</span>
+            </span>
+          </div>
+        </a>
+        </td><td>
+        <a href="http://cwiki.apache.org/S2PLUGINS/home.html" style="margin:10px">
+          <div style="background:url(images/plugins.gif) no-repeat scroll 0%; width:200px; min-height:80px; float:left;position:relative;margin:5px">
+            <span style="top:15px;position:absolute;color:white;padding-left:10px">
+              <span style="font-weight: bold; font-size:140%">Plugin Registry</span>
+            </span>
+          </div>
+        </a>
+        </td></tr>
+        </table></div>
         </section>
-        
+
         <section name="Build! Deploy! Maintain!">
             <ul>
             <li>
-                <em>Build!</em> 
+                <em>Build!</em>
                 <ul>
                 <li>
                     <strong>Easy startup</strong> - Jumpstart new projects with our bootstrap tutorial and template application or Maven archetype.
                 </li>
                 <li>
-                    <strong>Improved Design</strong> - Code clean against HTTP-independant framework interfaces. 
+                    <strong>Improved Design</strong> - Code clean against HTTP-independant framework interfaces.
                 </li>
                 <li>
-                    <strong>Enhanced Tags</strong> - Code less with stylesheet-driven form tags that provide their own markup. 
+                    <strong>Enhanced Tags</strong> - Code less with stylesheet-driven form tags that provide their own markup.
                 </li>
                 <li>
                     <strong>Stateful Checkboxes</strong> - Avoid special handling with smart checkboxes that know when they are toggled.
                 </li>
                 <li>
-                    <strong>Flexible Cancel Buttons</strong> - Go directly to a different action on cancel. 
+                    <strong>Flexible Cancel Buttons</strong> - Go directly to a different action on cancel.
                 </li>
                 <li>
-                    <strong>First-class AJAX support</strong> - Add interactivity and flexibility with AJAX tags that look and feel just like standard Struts tags. 
+                    <strong>First-class AJAX support</strong> - Add interactivity and flexibility with AJAX tags that look and feel just like standard Struts tags.
                 </li>
                 <li>
                     <strong>Easy Spring integration</strong> - Inject dependencies into Actions using Spring without glue code or red tape. (Plexus support also available.)
                 </li>
                 <li>
-                    <strong>Enhanced Results</strong> - Do more with speciality results for JasperReports, JFreeChart, Action chaining, and file downloading.  
+                    <strong>Enhanced Results</strong> - Do more with speciality results for JasperReports, JFreeChart, Action chaining, and file downloading.
                 </li>
                 <li>
-                    <strong>POJO forms</strong> -  No more ActionForms! Use any JavaBean to capture form input or 
+                    <strong>POJO forms</strong> -  No more ActionForms! Use any JavaBean to capture form input or
                     put properties directly on an Action class. Use both binary and String properties!
                 </li>
                 <li>
-                    <strong>POJO Actions</strong> - Use any class as an Action class -- even the 
-                    interface is optional! 
+                    <strong>POJO Actions</strong> - Use any class as an Action class -- even the
+                    interface is optional!
                 </li>
                 <!-- Experimental
                 <li>
-                    strong>Zero Configuration</strong> - Optionally, replace XML configuration with convention and annotation. 
+                    strong>Zero Configuration</strong> - Optionally, replace XML configuration with convention and annotation.
                 </li>
                 -->
                 </ul></li>
 
                 <li>
-                    <em>Deploy!</em> 
+                    <em>Deploy!</em>
                 <ul>
                 <li>
-                    <strong>Easy plugins</strong> - Add framework extensions by dropping in a JAR. 
-                    No manual configuration required! Bundled plugins add support for JavaServer Faces, 
+                    <strong>Easy plugins</strong> - Add framework extensions by dropping in a JAR.
+                    No manual configuration required! Bundled plugins add support for JavaServer Faces,
                     JasperReports, JFreeChart, Tiles, and more ...
                 </li>
                 <li>
                     <strong>Integrated profiling</strong> - Peek inside Struts<sup>2</sup> to find where the cycles are going!
                 </li>
                 <li>
-                    <strong>Precise Error Reporting</strong> - Flip directly to the location and line of an error. 
+                    <strong>Precise Error Reporting</strong> - Flip directly to the location and line of an error.
                 </li>
                 <!-- Experimental
                 <li>
-                    <strong>Easy portlets</strong> - Automatic portlet support allows portal and servlet 
+                    <strong>Easy portlets</strong> - Automatic portlet support allows portal and servlet
                     deployments with no code changes.
                 </li>
                 <li>
-                    <strong>REST-ful URLs</strong> - Use search-engine friendly URLs, like category/action/movie/Thrillers. 
+                    <strong>REST-ful URLs</strong> - Use search-engine friendly URLs, like category/action/movie/Thrillers.
                 </li>
                 -->
                 </ul></li>
                 <li>
-                <em>Maintain!</em> 
+                <em>Maintain!</em>
                 <ul>
                 <li>
-                    <strong>Easy-to-test Actions</strong> - Test Struts<sup>2</sup> Actions directly, 
-                    without resorting to mock HTTP objects. 
+                    <strong>Easy-to-test Actions</strong> - Test Struts<sup>2</sup> Actions directly,
+                    without resorting to mock HTTP objects.
                 </li>
                 <li>
-                    <strong>Intelligent Defaults</strong> - Skip obvious and redundant settings. Most framework configuration 
-                    elements have a default value that we can set and forget. Say it once! 
+                    <strong>Intelligent Defaults</strong> - Skip obvious and redundant settings. Most framework configuration
+                    elements have a default value that we can set and forget. Say it once!
                 </li>
                 <li>
-                    <strong>Easy-to-customize controller</strong> - Customize the request handling 
+                    <strong>Easy-to-customize controller</strong> - Customize the request handling
                     per action, if desired. Struts<sup>2</sup> only does what you want it to do!
                 </li>
                 <li>
-                    <strong>Integrating Debugging</strong> - Research problem reports with built-in 
+                    <strong>Integrating Debugging</strong> - Research problem reports with built-in
                     debugging tools.
                 </li>
                 <li>
-                    <strong>Easy-to-tweak tags</strong> - Customize tag markup by editing a FreeMarker 
+                    <strong>Easy-to-tweak tags</strong> - Customize tag markup by editing a FreeMarker
                     template. No need to grok the taglib API!
                     <em>JSP, FreeMarker, and Velocity tags are fully supported.</em>
                 </li>
                 </ul></li></ul>
-                
+
             <subsection>
             <p>
+            To download the framework, visit
+            <a href="http://struts.apache.org/download.cgi#struts2014">
+               Apache Struts Distributions.
+            </a>
             For more about Apache Struts 2, visit
             <a href="docs/home.html">
               Getting Started.
             </a>
-            </p>
-            
-            <p>
-            To download the framework, visit
-            <a href="http://struts.apache.org/download.cgi#struts201">
-               Apache Struts Distributions
+            For more about framework extensions, visit the
+            <a href="http://cwiki.apache.org/S2PLUGINS/home.html">
+              Struts 2 Plugin Registry.
+            </a>
+            For help with migrating, visit our
+            <a href="http://struts.apache.org/2.x/docs/migration-guide.html">
+               Migration Guide.
             </a>
             </p>
             </subsection>
-        </section> 
-        
+        </section>
+
         <section name="Platform Requirements">
-        
+
         <p>
         Apache Struts 2 requires:
         </p>
-        
+
         <ul>
             <li>Servlet API 2.4</li>
             <li>JSP API 2.0</li>
@@ -182,34 +191,34 @@
 
         <p>
          An alternate set of JARs for Java 4 are also available.
-         See the "J4" distribution. 
+         See the "J4" distribution.
         </p>
 
         <p>
-         For a full list of requirements, including dependencies used by optional plugins, 
+         For a full list of requirements, including dependencies used by optional plugins,
          see <a href="http://struts.apache.org/2.x/struts2-core/dependencies.html">Project Dependencies</a>
         </p>
-        
+
         </section>
-        
+
         <section name="Licensing of Apache Struts Distributions">
-        <p>        
-            Apache Struts 2 source code and documentation is 
+        <p>
+            Apache Struts 2 source code and documentation is
             licensed to the Apache Software Foundation (ASF) under one
             or more contributor license agreements. See the NOTICE file
             included in distribution for additional information
-            regarding copyright ownership. The ASF licenses the source 
-            code and documentation files in our Apache Struts distribution 
-            to you under the Apache License, Version 2.0 (the "License"); 
+            regarding copyright ownership. The ASF licenses the source
+            code and documentation files in our Apache Struts distribution
+            to you under the Apache License, Version 2.0 (the "License");
             you may not use the Apache Struts product except in compliance
-            with the License. 
+            with the License.
         </p>
 
         <p>
             You may obtain a copy of the License at
             <a href="http://www.apache.org/licenses/LICENSE-2.0">
             http://www.apache.org/licenses/LICENSE-2.0</a>.
-        </p> 
+        </p>
 
         <p>
             Unless required by applicable law or agreed to in writing,
@@ -217,9 +226,9 @@
             "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.  
-        </p> 
-        
-        </section>        
+            under the License.
+        </p>
+
+        </section>
     </body>
 </document>