You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by bp...@apache.org on 2013/06/30 22:29:35 UTC

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

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



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

Posted by Maurizio Cucchiara <mc...@apache.org>.
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
>
>
>