You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by Maurizio Cucchiara <mc...@apache.org> on 2013/07/01 10:16:49 UTC

Re: svn commit: r1498175 - in /struts/sandbox/trunk/struts2examples: ./ basic_struts/ basic_struts/src/main/webapp/WEB-INF/ coding_actions/ coding_actions/src/ coding_actions/src/main/ coding_actions/src/main/java/ coding_actions/src/main/java/org/ coding_...

Bruce,
it's really important that every files contain the header of the Apache
Licence.


Twitter     :http://www.twitter.com/m_cucchiara
G+          :https://plus.google.com/107903711540963855921
Linkedin    :http://www.linkedin.com/in/mauriziocucchiara
VisualizeMe: http://vizualize.me/maurizio.cucchiara?r=maurizio.cucchiara

Maurizio Cucchiara


On 30 June 2013 22:29, <bp...@apache.org> wrote:

> Author: bphillips
> Date: Sun Jun 30 20:29:33 2013
> New Revision: 1498175
>
> URL: http://svn.apache.org/r1498175
> Log:
> Added additional example applications
>
> Added:
>     struts/sandbox/trunk/struts2examples/basic_struts/README.txt
>     struts/sandbox/trunk/struts2examples/coding_actions/   (with props)
>     struts/sandbox/trunk/struts2examples/coding_actions/README.txt
>     struts/sandbox/trunk/struts2examples/coding_actions/pom.xml
>     struts/sandbox/trunk/struts2examples/coding_actions/src/
>     struts/sandbox/trunk/struts2examples/coding_actions/src/main/
>     struts/sandbox/trunk/struts2examples/coding_actions/src/main/java/
>     struts/sandbox/trunk/struts2examples/coding_actions/src/main/java/org/
>
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/java/org/apache/
>
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/java/org/apache/struts/
>
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/java/org/apache/struts/helloworld/
>
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/java/org/apache/struts/helloworld/action/
>
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java
>
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/java/org/apache/struts/helloworld/model/
>
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/java/org/apache/struts/helloworld/model/MessageStore.java
>     struts/sandbox/trunk/struts2examples/coding_actions/src/main/resources/
>
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/resources/log4j.dtd
>
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/resources/log4j.xml
>
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/resources/struts.xml
>     struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/
>
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/HelloWorld.jsp
>
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/META-INF/
>
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/META-INF/MANIFEST.MF
>
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/WEB-INF/
>
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/WEB-INF/web.xml
>
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/index.jsp
>     struts/sandbox/trunk/struts2examples/form_processing/   (with props)
>     struts/sandbox/trunk/struts2examples/form_processing/README.txt
>     struts/sandbox/trunk/struts2examples/form_processing/pom.xml
>     struts/sandbox/trunk/struts2examples/form_processing/src/
>     struts/sandbox/trunk/struts2examples/form_processing/src/main/
>     struts/sandbox/trunk/struts2examples/form_processing/src/main/java/
>     struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/helloworld/
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/helloworld/action/
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/helloworld/model/
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/helloworld/model/MessageStore.java
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/register/
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/register/action/
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/register/action/Register.java
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/register/model/
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/register/model/Person.java
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/resources/
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/resources/log4j.dtd
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/resources/log4j.xml
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/resources/struts.xml
>     struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/HelloWorld.jsp
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/META-INF/
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/META-INF/MANIFEST.MF
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/WEB-INF/
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/WEB-INF/web.xml
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/index.jsp
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/register.jsp
>
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/thankyou.jsp
>     struts/sandbox/trunk/struts2examples/using_tags/   (with props)
>     struts/sandbox/trunk/struts2examples/using_tags/README.txt
>     struts/sandbox/trunk/struts2examples/using_tags/pom.xml
>     struts/sandbox/trunk/struts2examples/using_tags/src/
>     struts/sandbox/trunk/struts2examples/using_tags/src/main/
>     struts/sandbox/trunk/struts2examples/using_tags/src/main/java/
>     struts/sandbox/trunk/struts2examples/using_tags/src/main/java/org/
>
> struts/sandbox/trunk/struts2examples/using_tags/src/main/java/org/apache/
>
> struts/sandbox/trunk/struts2examples/using_tags/src/main/java/org/apache/struts/
>
> struts/sandbox/trunk/struts2examples/using_tags/src/main/java/org/apache/struts/using_tags/
>
> struts/sandbox/trunk/struts2examples/using_tags/src/main/java/org/apache/struts/using_tags/helloworld/
>
> struts/sandbox/trunk/struts2examples/using_tags/src/main/java/org/apache/struts/using_tags/helloworld/action/
>
> struts/sandbox/trunk/struts2examples/using_tags/src/main/java/org/apache/struts/using_tags/helloworld/action/HelloWorldAction.java
>
> struts/sandbox/trunk/struts2examples/using_tags/src/main/java/org/apache/struts/using_tags/helloworld/model/
>
> struts/sandbox/trunk/struts2examples/using_tags/src/main/java/org/apache/struts/using_tags/helloworld/model/MessageStore.java
>     struts/sandbox/trunk/struts2examples/using_tags/src/main/resources/
>
> struts/sandbox/trunk/struts2examples/using_tags/src/main/resources/log4j.dtd
>
> struts/sandbox/trunk/struts2examples/using_tags/src/main/resources/log4j.xml
>
> struts/sandbox/trunk/struts2examples/using_tags/src/main/resources/struts.xml
>     struts/sandbox/trunk/struts2examples/using_tags/src/main/webapp/
>
> struts/sandbox/trunk/struts2examples/using_tags/src/main/webapp/HelloWorld.jsp
>
> struts/sandbox/trunk/struts2examples/using_tags/src/main/webapp/WEB-INF/
>
> struts/sandbox/trunk/struts2examples/using_tags/src/main/webapp/WEB-INF/web.xml
>
> struts/sandbox/trunk/struts2examples/using_tags/src/main/webapp/index.jsp
> Removed:
>     struts/sandbox/trunk/struts2examples/src/
> Modified:
>     struts/sandbox/trunk/struts2examples/basic_struts/pom.xml
>
> struts/sandbox/trunk/struts2examples/basic_struts/src/main/webapp/WEB-INF/web.xml
>     struts/sandbox/trunk/struts2examples/helloworld/README.txt
>     struts/sandbox/trunk/struts2examples/helloworld/pom.xml
>
> struts/sandbox/trunk/struts2examples/helloworld/src/main/webapp/WEB-INF/web.xml
>     struts/sandbox/trunk/struts2examples/pom.xml
>
> Added: struts/sandbox/trunk/struts2examples/basic_struts/README.txt
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/basic_struts/README.txt?rev=1498175&view=auto
>
> ==============================================================================
> --- struts/sandbox/trunk/struts2examples/basic_struts/README.txt (added)
> +++ struts/sandbox/trunk/struts2examples/basic_struts/README.txt Sun Jun
> 30 20:29:33 2013
> @@ -0,0 +1,16 @@
> +This is the example project referred to in the
> +Struts 2 documentation, Ready, Set, Go tutorial.
> +See:  http://struts.apache.org.
> +
> +To build the application's war file run mvn clean package
> +from the project's root folder.
> +
> +The war file is created in the target sub-folder.
> +
> +Copy the war file to your Servlet container (e.g. Tomcat) and
> +then startup the Servlet container.
> +
> +In a web browser go to:  http://localhost:8080/basic_struts/index.action.
> +
> +You should see a web page with Welcome to Struts 2!
> +
>
> Modified: struts/sandbox/trunk/struts2examples/basic_struts/pom.xml
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/basic_struts/pom.xml?rev=1498175&r1=1498174&r2=1498175&view=diff
>
> ==============================================================================
> --- struts/sandbox/trunk/struts2examples/basic_struts/pom.xml (original)
> +++ struts/sandbox/trunk/struts2examples/basic_struts/pom.xml Sun Jun 30
> 20:29:33 2013
> @@ -10,5 +10,11 @@
>    <artifactId>basic_struts</artifactId>
>    <name>basic_struts</name>
>    <description>Basic Struts 2 example application</description>
> +
> +    <packaging>war</packaging>
> +
> +       <build>
> +               <finalName>basic_struts</finalName>
> +       </build>
>
>  </project>
>
> Modified:
> struts/sandbox/trunk/struts2examples/basic_struts/src/main/webapp/WEB-INF/web.xml
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/basic_struts/src/main/webapp/WEB-INF/web.xml?rev=1498175&r1=1498174&r2=1498175&view=diff
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/basic_struts/src/main/webapp/WEB-INF/web.xml
> (original)
> +++
> struts/sandbox/trunk/struts2examples/basic_struts/src/main/webapp/WEB-INF/web.xml
> Sun Jun 30 20:29:33 2013
> @@ -1,6 +1,6 @@
>  <?xml version="1.0" encoding="UTF-8"?>
>  <web-app id="WebApp_ID" version="2.4" xmlns="
> http://java.sun.com/xml/ns/j2ee" xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
> http://java.sun.com/xml/ns/j2ee
> http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
> -<display-name>Basic_Struts2_Maven</display-name>
> +<display-name>Basic Struts2</display-name>
>    <welcome-file-list>
>      <welcome-file>index.jsp</welcome-file>
>    </welcome-file-list>
>
> Propchange: struts/sandbox/trunk/struts2examples/coding_actions/
>
> ------------------------------------------------------------------------------
> --- svn:ignore (added)
> +++ svn:ignore Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,4 @@
> +target
> +.settings
> +.classpath
> +.project
>
> Added: struts/sandbox/trunk/struts2examples/coding_actions/README.txt
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/coding_actions/README.txt?rev=1498175&view=auto
>
> ==============================================================================
> --- struts/sandbox/trunk/struts2examples/coding_actions/README.txt (added)
> +++ struts/sandbox/trunk/struts2examples/coding_actions/README.txt Sun Jun
> 30 20:29:33 2013
> @@ -0,0 +1,16 @@
> +This is the example project referred to in the
> +Struts 2 documentation, Coding Actions tutorial.
> +See:  http://struts.apache.org.
> +
> +To build the application's war file run mvn clean package
> +from the project's root folder.
> +
> +The war file is created in the target sub-folder.
> +
> +Copy the war file to your Servlet container (e.g. Tomcat, GlassFish) and
> +then startup the Servlet container.
> +
> +In a web browser go to:
> http://localhost:8080/coding_actions/index.action.
> +
> +You should see a web page with Welcome to Struts 2!
> +
>
> Added: struts/sandbox/trunk/struts2examples/coding_actions/pom.xml
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/coding_actions/pom.xml?rev=1498175&view=auto
>
> ==============================================================================
> --- struts/sandbox/trunk/struts2examples/coding_actions/pom.xml (added)
> +++ struts/sandbox/trunk/struts2examples/coding_actions/pom.xml Sun Jun 30
> 20:29:33 2013
> @@ -0,0 +1,22 @@
> +<?xml version="1.0"?>
> +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="
> http://maven.apache.org/POM/4.0.0"
> +    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> +  <modelVersion>4.0.0</modelVersion>
> +  <parent>
> +    <groupId>struts.apache.org</groupId>
> +    <artifactId>struts2examples</artifactId>
> +    <version>1.0.0</version>
> +  </parent>
> +
> +  <artifactId>coding_actions</artifactId>
> +
> +  <name>Coding Struts 2 Action</name>
> +  <description>Struts 2 example application for the Getting
> +  Started coding Struts 2 actions</description>
> +
> +    <build>
> +               <finalName>coding_actions</finalName>
> +       </build>
> +
> +    <packaging>war</packaging>
> +</project>
>
> Added:
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/coding_actions/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java
> (added)
> +++
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,80 @@
> +package org.apache.struts.helloworld.action;
> +
> +import org.apache.struts.helloworld.model.MessageStore;
> +
> +import com.opensymphony.xwork2.ActionSupport;
> +
> +/**
> + * Acts as a Struts 2 controller that responds
> + * to a user action by setting the value
> + * of the Message model class, and returns a String
> + * result.
> + * @author Bruce Phillips
> + *
> + */
> +public class HelloWorldAction extends ActionSupport {
> +
> +       private static final long serialVersionUID = 1L;
> +
> +       /**
> +        * The model class that stores the message
> +        * to display in the view.
> +        */
> +       private MessageStore messageStore;
> +
> +       private static int helloCount = 0;
> +
> +       public int getHelloCount() {
> +               return helloCount;
> +       }
> +
> +       public void setHelloCount(int helloCount) {
> +               HelloWorldAction.helloCount = helloCount;
> +       }
> +
> +       private String userName;
> +
> +       public String getUserName() {
> +               return userName;
> +       }
> +
> +       public void setUserName(String userName) {
> +               this.userName = userName;
> +       }
> +
> +       /*
> +        * Creates the MessageStore model object,
> +        * increase helloCount by 1 and
> +        * returns success.  The MessageStore model
> +        * object will be available to the view.
> +        * (non-Javadoc)
> +        * @see com.opensymphony.xwork2.ActionSupport#execute()
> +        */
> +       public String execute() throws Exception {
> +
> +               messageStore = new MessageStore() ;
> +
> +               //Action included a query string parameter of userName
> +               //or a form field with name of userName
> +               if (userName != null) {
> +
> +                       messageStore.setMessage( messageStore.getMessage()
> + " " + userName);
> +
> +               }
> +
> +               helloCount++;
> +
> +               return SUCCESS;
> +       }
> +
> +       public MessageStore getMessageStore() {
> +               return messageStore;
> +       }
> +
> +       public void setMessageStore(MessageStore messageStore) {
> +               this.messageStore = messageStore;
> +       }
> +
> +
> +
> +}
>
> Added:
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/java/org/apache/struts/helloworld/model/MessageStore.java
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/coding_actions/src/main/java/org/apache/struts/helloworld/model/MessageStore.java?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/java/org/apache/struts/helloworld/model/MessageStore.java
> (added)
> +++
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/java/org/apache/struts/helloworld/model/MessageStore.java
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,31 @@
> +package org.apache.struts.helloworld.model;
> +
> +/**
> + * Model class that stores a message.
> + * @author Bruce Phillips
> + *
> + */
> +public class MessageStore {
> +
> +       private String message;
> +
> +       public MessageStore() {
> +
> +               setMessage("Hello Struts User");
> +       }
> +
> +       public String getMessage() {
> +               return message;
> +       }
> +
> +       public void setMessage(String message) {
> +               this.message = message;
> +       }
> +
> +       public String toString() {
> +
> +               return message + " (from toString)";
> +
> +       }
> +
> +}
>
> Added:
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/resources/log4j.dtd
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/coding_actions/src/main/resources/log4j.dtd?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/resources/log4j.dtd
> (added)
> +++
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/resources/log4j.dtd
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,227 @@
> +<?xml version="1.0" encoding="UTF-8" ?>
> +<!--
> + Licensed to the Apache Software Foundation (ASF) under one or more
> + contributor license agreements.  See the NOTICE file distributed with
> + this work for additional information regarding copyright ownership.
> + The ASF licenses this file to You under the Apache License, Version 2.0
> + (the "License"); you may not use this file except in compliance with
> + the License.  You may obtain a copy of the License at
> +
> +      http://www.apache.org/licenses/LICENSE-2.0
> +
> + Unless required by applicable law or agreed to in writing, software
> + distributed under the License is distributed on an "AS IS" BASIS,
> + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> + See the License for the specific language governing permissions and
> + limitations under the License.
> +-->
> +
> +<!-- Authors: Chris Taylor, Ceki Gulcu. -->
> +
> +<!-- Version: 1.2 -->
> +
> +<!-- A configuration element consists of optional renderer
> +elements,appender elements, categories and an optional root
> +element. -->
> +
> +<!ELEMENT log4j:configuration (renderer*, appender*,plugin*,
> (category|logger)*,root?,
> +                               (categoryFactory|loggerFactory)?)>
> +
> +<!-- The "threshold" attribute takes a level value below which -->
> +<!-- all logging statements are disabled. -->
> +
> +<!-- Setting the "debug" enable the printing of internal log4j logging
> -->
> +<!-- statements.
> -->
> +
> +<!-- By default, debug attribute is "null", meaning that we not do touch
> -->
> +<!-- internal log4j logging settings. The "null" value for the threshold
> -->
> +<!-- attribute can be misleading. The threshold field of a repository
> -->
> +<!-- cannot be set to null. The "null" value for the threshold attribute
> -->
> +<!-- simply means don't touch the threshold field, the threshold field
> -->
> +<!-- keeps its old value.
>  -->
> +
> +<!ATTLIST log4j:configuration
> +  xmlns:log4j              CDATA #FIXED "http://jakarta.apache.org/log4j/
> "
> +  threshold
>  (all|trace|debug|info|warn|error|fatal|off|null) "null"
> +  debug                    (true|false|null)  "null"
> +  reset                    (true|false) "false"
> +>
> +
> +<!-- renderer elements allow the user to customize the conversion of  -->
> +<!-- message objects to String.                                       -->
> +
> +<!ELEMENT renderer EMPTY>
> +<!ATTLIST renderer
> +  renderedClass  CDATA #REQUIRED
> +  renderingClass CDATA #REQUIRED
> +>
> +
> +<!-- Appenders must have a name and a class. -->
> +<!-- Appenders may contain an error handler, a layout, optional
> parameters -->
> +<!-- and filters. They may also reference (or include) other appenders.
> -->
> +<!ELEMENT appender (errorHandler?, param*,
> +      rollingPolicy?, triggeringPolicy?, connectionSource?,
> +      layout?, filter*, appender-ref*)>
> +<!ATTLIST appender
> +  name                 CDATA   #REQUIRED
> +  class        CDATA   #REQUIRED
> +>
> +
> +<!ELEMENT layout (param*)>
> +<!ATTLIST layout
> +  class                CDATA   #REQUIRED
> +>
> +
> +<!ELEMENT filter (param*)>
> +<!ATTLIST filter
> +  class                CDATA   #REQUIRED
> +>
> +
> +<!-- ErrorHandlers can be of any class. They can admit any number of -->
> +<!-- parameters. -->
> +
> +<!ELEMENT errorHandler (param*, root-ref?, logger-ref*,  appender-ref?)>
> +<!ATTLIST errorHandler
> +   class        CDATA   #REQUIRED
> +>
> +
> +<!ELEMENT root-ref EMPTY>
> +
> +<!ELEMENT logger-ref EMPTY>
> +<!ATTLIST logger-ref
> +  ref CDATA #REQUIRED
> +>
> +
> +<!ELEMENT param EMPTY>
> +<!ATTLIST param
> +  name         CDATA   #REQUIRED
> +  value                CDATA   #REQUIRED
> +>
> +
> +
> +<!-- The priority class is org.apache.log4j.Level by default -->
> +<!ELEMENT priority (param*)>
> +<!ATTLIST priority
> +  class   CDATA        #IMPLIED
> +  value          CDATA #REQUIRED
> +>
> +
> +<!-- The level class is org.apache.log4j.Level by default -->
> +<!ELEMENT level (param*)>
> +<!ATTLIST level
> +  class   CDATA        #IMPLIED
> +  value          CDATA #REQUIRED
> +>
> +
> +
> +<!-- If no level element is specified, then the configurator MUST not -->
> +<!-- touch the level of the named category. -->
> +<!ELEMENT category (param*,(priority|level)?,appender-ref*)>
> +<!ATTLIST category
> +  class         CDATA   #IMPLIED
> +  name         CDATA   #REQUIRED
> +  additivity   (true|false) "true"
> +>
> +
> +<!-- If no level element is specified, then the configurator MUST not -->
> +<!-- touch the level of the named logger. -->
> +<!ELEMENT logger (level?,appender-ref*)>
> +<!ATTLIST logger
> +  name         CDATA   #REQUIRED
> +  additivity   (true|false) "true"
> +>
> +
> +
> +<!ELEMENT categoryFactory (param*)>
> +<!ATTLIST categoryFactory
> +   class        CDATA #REQUIRED>
> +
> +<!ELEMENT loggerFactory (param*)>
> +<!ATTLIST loggerFactory
> +   class        CDATA #REQUIRED>
> +
> +<!ELEMENT appender-ref EMPTY>
> +<!ATTLIST appender-ref
> +  ref CDATA #REQUIRED
> +>
> +
> +<!-- plugins must have a name and class and can have optional parameters
> -->
> +<!ELEMENT plugin (param*, connectionSource?)>
> +<!ATTLIST plugin
> +  name                 CDATA      #REQUIRED
> +  class        CDATA  #REQUIRED
> +>
> +
> +<!ELEMENT connectionSource (dataSource?, param*)>
> +<!ATTLIST connectionSource
> +  class        CDATA  #REQUIRED
> +>
> +
> +<!ELEMENT dataSource (param*)>
> +<!ATTLIST dataSource
> +  class        CDATA  #REQUIRED
> +>
> +
> +<!ELEMENT triggeringPolicy ((param|filter)*)>
> +<!ATTLIST triggeringPolicy
> +  name                 CDATA  #IMPLIED
> +  class        CDATA  #REQUIRED
> +>
> +
> +<!ELEMENT rollingPolicy (param*)>
> +<!ATTLIST rollingPolicy
> +  name                 CDATA  #IMPLIED
> +  class        CDATA  #REQUIRED
> +>
> +
> +
> +<!-- If no priority element is specified, then the configurator MUST not
> -->
> +<!-- touch the priority of root. -->
> +<!-- The root category always exists and cannot be subclassed. -->
> +<!ELEMENT root (param*, (priority|level)?, appender-ref*)>
> +
> +
> +<!-- ====================================================================
> -->
> +<!--                       A logging event
>  -->
> +<!-- ====================================================================
> -->
> +<!ELEMENT log4j:eventSet (log4j:event*)>
> +<!ATTLIST log4j:eventSet
> +  xmlns:log4j             CDATA #FIXED "http://jakarta.apache.org/log4j/"
> +  version                (1.1|1.2) "1.2"
> +  includesLocationInfo   (true|false) "true"
> +>
> +
> +
> +
> +<!ELEMENT log4j:event (log4j:message, log4j:NDC?, log4j:throwable?,
> +                       log4j:locationInfo?, log4j:properties?) >
> +
> +<!-- The timestamp format is application dependent. -->
> +<!ATTLIST log4j:event
> +    logger     CDATA #REQUIRED
> +    level      CDATA #REQUIRED
> +    thread     CDATA #REQUIRED
> +    timestamp  CDATA #REQUIRED
> +    time       CDATA #IMPLIED
> +>
> +
> +<!ELEMENT log4j:message (#PCDATA)>
> +<!ELEMENT log4j:NDC (#PCDATA)>
> +
> +<!ELEMENT log4j:throwable (#PCDATA)>
> +
> +<!ELEMENT log4j:locationInfo EMPTY>
> +<!ATTLIST log4j:locationInfo
> +  class  CDATA #REQUIRED
> +  method CDATA #REQUIRED
> +  file   CDATA #REQUIRED
> +  line   CDATA #REQUIRED
> +>
> +
> +<!ELEMENT log4j:properties (log4j:data*)>
> +
> +<!ELEMENT log4j:data EMPTY>
> +<!ATTLIST log4j:data
> +  name   CDATA #REQUIRED
> +  value  CDATA #REQUIRED
> +>
>
> Added:
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/resources/log4j.xml
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/coding_actions/src/main/resources/log4j.xml?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/resources/log4j.xml
> (added)
> +++
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/resources/log4j.xml
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,28 @@
> +<?xml version="1.0" encoding="UTF-8" ?>
> +<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN"
> "log4j.dtd">
> +
> +<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
> +
> +    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
> +       <layout class="org.apache.log4j.PatternLayout">
> +          <param name="ConversionPattern" value="%d %-5p %c.%M:%L -
> %m%n"/>
> +       </layout>
> +    </appender>
> +
> +    <!-- specify the logging level for loggers from other libraries -->
> +    <logger name="com.opensymphony">
> +       <level value="DEBUG" />
> +    </logger>
> +
> +    <logger name="org.apache.struts2">
> +        <level value="DEBUG" />
> +    </logger>
> +
> +   <!-- for all other loggers log only debug and above log messages -->
> +     <root>
> +        <priority value="INFO"/>
> +        <appender-ref ref="STDOUT" />
> +     </root>
> +
> +</log4j:configuration>
> +
>
> Added:
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/resources/struts.xml
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/coding_actions/src/main/resources/struts.xml?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/resources/struts.xml
> (added)
> +++
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/resources/struts.xml
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,27 @@
> +<?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>
> +
> +       <constant name="struts.devMode" value="true" />
> +
> +       <package name="basicstruts2" extends="struts-default">
> +
> +        <!-- If no class attribute is specified the framework will assume
> success and
> +        render the result index.jsp -->
> +        <!-- If no name value for the result node is specified the
> success value is the default -->
> +               <action name="index">
> +                       <result>/index.jsp</result>
> +               </action>
> +
> +               <!-- If the URL is hello.action the call the execute
> method of class HelloWorldAction.
> +               If the result returned by the execute method is success
> render the HelloWorld.jsp -->
> +               <action name="hello"
> class="org.apache.struts.helloworld.action.HelloWorldAction"
> method="execute">
> +                       <result name="success">/HelloWorld.jsp</result>
> +               </action>
> +
> +       </package>
> +
> +</struts>
> \ No newline at end of file
>
> Added:
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/HelloWorld.jsp
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/HelloWorld.jsp?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/HelloWorld.jsp
> (added)
> +++
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/HelloWorld.jsp
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,17 @@
> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
> +    pageEncoding="ISO-8859-1"%>
> +<%@ taglib prefix="s" uri="/struts-tags" %>
> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
> http://www.w3.org/TR/html4/loose.dtd">
> +<html>
> +<head>
> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
> +<title>Hello World!</title>
> +</head>
> +<body>
> +<h2><s:property value="%{messageStore.message}" /></h2>
> +<p>I've said hello <s:property value="%{helloCount}" /> times!</p>
> +<p><s:property value="%{messageStore}" /></p>
> +
> +<p><a href="<s:url action='index'/>">Home Page</a></p>
> +</body>
> +</html>
> \ No newline at end of file
>
> Added:
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/META-INF/MANIFEST.MF
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/META-INF/MANIFEST.MF?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/META-INF/MANIFEST.MF
> (added)
> +++
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/META-INF/MANIFEST.MF
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,3 @@
> +Manifest-Version: 1.0
> +Class-Path:
> +
>
> Added:
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/WEB-INF/web.xml
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/WEB-INF/web.xml?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/WEB-INF/web.xml
> (added)
> +++
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/WEB-INF/web.xml
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,19 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<web-app id="WebApp_ID" version="2.4" xmlns="
> http://java.sun.com/xml/ns/j2ee" xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
> http://java.sun.com/xml/ns/j2ee
> http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
> +<display-name>Coding Actions</display-name>
> +  <welcome-file-list>
> +    <welcome-file>index.jsp</welcome-file>
> +  </welcome-file-list>
> +
> +
> +    <filter>
> +        <filter-name>struts2</filter-name>
> +
>  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
> +    </filter>
> +
> +     <filter-mapping>
> +        <filter-name>struts2</filter-name>
> +        <url-pattern>/*</url-pattern>
> +    </filter-mapping>
> +
> +</web-app>
>
> Added:
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/index.jsp
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/index.jsp?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/index.jsp
> (added)
> +++
> struts/sandbox/trunk/struts2examples/coding_actions/src/main/webapp/index.jsp
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,28 @@
> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
> +    pageEncoding="ISO-8859-1"%>
> +<%@ taglib prefix="s" uri="/struts-tags" %>
> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
> http://www.w3.org/TR/html4/loose.dtd">
> +<html>
> +<head>
> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
> +<title>Basic Struts 2 Application - Welcome</title>
> +</head>
> +<body>
> +<h1>Welcome To Struts 2!</h1>
> +<p><a href="<s:url action='hello'/>">Hello World</a></p>
> +<s:url action="hello" var="helloLink">
> +  <s:param name="userName">Bruce Phillips</s:param>
> +</s:url>
> +<p><a href="${helloLink}">Hello Bruce Phillips</a></p>
> +
> +<p>Get your own personal hello by filling out and submitting this
> form.</p>
> +
> +<s:form action="hello">
> +
> +       <s:textfield name="userName" label="%{'Your name'}" />
> +
> +       <s:submit value="%{'Submit'}" />
> +
> +</s:form>
> +</body>
> +</html>
> \ No newline at end of file
>
> Propchange: struts/sandbox/trunk/struts2examples/form_processing/
>
> ------------------------------------------------------------------------------
> --- svn:ignore (added)
> +++ svn:ignore Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,4 @@
> +.settings
> +.classpath
> +.project
> +target
>
> Added: struts/sandbox/trunk/struts2examples/form_processing/README.txt
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/form_processing/README.txt?rev=1498175&view=auto
>
> ==============================================================================
> --- struts/sandbox/trunk/struts2examples/form_processing/README.txt (added)
> +++ struts/sandbox/trunk/struts2examples/form_processing/README.txt Sun
> Jun 30 20:29:33 2013
> @@ -0,0 +1,16 @@
> +This is the example project referred to in the
> +Struts 2 documentation, Processing Forms tutorial.
> +See:  http://struts.apache.org.
> +
> +To build the application's war file run mvn clean package
> +from the project's root folder.
> +
> +The war file is created in the target sub-folder.
> +
> +Copy the war file to your Servlet container (e.g. Tomcat, GlassFish) and
> +then startup the Servlet container.
> +
> +In a web browser go to:
> http://localhost:8080/form_processing/index.action.
> +
> +You should see a web page with Welcome to Struts 2!
> +
>
> Added: struts/sandbox/trunk/struts2examples/form_processing/pom.xml
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/form_processing/pom.xml?rev=1498175&view=auto
>
> ==============================================================================
> --- struts/sandbox/trunk/struts2examples/form_processing/pom.xml (added)
> +++ struts/sandbox/trunk/struts2examples/form_processing/pom.xml Sun Jun
> 30 20:29:33 2013
> @@ -0,0 +1,21 @@
> +<?xml version="1.0"?>
> +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="
> http://maven.apache.org/POM/4.0.0"
> +    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> +  <modelVersion>4.0.0</modelVersion>
> +  <parent>
> +    <groupId>struts.apache.org</groupId>
> +    <artifactId>struts2examples</artifactId>
> +    <version>1.0.0</version>
> +  </parent>
> +  <artifactId>form_processing</artifactId>
> +
> +  <name>Form Processing</name>
> +
> +  <description>Form processing example application for the
> +  Struts 2 getting started tutorials</description>
> +  <packaging>war</packaging>
> +
> +      <build>
> +               <finalName>form_processing</finalName>
> +       </build>
> +</project>
>
> Added:
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java
> (added)
> +++
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,80 @@
> +package org.apache.struts.helloworld.action;
> +
> +import org.apache.struts.helloworld.model.MessageStore;
> +
> +import com.opensymphony.xwork2.ActionSupport;
> +
> +/**
> + * Acts as a Struts 2 controller that responds
> + * to a user action by setting the value
> + * of the Message model class, and returns a String
> + * result.
> + * @author Bruce Phillips
> + *
> + */
> +public class HelloWorldAction extends ActionSupport {
> +
> +       private static final long serialVersionUID = 1L;
> +
> +       /**
> +        * The model class that stores the message
> +        * to display in the view.
> +        */
> +       private MessageStore messageStore;
> +
> +       private static int helloCount = 0;
> +
> +       public int getHelloCount() {
> +               return helloCount;
> +       }
> +
> +       public void setHelloCount(int helloCount) {
> +               HelloWorldAction.helloCount = helloCount;
> +       }
> +
> +       private String userName;
> +
> +       public String getUserName() {
> +               return userName;
> +       }
> +
> +       public void setUserName(String userName) {
> +               this.userName = userName;
> +       }
> +
> +       /*
> +        * Creates the MessageStore model object,
> +        * increase helloCount by 1 and
> +        * returns success.  The MessageStore model
> +        * object will be available to the view.
> +        * (non-Javadoc)
> +        * @see com.opensymphony.xwork2.ActionSupport#execute()
> +        */
> +       public String execute() throws Exception {
> +
> +               messageStore = new MessageStore() ;
> +
> +               //Action included a query string parameter of userName
> +               //or a form field with name of userName
> +               if (userName != null) {
> +
> +                       messageStore.setMessage( messageStore.getMessage()
> + " " + userName);
> +
> +               }
> +
> +               helloCount++;
> +
> +               return SUCCESS;
> +       }
> +
> +       public MessageStore getMessageStore() {
> +               return messageStore;
> +       }
> +
> +       public void setMessageStore(MessageStore messageStore) {
> +               this.messageStore = messageStore;
> +       }
> +
> +
> +
> +}
>
> Added:
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/helloworld/model/MessageStore.java
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/helloworld/model/MessageStore.java?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/helloworld/model/MessageStore.java
> (added)
> +++
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/helloworld/model/MessageStore.java
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,31 @@
> +package org.apache.struts.helloworld.model;
> +
> +/**
> + * Model class that stores a message.
> + * @author Bruce Phillips
> + *
> + */
> +public class MessageStore {
> +
> +       private String message;
> +
> +       public MessageStore() {
> +
> +               setMessage("Hello Struts User");
> +       }
> +
> +       public String getMessage() {
> +               return message;
> +       }
> +
> +       public void setMessage(String message) {
> +               this.message = message;
> +       }
> +
> +       public String toString() {
> +
> +               return message + " (from toString)";
> +
> +       }
> +
> +}
>
> Added:
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/register/action/Register.java
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/register/action/Register.java?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/register/action/Register.java
> (added)
> +++
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/register/action/Register.java
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,40 @@
> +package org.apache.struts.register.action;
> +
> +import org.apache.struts.register.model.Person;
> +
> +import com.opensymphony.xwork2.ActionSupport;
> +
> +/**
> + * Acts as a controller to handle actions
> + * related to registering a user.
> + * @author bruce phillips
> + *
> + */
> +public class Register extends ActionSupport {
> +
> +       private static final long serialVersionUID = 1L;
> +
> +       private Person personBean;
> +
> +
> +       public String execute() throws Exception {
> +
> +               //call Service class to store personBean's state in
> database
> +
> +               return SUCCESS;
> +
> +       }
> +
> +       public Person getPersonBean() {
> +
> +               return personBean;
> +
> +       }
> +
> +       public void setPersonBean(Person person) {
> +
> +               personBean = person;
> +
> +       }
> +
> +}
>
> Added:
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/register/model/Person.java
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/register/model/Person.java?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/register/model/Person.java
> (added)
> +++
> struts/sandbox/trunk/struts2examples/form_processing/src/main/java/org/apache/struts/register/model/Person.java
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,62 @@
> +package org.apache.struts.register.model;
> +
> +
> +/**
> + * Models a Person who registers.
> + * @author bruce phillips
> + *
> + */
> +public class Person
> +{
> +    private String firstName;
> +    private String lastName;
> +    private String email;
> +    private int age;
> +
> +    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;
> +    }
> +
> +    public String getEmail()
> +    {
> +        return email;
> +    }
> +
> +    public void setEmail(String email)
> +    {
> +        this.email = email;
> +    }
> +
> +    public int getAge()
> +    {
> +        return age;
> +    }
> +
> +    public void setAge( int age)
> +    {
> +        this.age = age;
> +    }
> +
> +
> +    public String toString()
> +    {
> +        return "First Name: " + getFirstName() + " Last Name:  " +
> getLastName() +
> +        " Email:      " + getEmail() + " Age:      " + getAge() ;
> +    }
> +}
>
> Added:
> struts/sandbox/trunk/struts2examples/form_processing/src/main/resources/log4j.dtd
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/form_processing/src/main/resources/log4j.dtd?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/form_processing/src/main/resources/log4j.dtd
> (added)
> +++
> struts/sandbox/trunk/struts2examples/form_processing/src/main/resources/log4j.dtd
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,227 @@
> +<?xml version="1.0" encoding="UTF-8" ?>
> +<!--
> + Licensed to the Apache Software Foundation (ASF) under one or more
> + contributor license agreements.  See the NOTICE file distributed with
> + this work for additional information regarding copyright ownership.
> + The ASF licenses this file to You under the Apache License, Version 2.0
> + (the "License"); you may not use this file except in compliance with
> + the License.  You may obtain a copy of the License at
> +
> +      http://www.apache.org/licenses/LICENSE-2.0
> +
> + Unless required by applicable law or agreed to in writing, software
> + distributed under the License is distributed on an "AS IS" BASIS,
> + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> + See the License for the specific language governing permissions and
> + limitations under the License.
> +-->
> +
> +<!-- Authors: Chris Taylor, Ceki Gulcu. -->
> +
> +<!-- Version: 1.2 -->
> +
> +<!-- A configuration element consists of optional renderer
> +elements,appender elements, categories and an optional root
> +element. -->
> +
> +<!ELEMENT log4j:configuration (renderer*, appender*,plugin*,
> (category|logger)*,root?,
> +                               (categoryFactory|loggerFactory)?)>
> +
> +<!-- The "threshold" attribute takes a level value below which -->
> +<!-- all logging statements are disabled. -->
> +
> +<!-- Setting the "debug" enable the printing of internal log4j logging
> -->
> +<!-- statements.
> -->
> +
> +<!-- By default, debug attribute is "null", meaning that we not do touch
> -->
> +<!-- internal log4j logging settings. The "null" value for the threshold
> -->
> +<!-- attribute can be misleading. The threshold field of a repository
> -->
> +<!-- cannot be set to null. The "null" value for the threshold attribute
> -->
> +<!-- simply means don't touch the threshold field, the threshold field
> -->
> +<!-- keeps its old value.
>  -->
> +
> +<!ATTLIST log4j:configuration
> +  xmlns:log4j              CDATA #FIXED "http://jakarta.apache.org/log4j/
> "
> +  threshold
>  (all|trace|debug|info|warn|error|fatal|off|null) "null"
> +  debug                    (true|false|null)  "null"
> +  reset                    (true|false) "false"
> +>
> +
> +<!-- renderer elements allow the user to customize the conversion of  -->
> +<!-- message objects to String.                                       -->
> +
> +<!ELEMENT renderer EMPTY>
> +<!ATTLIST renderer
> +  renderedClass  CDATA #REQUIRED
> +  renderingClass CDATA #REQUIRED
> +>
> +
> +<!-- Appenders must have a name and a class. -->
> +<!-- Appenders may contain an error handler, a layout, optional
> parameters -->
> +<!-- and filters. They may also reference (or include) other appenders.
> -->
> +<!ELEMENT appender (errorHandler?, param*,
> +      rollingPolicy?, triggeringPolicy?, connectionSource?,
> +      layout?, filter*, appender-ref*)>
> +<!ATTLIST appender
> +  name                 CDATA   #REQUIRED
> +  class        CDATA   #REQUIRED
> +>
> +
> +<!ELEMENT layout (param*)>
> +<!ATTLIST layout
> +  class                CDATA   #REQUIRED
> +>
> +
> +<!ELEMENT filter (param*)>
> +<!ATTLIST filter
> +  class                CDATA   #REQUIRED
> +>
> +
> +<!-- ErrorHandlers can be of any class. They can admit any number of -->
> +<!-- parameters. -->
> +
> +<!ELEMENT errorHandler (param*, root-ref?, logger-ref*,  appender-ref?)>
> +<!ATTLIST errorHandler
> +   class        CDATA   #REQUIRED
> +>
> +
> +<!ELEMENT root-ref EMPTY>
> +
> +<!ELEMENT logger-ref EMPTY>
> +<!ATTLIST logger-ref
> +  ref CDATA #REQUIRED
> +>
> +
> +<!ELEMENT param EMPTY>
> +<!ATTLIST param
> +  name         CDATA   #REQUIRED
> +  value                CDATA   #REQUIRED
> +>
> +
> +
> +<!-- The priority class is org.apache.log4j.Level by default -->
> +<!ELEMENT priority (param*)>
> +<!ATTLIST priority
> +  class   CDATA        #IMPLIED
> +  value          CDATA #REQUIRED
> +>
> +
> +<!-- The level class is org.apache.log4j.Level by default -->
> +<!ELEMENT level (param*)>
> +<!ATTLIST level
> +  class   CDATA        #IMPLIED
> +  value          CDATA #REQUIRED
> +>
> +
> +
> +<!-- If no level element is specified, then the configurator MUST not -->
> +<!-- touch the level of the named category. -->
> +<!ELEMENT category (param*,(priority|level)?,appender-ref*)>
> +<!ATTLIST category
> +  class         CDATA   #IMPLIED
> +  name         CDATA   #REQUIRED
> +  additivity   (true|false) "true"
> +>
> +
> +<!-- If no level element is specified, then the configurator MUST not -->
> +<!-- touch the level of the named logger. -->
> +<!ELEMENT logger (level?,appender-ref*)>
> +<!ATTLIST logger
> +  name         CDATA   #REQUIRED
> +  additivity   (true|false) "true"
> +>
> +
> +
> +<!ELEMENT categoryFactory (param*)>
> +<!ATTLIST categoryFactory
> +   class        CDATA #REQUIRED>
> +
> +<!ELEMENT loggerFactory (param*)>
> +<!ATTLIST loggerFactory
> +   class        CDATA #REQUIRED>
> +
> +<!ELEMENT appender-ref EMPTY>
> +<!ATTLIST appender-ref
> +  ref CDATA #REQUIRED
> +>
> +
> +<!-- plugins must have a name and class and can have optional parameters
> -->
> +<!ELEMENT plugin (param*, connectionSource?)>
> +<!ATTLIST plugin
> +  name                 CDATA      #REQUIRED
> +  class        CDATA  #REQUIRED
> +>
> +
> +<!ELEMENT connectionSource (dataSource?, param*)>
> +<!ATTLIST connectionSource
> +  class        CDATA  #REQUIRED
> +>
> +
> +<!ELEMENT dataSource (param*)>
> +<!ATTLIST dataSource
> +  class        CDATA  #REQUIRED
> +>
> +
> +<!ELEMENT triggeringPolicy ((param|filter)*)>
> +<!ATTLIST triggeringPolicy
> +  name                 CDATA  #IMPLIED
> +  class        CDATA  #REQUIRED
> +>
> +
> +<!ELEMENT rollingPolicy (param*)>
> +<!ATTLIST rollingPolicy
> +  name                 CDATA  #IMPLIED
> +  class        CDATA  #REQUIRED
> +>
> +
> +
> +<!-- If no priority element is specified, then the configurator MUST not
> -->
> +<!-- touch the priority of root. -->
> +<!-- The root category always exists and cannot be subclassed. -->
> +<!ELEMENT root (param*, (priority|level)?, appender-ref*)>
> +
> +
> +<!-- ====================================================================
> -->
> +<!--                       A logging event
>  -->
> +<!-- ====================================================================
> -->
> +<!ELEMENT log4j:eventSet (log4j:event*)>
> +<!ATTLIST log4j:eventSet
> +  xmlns:log4j             CDATA #FIXED "http://jakarta.apache.org/log4j/"
> +  version                (1.1|1.2) "1.2"
> +  includesLocationInfo   (true|false) "true"
> +>
> +
> +
> +
> +<!ELEMENT log4j:event (log4j:message, log4j:NDC?, log4j:throwable?,
> +                       log4j:locationInfo?, log4j:properties?) >
> +
> +<!-- The timestamp format is application dependent. -->
> +<!ATTLIST log4j:event
> +    logger     CDATA #REQUIRED
> +    level      CDATA #REQUIRED
> +    thread     CDATA #REQUIRED
> +    timestamp  CDATA #REQUIRED
> +    time       CDATA #IMPLIED
> +>
> +
> +<!ELEMENT log4j:message (#PCDATA)>
> +<!ELEMENT log4j:NDC (#PCDATA)>
> +
> +<!ELEMENT log4j:throwable (#PCDATA)>
> +
> +<!ELEMENT log4j:locationInfo EMPTY>
> +<!ATTLIST log4j:locationInfo
> +  class  CDATA #REQUIRED
> +  method CDATA #REQUIRED
> +  file   CDATA #REQUIRED
> +  line   CDATA #REQUIRED
> +>
> +
> +<!ELEMENT log4j:properties (log4j:data*)>
> +
> +<!ELEMENT log4j:data EMPTY>
> +<!ATTLIST log4j:data
> +  name   CDATA #REQUIRED
> +  value  CDATA #REQUIRED
> +>
>
> Added:
> struts/sandbox/trunk/struts2examples/form_processing/src/main/resources/log4j.xml
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/form_processing/src/main/resources/log4j.xml?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/form_processing/src/main/resources/log4j.xml
> (added)
> +++
> struts/sandbox/trunk/struts2examples/form_processing/src/main/resources/log4j.xml
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,28 @@
> +<?xml version="1.0" encoding="UTF-8" ?>
> +<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN"
> "log4j.dtd">
> +
> +<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
> +
> +    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
> +       <layout class="org.apache.log4j.PatternLayout">
> +          <param name="ConversionPattern" value="%d %-5p %c.%M:%L -
> %m%n"/>
> +       </layout>
> +    </appender>
> +
> +    <!-- specify the logging level for loggers from other libraries -->
> +    <logger name="com.opensymphony">
> +       <level value="DEBUG" />
> +    </logger>
> +
> +    <logger name="org.apache.struts2">
> +        <level value="DEBUG" />
> +    </logger>
> +
> +   <!-- for all other loggers log only debug and above log messages -->
> +     <root>
> +        <priority value="INFO"/>
> +        <appender-ref ref="STDOUT" />
> +     </root>
> +
> +</log4j:configuration>
> +
>
> Added:
> struts/sandbox/trunk/struts2examples/form_processing/src/main/resources/struts.xml
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/form_processing/src/main/resources/struts.xml?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/form_processing/src/main/resources/struts.xml
> (added)
> +++
> struts/sandbox/trunk/struts2examples/form_processing/src/main/resources/struts.xml
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,31 @@
> +<?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>
> +
> +       <constant name="struts.devMode" value="true" />
> +
> +       <package name="basicstruts2" extends="struts-default">
> +
> +        <!-- If no class attribute is specified the framework will assume
> success and
> +        render the result index.jsp -->
> +        <!-- If no name value for the result node is specified the
> success value is the default -->
> +               <action name="index">
> +                       <result>/index.jsp</result>
> +               </action>
> +
> +               <!-- If the URL is hello.action the call the execute
> method of class HelloWorldAction.
> +               If the result returned by the execute method is success
> render the HelloWorld.jsp -->
> +               <action name="hello"
> class="org.apache.struts.helloworld.action.HelloWorldAction"
> method="execute">
> +                       <result name="success">/HelloWorld.jsp</result>
> +               </action>
> +
> +         <action name="register"
> class="org.apache.struts.register.action.Register" method="execute">
> +               <result name="success">/thankyou.jsp</result>
> +         </action>
> +
> +       </package>
> +
> +</struts>
> \ No newline at end of file
>
> Added:
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/HelloWorld.jsp
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/HelloWorld.jsp?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/HelloWorld.jsp
> (added)
> +++
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/HelloWorld.jsp
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,16 @@
> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
> +    pageEncoding="ISO-8859-1"%>
> +<%@ taglib prefix="s" uri="/struts-tags" %>
> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
> http://www.w3.org/TR/html4/loose.dtd">
> +<html>
> +<head>
> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
> +<title>Hello World!</title>
> +</head>
> +<body>
> +<h2><s:property value="messageStore.message" /></h2>
> +<p>I've said hello <s:property value="helloCount" /> times!</p>
> +<p><s:property value="messageStore" /></p>
> +<p><a href="<s:url action='index' />" >Return to home page</a>.</p>
> +</body>
> +</html>
> \ No newline at end of file
>
> Added:
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/META-INF/MANIFEST.MF
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/META-INF/MANIFEST.MF?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/META-INF/MANIFEST.MF
> (added)
> +++
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/META-INF/MANIFEST.MF
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,3 @@
> +Manifest-Version: 1.0
> +Class-Path:
> +
>
> Added:
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/WEB-INF/web.xml
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/WEB-INF/web.xml?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/WEB-INF/web.xml
> (added)
> +++
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/WEB-INF/web.xml
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,19 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<web-app id="WebApp_ID" version="2.4" xmlns="
> http://java.sun.com/xml/ns/j2ee" xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
> http://java.sun.com/xml/ns/j2ee
> http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
> +<display-name>Form_Processing_Struts2_Mvn</display-name>
> +  <welcome-file-list>
> +    <welcome-file>index.jsp</welcome-file>
> +  </welcome-file-list>
> +
> +
> +    <filter>
> +        <filter-name>struts2</filter-name>
> +
>  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
> +    </filter>
> +
> +     <filter-mapping>
> +        <filter-name>struts2</filter-name>
> +        <url-pattern>/*</url-pattern>
> +    </filter-mapping>
> +
> +</web-app>
>
> Added:
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/index.jsp
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/index.jsp?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/index.jsp
> (added)
> +++
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/index.jsp
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,30 @@
> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
> +    pageEncoding="ISO-8859-1"%>
> +<%@ taglib prefix="s" uri="/struts-tags" %>
> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
> http://www.w3.org/TR/html4/loose.dtd">
> +<html>
> +<head>
> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
> +<title>Basic Struts 2 Application - Welcome</title>
> +</head>
> +<body>
> +<h1>Welcome To Struts 2!</h1>
> +<p><a href="<s:url action='hello'/>">Hello World</a></p>
> +<s:url action="hello" var="helloLink">
> +  <s:param name="userName">Bruce Phillips</s:param>
> +</s:url>
> +<p><a href="${helloLink}">Hello Bruce Phillips</a></p>
> +
> +<p>Get your own personal hello by filling out and submitting this
> form.</p>
> +
> +<s:form action="hello">
> +
> +       <s:textfield name="userName" label="Your name" />
> +
> +       <s:submit value="Submit" />
> +
> +</s:form>
> +
> +<p><a href="register.jsp">Please register</a> for our prize drawing.</p>
> +</body>
> +</html>
> \ No newline at end of file
>
> Added:
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/register.jsp
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/register.jsp?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/register.jsp
> (added)
> +++
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/register.jsp
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,26 @@
> +<?xml version="1.0" encoding="ISO-8859-1" ?>
> +<%@ taglib prefix="s" uri="/struts-tags" %>
> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
> +    pageEncoding="ISO-8859-1"%>
> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
> http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> +<html xmlns="http://www.w3.org/1999/xhtml">
> +<head>
> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
> +<title>Register</title>
> +</head>
> +<body>
> +<h3>Register for a prize by completing this form.</h3>
> +
> +<s:form action="register">
> +
> +         <s:textfield name="personBean.firstName" label="First name" />
> +         <s:textfield  name="personBean.lastName" label="Last name" />
> +         <s:textfield name="personBean.email"  label ="Email"/>
> +         <s:textfield name="personBean.age"  label="Age"  />
> +
> +         <s:submit/>
> +
> +</s:form>
> +
> +</body>
> +</html>
> \ No newline at end of file
>
> Added:
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/thankyou.jsp
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/thankyou.jsp?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/thankyou.jsp
> (added)
> +++
> struts/sandbox/trunk/struts2examples/form_processing/src/main/webapp/thankyou.jsp
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,19 @@
> +<?xml version="1.0" encoding="ISO-8859-1" ?>
> +<%@ taglib prefix="s" uri="/struts-tags" %>
> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
> +    pageEncoding="ISO-8859-1"%>
> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
> http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> +<html xmlns="http://www.w3.org/1999/xhtml">
> +<head>
> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
> +<title>Registration Successful</title>
> +</head>
> +<body>
> +<h3>Thank you for registering for a prize.</h3>
> +
> +<p>Your registration information: <s:property value="personBean" /> </p>
> +
> +<p><a href="<s:url action='index' />" >Return to home page</a>.</p>
> +
> +</body>
> +</html>
> \ No newline at end of file
>
> Modified: struts/sandbox/trunk/struts2examples/helloworld/README.txt
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/helloworld/README.txt?rev=1498175&r1=1498174&r2=1498175&view=diff
>
> ==============================================================================
> --- struts/sandbox/trunk/struts2examples/helloworld/README.txt (original)
> +++ struts/sandbox/trunk/struts2examples/helloworld/README.txt Sun Jun 30
> 20:29:33 2013
> @@ -10,7 +10,7 @@ The war file is created in the target su
>  Copy the war file to your Servlet container (e.g. Tomcat) and
>  then startup the Servlet container.
>
> -In a web browser go to:
> http://localhost:8080/Hello_World_Struts2_Mvn/index.action.
> +In a web browser go to:  http://localhost:8080/hello_world/index.action.
>
>  You should see a web page with Welcome to Struts 2!
>
>
> Modified: struts/sandbox/trunk/struts2examples/helloworld/pom.xml
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/helloworld/pom.xml?rev=1498175&r1=1498174&r2=1498175&view=diff
>
> ==============================================================================
> --- struts/sandbox/trunk/struts2examples/helloworld/pom.xml (original)
> +++ struts/sandbox/trunk/struts2examples/helloworld/pom.xml Sun Jun 30
> 20:29:33 2013
> @@ -1,15 +1,19 @@
>  <?xml version="1.0"?>
> -<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="
> http://maven.apache.org/POM/4.0.0"
> -    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> -  <modelVersion>4.0.0</modelVersion>
> -  <parent>
> -    <groupId>struts.apache.org</groupId>
> -    <artifactId>struts2examples</artifactId>
> -    <version>1.0.0</version>
> -  </parent>
> -  <artifactId>helloworld</artifactId>
> -  <packaging>war</packaging>
> -  <name>Hello World Struts 2 Example Application</name>
> -  <description>Hello world example application for the
> +<project
> +       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/xsd/maven-4.0.0.xsd"
> +       xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance">
> +       <modelVersion>4.0.0</modelVersion>
> +       <parent>
> +               <groupId>struts.apache.org</groupId>
> +               <artifactId>struts2examples</artifactId>
> +               <version>1.0.0</version>
> +       </parent>
> +       <artifactId>helloworld</artifactId>
> +       <packaging>war</packaging>
> +       <name>Hello World Struts 2 Example Application</name>
> +       <description>Hello world example application for the
>    Struts 2 Getting Started tutorials</description>
> +       <build>
> +               <finalName>hello_world</finalName>
> +       </build>
>  </project>
>
> Modified:
> struts/sandbox/trunk/struts2examples/helloworld/src/main/webapp/WEB-INF/web.xml
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/helloworld/src/main/webapp/WEB-INF/web.xml?rev=1498175&r1=1498174&r2=1498175&view=diff
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/helloworld/src/main/webapp/WEB-INF/web.xml
> (original)
> +++
> struts/sandbox/trunk/struts2examples/helloworld/src/main/webapp/WEB-INF/web.xml
> Sun Jun 30 20:29:33 2013
> @@ -1,6 +1,6 @@
>  <?xml version="1.0" encoding="UTF-8"?>
>  <web-app id="WebApp_ID" version="2.4" xmlns="
> http://java.sun.com/xml/ns/j2ee" xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
> http://java.sun.com/xml/ns/j2ee
> http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
> -<display-name>Hello World Struts 2 Maven</display-name>
> +<display-name>Hello World Struts 2</display-name>
>    <welcome-file-list>
>      <welcome-file>index.jsp</welcome-file>
>    </welcome-file-list>
>
> Modified: struts/sandbox/trunk/struts2examples/pom.xml
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/pom.xml?rev=1498175&r1=1498174&r2=1498175&view=diff
>
> ==============================================================================
> --- struts/sandbox/trunk/struts2examples/pom.xml (original)
> +++ struts/sandbox/trunk/struts2examples/pom.xml Sun Jun 30 20:29:33 2013
> @@ -5,7 +5,7 @@
>    <artifactId>struts2examples</artifactId>
>    <version>1.0.0</version>
>    <packaging>pom</packaging>
> -  <name>struts2examples</name>
> +  <name>Struts 2 Examples</name>
>    <description>
>           This is the parent pom for the Struts 2 examples that
>           go with the Struts 2 Getting Started series of tutorials.
> @@ -32,6 +32,9 @@
>    <modules>
>      <module>basic_struts</module>
>      <module>helloworld</module>
> +    <module>using_tags</module>
> +    <module>coding_actions</module>
> +    <module>form_processing</module>
>    </modules>
>
>         <dependencies>
>
> Propchange: struts/sandbox/trunk/struts2examples/using_tags/
>
> ------------------------------------------------------------------------------
> --- svn:ignore (added)
> +++ svn:ignore Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,4 @@
> +target
> +.settings
> +.classpath
> +.project
>
> Added: struts/sandbox/trunk/struts2examples/using_tags/README.txt
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/using_tags/README.txt?rev=1498175&view=auto
>
> ==============================================================================
> --- struts/sandbox/trunk/struts2examples/using_tags/README.txt (added)
> +++ struts/sandbox/trunk/struts2examples/using_tags/README.txt Sun Jun 30
> 20:29:33 2013
> @@ -0,0 +1,16 @@
> +This is the example project referred to in the
> +Struts 2 documentation, Using Tags tutorial.
> +See:  http://struts.apache.org.
> +
> +To build the application's war file run mvn clean package
> +from the project's root folder.
> +
> +The war file is created in the target sub-folder.
> +
> +Copy the war file to your Servlet container (e.g. Tomcat, GlassFish) and
> +then startup the Servlet container.
> +
> +In a web browser go to:  http://localhost:8080/using_tags/index.action.
> +
> +You should see a web page with Welcome to Struts 2!
> +
>
> Added: struts/sandbox/trunk/struts2examples/using_tags/pom.xml
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/using_tags/pom.xml?rev=1498175&view=auto
>
> ==============================================================================
> --- struts/sandbox/trunk/struts2examples/using_tags/pom.xml (added)
> +++ struts/sandbox/trunk/struts2examples/using_tags/pom.xml Sun Jun 30
> 20:29:33 2013
> @@ -0,0 +1,21 @@
> +<?xml version="1.0"?>
> +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="
> http://maven.apache.org/POM/4.0.0"
> +    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> +  <modelVersion>4.0.0</modelVersion>
> +  <parent>
> +    <groupId>struts.apache.org</groupId>
> +    <artifactId>struts2examples</artifactId>
> +    <version>1.0.0</version>
> +  </parent>
> +  <artifactId>using_tags</artifactId>
> +  <name>using_tags</name>
> +  <description>Struts 2 example application for the
> +  Using Struts 2 Tags getting started tutorial</description>
> +
> +  <packaging>war</packaging>
> +
> +       <build>
> +               <finalName>using_tags</finalName>
> +       </build>
> +
> +</project>
>
> Added:
> struts/sandbox/trunk/struts2examples/using_tags/src/main/java/org/apache/struts/using_tags/helloworld/action/HelloWorldAction.java
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/using_tags/src/main/java/org/apache/struts/using_tags/helloworld/action/HelloWorldAction.java?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/using_tags/src/main/java/org/apache/struts/using_tags/helloworld/action/HelloWorldAction.java
> (added)
> +++
> struts/sandbox/trunk/struts2examples/using_tags/src/main/java/org/apache/struts/using_tags/helloworld/action/HelloWorldAction.java
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,64 @@
> +package org.apache.struts.using_tags.helloworld.action;
> +
> +
> +
> +import org.apache.struts.using_tags.helloworld.model.MessageStore;
> +
> +import com.opensymphony.xwork2.ActionSupport;
> +
> +/**
> + * Acts as a Struts 2 controller that responds
> + * to a user action by setting the value
> + * of the Message model class, and returns a String
> + * result.
> + * @author Bruce Phillips
> + *
> + */
> +public class HelloWorldAction extends ActionSupport {
> +
> +       private static final long serialVersionUID = 1L;
> +
> +       /**
> +        * The model class that stores the message
> +        * to display in the view.
> +        */
> +       private MessageStore messageStore;
> +
> +       private static int helloCount = 0;
> +
> +       public int getHelloCount() {
> +               return helloCount;
> +       }
> +
> +       public void setHelloCount(int helloCount) {
> +               HelloWorldAction.helloCount = helloCount;
> +       }
> +
> +       /*
> +        * Creates the MessageStore model object,
> +        * increase helloCount by 1 and
> +        * returns success.  The MessageStore model
> +        * object will be available to the view.
> +        * (non-Javadoc)
> +        * @see com.opensymphony.xwork2.ActionSupport#execute()
> +        */
> +       public String execute() throws Exception {
> +
> +               messageStore = new MessageStore() ;
> +
> +               helloCount++;
> +
> +               return SUCCESS;
> +       }
> +
> +       public MessageStore getMessageStore() {
> +               return messageStore;
> +       }
> +
> +       public void setMessageStore(MessageStore messageStore) {
> +               this.messageStore = messageStore;
> +       }
> +
> +
> +
> +}
>
> Added:
> struts/sandbox/trunk/struts2examples/using_tags/src/main/java/org/apache/struts/using_tags/helloworld/model/MessageStore.java
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/using_tags/src/main/java/org/apache/struts/using_tags/helloworld/model/MessageStore.java?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/using_tags/src/main/java/org/apache/struts/using_tags/helloworld/model/MessageStore.java
> (added)
> +++
> struts/sandbox/trunk/struts2examples/using_tags/src/main/java/org/apache/struts/using_tags/helloworld/model/MessageStore.java
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,31 @@
> +package org.apache.struts.using_tags.helloworld.model;
> +
> +/**
> + * Model class that stores a message.
> + * @author Bruce Phillips
> + *
> + */
> +public class MessageStore {
> +
> +       private String message;
> +
> +       public MessageStore() {
> +
> +               setMessage("Hello Struts User");
> +       }
> +
> +       public String getMessage() {
> +               return message;
> +       }
> +
> +       public void setMessage(String message) {
> +               this.message = message;
> +       }
> +
> +       public String toString() {
> +
> +               return message + " (from toString)";
> +
> +       }
> +
> +}
>
> Added:
> struts/sandbox/trunk/struts2examples/using_tags/src/main/resources/log4j.dtd
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/using_tags/src/main/resources/log4j.dtd?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/using_tags/src/main/resources/log4j.dtd
> (added)
> +++
> struts/sandbox/trunk/struts2examples/using_tags/src/main/resources/log4j.dtd
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,227 @@
> +<?xml version="1.0" encoding="UTF-8" ?>
> +<!--
> + Licensed to the Apache Software Foundation (ASF) under one or more
> + contributor license agreements.  See the NOTICE file distributed with
> + this work for additional information regarding copyright ownership.
> + The ASF licenses this file to You under the Apache License, Version 2.0
> + (the "License"); you may not use this file except in compliance with
> + the License.  You may obtain a copy of the License at
> +
> +      http://www.apache.org/licenses/LICENSE-2.0
> +
> + Unless required by applicable law or agreed to in writing, software
> + distributed under the License is distributed on an "AS IS" BASIS,
> + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> + See the License for the specific language governing permissions and
> + limitations under the License.
> +-->
> +
> +<!-- Authors: Chris Taylor, Ceki Gulcu. -->
> +
> +<!-- Version: 1.2 -->
> +
> +<!-- A configuration element consists of optional renderer
> +elements,appender elements, categories and an optional root
> +element. -->
> +
> +<!ELEMENT log4j:configuration (renderer*, appender*,plugin*,
> (category|logger)*,root?,
> +                               (categoryFactory|loggerFactory)?)>
> +
> +<!-- The "threshold" attribute takes a level value below which -->
> +<!-- all logging statements are disabled. -->
> +
> +<!-- Setting the "debug" enable the printing of internal log4j logging
> -->
> +<!-- statements.
> -->
> +
> +<!-- By default, debug attribute is "null", meaning that we not do touch
> -->
> +<!-- internal log4j logging settings. The "null" value for the threshold
> -->
> +<!-- attribute can be misleading. The threshold field of a repository
> -->
> +<!-- cannot be set to null. The "null" value for the threshold attribute
> -->
> +<!-- simply means don't touch the threshold field, the threshold field
> -->
> +<!-- keeps its old value.
>  -->
> +
> +<!ATTLIST log4j:configuration
> +  xmlns:log4j              CDATA #FIXED "http://jakarta.apache.org/log4j/
> "
> +  threshold
>  (all|trace|debug|info|warn|error|fatal|off|null) "null"
> +  debug                    (true|false|null)  "null"
> +  reset                    (true|false) "false"
> +>
> +
> +<!-- renderer elements allow the user to customize the conversion of  -->
> +<!-- message objects to String.                                       -->
> +
> +<!ELEMENT renderer EMPTY>
> +<!ATTLIST renderer
> +  renderedClass  CDATA #REQUIRED
> +  renderingClass CDATA #REQUIRED
> +>
> +
> +<!-- Appenders must have a name and a class. -->
> +<!-- Appenders may contain an error handler, a layout, optional
> parameters -->
> +<!-- and filters. They may also reference (or include) other appenders.
> -->
> +<!ELEMENT appender (errorHandler?, param*,
> +      rollingPolicy?, triggeringPolicy?, connectionSource?,
> +      layout?, filter*, appender-ref*)>
> +<!ATTLIST appender
> +  name                 CDATA   #REQUIRED
> +  class        CDATA   #REQUIRED
> +>
> +
> +<!ELEMENT layout (param*)>
> +<!ATTLIST layout
> +  class                CDATA   #REQUIRED
> +>
> +
> +<!ELEMENT filter (param*)>
> +<!ATTLIST filter
> +  class                CDATA   #REQUIRED
> +>
> +
> +<!-- ErrorHandlers can be of any class. They can admit any number of -->
> +<!-- parameters. -->
> +
> +<!ELEMENT errorHandler (param*, root-ref?, logger-ref*,  appender-ref?)>
> +<!ATTLIST errorHandler
> +   class        CDATA   #REQUIRED
> +>
> +
> +<!ELEMENT root-ref EMPTY>
> +
> +<!ELEMENT logger-ref EMPTY>
> +<!ATTLIST logger-ref
> +  ref CDATA #REQUIRED
> +>
> +
> +<!ELEMENT param EMPTY>
> +<!ATTLIST param
> +  name         CDATA   #REQUIRED
> +  value                CDATA   #REQUIRED
> +>
> +
> +
> +<!-- The priority class is org.apache.log4j.Level by default -->
> +<!ELEMENT priority (param*)>
> +<!ATTLIST priority
> +  class   CDATA        #IMPLIED
> +  value          CDATA #REQUIRED
> +>
> +
> +<!-- The level class is org.apache.log4j.Level by default -->
> +<!ELEMENT level (param*)>
> +<!ATTLIST level
> +  class   CDATA        #IMPLIED
> +  value          CDATA #REQUIRED
> +>
> +
> +
> +<!-- If no level element is specified, then the configurator MUST not -->
> +<!-- touch the level of the named category. -->
> +<!ELEMENT category (param*,(priority|level)?,appender-ref*)>
> +<!ATTLIST category
> +  class         CDATA   #IMPLIED
> +  name         CDATA   #REQUIRED
> +  additivity   (true|false) "true"
> +>
> +
> +<!-- If no level element is specified, then the configurator MUST not -->
> +<!-- touch the level of the named logger. -->
> +<!ELEMENT logger (level?,appender-ref*)>
> +<!ATTLIST logger
> +  name         CDATA   #REQUIRED
> +  additivity   (true|false) "true"
> +>
> +
> +
> +<!ELEMENT categoryFactory (param*)>
> +<!ATTLIST categoryFactory
> +   class        CDATA #REQUIRED>
> +
> +<!ELEMENT loggerFactory (param*)>
> +<!ATTLIST loggerFactory
> +   class        CDATA #REQUIRED>
> +
> +<!ELEMENT appender-ref EMPTY>
> +<!ATTLIST appender-ref
> +  ref CDATA #REQUIRED
> +>
> +
> +<!-- plugins must have a name and class and can have optional parameters
> -->
> +<!ELEMENT plugin (param*, connectionSource?)>
> +<!ATTLIST plugin
> +  name                 CDATA      #REQUIRED
> +  class        CDATA  #REQUIRED
> +>
> +
> +<!ELEMENT connectionSource (dataSource?, param*)>
> +<!ATTLIST connectionSource
> +  class        CDATA  #REQUIRED
> +>
> +
> +<!ELEMENT dataSource (param*)>
> +<!ATTLIST dataSource
> +  class        CDATA  #REQUIRED
> +>
> +
> +<!ELEMENT triggeringPolicy ((param|filter)*)>
> +<!ATTLIST triggeringPolicy
> +  name                 CDATA  #IMPLIED
> +  class        CDATA  #REQUIRED
> +>
> +
> +<!ELEMENT rollingPolicy (param*)>
> +<!ATTLIST rollingPolicy
> +  name                 CDATA  #IMPLIED
> +  class        CDATA  #REQUIRED
> +>
> +
> +
> +<!-- If no priority element is specified, then the configurator MUST not
> -->
> +<!-- touch the priority of root. -->
> +<!-- The root category always exists and cannot be subclassed. -->
> +<!ELEMENT root (param*, (priority|level)?, appender-ref*)>
> +
> +
> +<!-- ====================================================================
> -->
> +<!--                       A logging event
>  -->
> +<!-- ====================================================================
> -->
> +<!ELEMENT log4j:eventSet (log4j:event*)>
> +<!ATTLIST log4j:eventSet
> +  xmlns:log4j             CDATA #FIXED "http://jakarta.apache.org/log4j/"
> +  version                (1.1|1.2) "1.2"
> +  includesLocationInfo   (true|false) "true"
> +>
> +
> +
> +
> +<!ELEMENT log4j:event (log4j:message, log4j:NDC?, log4j:throwable?,
> +                       log4j:locationInfo?, log4j:properties?) >
> +
> +<!-- The timestamp format is application dependent. -->
> +<!ATTLIST log4j:event
> +    logger     CDATA #REQUIRED
> +    level      CDATA #REQUIRED
> +    thread     CDATA #REQUIRED
> +    timestamp  CDATA #REQUIRED
> +    time       CDATA #IMPLIED
> +>
> +
> +<!ELEMENT log4j:message (#PCDATA)>
> +<!ELEMENT log4j:NDC (#PCDATA)>
> +
> +<!ELEMENT log4j:throwable (#PCDATA)>
> +
> +<!ELEMENT log4j:locationInfo EMPTY>
> +<!ATTLIST log4j:locationInfo
> +  class  CDATA #REQUIRED
> +  method CDATA #REQUIRED
> +  file   CDATA #REQUIRED
> +  line   CDATA #REQUIRED
> +>
> +
> +<!ELEMENT log4j:properties (log4j:data*)>
> +
> +<!ELEMENT log4j:data EMPTY>
> +<!ATTLIST log4j:data
> +  name   CDATA #REQUIRED
> +  value  CDATA #REQUIRED
> +>
>
> Added:
> struts/sandbox/trunk/struts2examples/using_tags/src/main/resources/log4j.xml
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/using_tags/src/main/resources/log4j.xml?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/using_tags/src/main/resources/log4j.xml
> (added)
> +++
> struts/sandbox/trunk/struts2examples/using_tags/src/main/resources/log4j.xml
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,28 @@
> +<?xml version="1.0" encoding="UTF-8" ?>
> +<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN"
> "log4j.dtd">
> +
> +<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
> +
> +    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
> +       <layout class="org.apache.log4j.PatternLayout">
> +          <param name="ConversionPattern" value="%d %-5p %c.%M:%L -
> %m%n"/>
> +       </layout>
> +    </appender>
> +
> +    <!-- specify the logging level for loggers from other libraries -->
> +    <logger name="com.opensymphony">
> +       <level value="DEBUG" />
> +    </logger>
> +
> +    <logger name="org.apache.struts2">
> +        <level value="DEBUG" />
> +    </logger>
> +
> +   <!-- for all other loggers log only debug and above log messages -->
> +     <root>
> +        <priority value="INFO"/>
> +        <appender-ref ref="STDOUT" />
> +     </root>
> +
> +</log4j:configuration>
> +
>
> Added:
> struts/sandbox/trunk/struts2examples/using_tags/src/main/resources/struts.xml
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/using_tags/src/main/resources/struts.xml?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/using_tags/src/main/resources/struts.xml
> (added)
> +++
> struts/sandbox/trunk/struts2examples/using_tags/src/main/resources/struts.xml
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,27 @@
> +<?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>
> +
> +       <constant name="struts.devMode" value="true" />
> +
> +       <package name="basicstruts2" extends="struts-default">
> +
> +        <!-- If no class attribute is specified the framework will assume
> success and
> +        render the result index.jsp -->
> +        <!-- If no name value for the result node is specified the
> success value is the default -->
> +               <action name="index">
> +                       <result>/index.jsp</result>
> +               </action>
> +
> +               <!-- If the URL is hello.action the call the execute
> method of class HelloWorldAction.
> +               If the result returned by the execute method is success
> render the HelloWorld.jsp -->
> +               <action name="hello"
> class="org.apache.struts.using_tags.helloworld.action.HelloWorldAction"
> method="execute">
> +                       <result name="success">/HelloWorld.jsp</result>
> +               </action>
> +
> +       </package>
> +
> +</struts>
> \ No newline at end of file
>
> Added:
> struts/sandbox/trunk/struts2examples/using_tags/src/main/webapp/HelloWorld.jsp
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/using_tags/src/main/webapp/HelloWorld.jsp?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/using_tags/src/main/webapp/HelloWorld.jsp
> (added)
> +++
> struts/sandbox/trunk/struts2examples/using_tags/src/main/webapp/HelloWorld.jsp
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,15 @@
> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
> +    pageEncoding="ISO-8859-1"%>
> +<%@ taglib prefix="s" uri="/struts-tags" %>
> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
> http://www.w3.org/TR/html4/loose.dtd">
> +<html>
> +<head>
> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
> +<title>Hello World!</title>
> +</head>
> +<body>
> +<h2><s:property value="messageStore.message" /></h2>
> +<p>I've said hello <s:property value="helloCount" /> times!</p>
> +<p><s:property value="messageStore" /></p>
> +</body>
> +</html>
> \ No newline at end of file
>
> Added:
> struts/sandbox/trunk/struts2examples/using_tags/src/main/webapp/WEB-INF/web.xml
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/using_tags/src/main/webapp/WEB-INF/web.xml?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/using_tags/src/main/webapp/WEB-INF/web.xml
> (added)
> +++
> struts/sandbox/trunk/struts2examples/using_tags/src/main/webapp/WEB-INF/web.xml
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,19 @@
> +<?xml version="1.0" encoding="UTF-8"?>
> +<web-app id="WebApp_ID" version="2.4" xmlns="
> http://java.sun.com/xml/ns/j2ee" xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
> http://java.sun.com/xml/ns/j2ee
> http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
> +<display-name>Using_Tags_Struts2</display-name>
> +  <welcome-file-list>
> +    <welcome-file>index.jsp</welcome-file>
> +  </welcome-file-list>
> +
> +
> +    <filter>
> +        <filter-name>struts2</filter-name>
> +
>  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
> +    </filter>
> +
> +     <filter-mapping>
> +        <filter-name>struts2</filter-name>
> +        <url-pattern>/*</url-pattern>
> +    </filter-mapping>
> +
> +</web-app>
>
> Added:
> struts/sandbox/trunk/struts2examples/using_tags/src/main/webapp/index.jsp
> URL:
> http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/using_tags/src/main/webapp/index.jsp?rev=1498175&view=auto
>
> ==============================================================================
> ---
> struts/sandbox/trunk/struts2examples/using_tags/src/main/webapp/index.jsp
> (added)
> +++
> struts/sandbox/trunk/struts2examples/using_tags/src/main/webapp/index.jsp
> Sun Jun 30 20:29:33 2013
> @@ -0,0 +1,28 @@
> +<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
> +    pageEncoding="ISO-8859-1"%>
> +<%@ taglib prefix="s" uri="/struts-tags" %>
> +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
> http://www.w3.org/TR/html4/loose.dtd">
> +<html>
> +<head>
> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
> +<title>Basic Struts 2 Application - Welcome</title>
> +</head>
> +<body>
> +<h1>Welcome To Struts 2!</h1>
> +<p><a href="<s:url action='hello'/>">Hello World</a></p>
> +<s:url action="hello" var="helloLink">
> +  <s:param name="userName">Bruce Phillips</s:param>
> +</s:url>
> +<p><a href="${helloLink}">Hello Bruce Phillips</a></p>
> +
> +<p>Get your own personal hello by filling out and submitting this
> form.</p>
> +
> +<s:form action="hello">
> +
> +       <s:textfield name="userName" label="Your name" />
> +
> +       <s:submit value="Submit" />
> +
> +</s:form>
> +</body>
> +</html>
> \ No newline at end of file
>
>
>