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/10/28 18:32:20 UTC
svn commit: r1536436 - in
/struts/sandbox/trunk/struts2examples/bean_validation: ./ src/ src/main/
src/main/java/ src/main/java/org/ src/main/java/org/apache/
src/main/java/org/apache/struts/ src/main/java/org/apache/struts/edit/
src/main/java/org/apac...
Author: bphillips
Date: Mon Oct 28 17:32:19 2013
New Revision: 1536436
URL: http://svn.apache.org/r1536436
Log:
initial commit of JSR 303 Bean Validation example project
Added:
struts/sandbox/trunk/struts2examples/bean_validation/ (with props)
struts/sandbox/trunk/struts2examples/bean_validation/README.txt (with props)
struts/sandbox/trunk/struts2examples/bean_validation/pom.xml (with props)
struts/sandbox/trunk/struts2examples/bean_validation/src/
struts/sandbox/trunk/struts2examples/bean_validation/src/main/
struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/
struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/
struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/
struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/
struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/
struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/action/
struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/action/EditAction.java (with props)
struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/model/
struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/model/Person.java (with props)
struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/model/State.java (with props)
struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/service/
struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/service/EditService.java (with props)
struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/service/EditServiceInMemory.java (with props)
struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/
struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/log4j.dtd (with props)
struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/log4j.xml (with props)
struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/org/
struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/org/apache/
struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/org/apache/struts/
struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/org/apache/struts/edit/
struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/org/apache/struts/edit/action/
struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/org/apache/struts/edit/action/EditAction.properties (with props)
struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/struts.xml (with props)
struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/
struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/META-INF/
struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/META-INF/MANIFEST.MF (with props)
struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/WEB-INF/
struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/WEB-INF/web.xml (with props)
struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/edit.jsp (with props)
struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/index.jsp (with props)
struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/thankyou.jsp (with props)
struts/sandbox/trunk/struts2examples/bean_validation/src/test/
struts/sandbox/trunk/struts2examples/bean_validation/src/test/java/
Propchange: struts/sandbox/trunk/struts2examples/bean_validation/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Oct 28 17:32:19 2013
@@ -0,0 +1,4 @@
+target
+.settings
+.classpath
+.project
Added: struts/sandbox/trunk/struts2examples/bean_validation/README.txt
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/bean_validation/README.txt?rev=1536436&view=auto
==============================================================================
--- struts/sandbox/trunk/struts2examples/bean_validation/README.txt (added)
+++ struts/sandbox/trunk/struts2examples/bean_validation/README.txt Mon Oct 28 17:32:19 2013
@@ -0,0 +1,16 @@
+This is the example project referred to in the
+Struts 2 documentation, Bean Validation 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/bean_validation/index.action
+
+You should see a web page with Welcome to Struts 2!
+
Propchange: struts/sandbox/trunk/struts2examples/bean_validation/README.txt
------------------------------------------------------------------------------
svn:executable = *
Added: struts/sandbox/trunk/struts2examples/bean_validation/pom.xml
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/bean_validation/pom.xml?rev=1536436&view=auto
==============================================================================
--- struts/sandbox/trunk/struts2examples/bean_validation/pom.xml (added)
+++ struts/sandbox/trunk/struts2examples/bean_validation/pom.xml Mon Oct 28 17:32:19 2013
@@ -0,0 +1,37 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>struts.apache.org</groupId>
+ <artifactId>struts2examples</artifactId>
+ <version>1.0.0</version>
+ </parent>
+ <artifactId>bean_validation</artifactId>
+
+ <name>Bean Validation</name>
+ <description>bean (JSR 303) validation example application for the
+ Struts 2 getting started tutorials</description>
+
+ <packaging>war</packaging>
+
+ <build>
+ <finalName>bean_validation</finalName>
+ </build>
+ <dependencies>
+
+
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-validator</artifactId>
+ <version>4.3.1.Final</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.github.umeshawasthi</groupId>
+ <artifactId>struts2-jsr303-validation-plugin</artifactId>
+ <version>1.0</version>
+ </dependency>
+
+ </dependencies>
+
+</project>
Propchange: struts/sandbox/trunk/struts2examples/bean_validation/pom.xml
------------------------------------------------------------------------------
svn:executable = *
Added: struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/action/EditAction.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/action/EditAction.java?rev=1536436&view=auto
==============================================================================
--- struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/action/EditAction.java (added)
+++ struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/action/EditAction.java Mon Oct 28 17:32:19 2013
@@ -0,0 +1,99 @@
+package org.apache.struts.edit.action;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.validation.Valid;
+
+import org.apache.struts.edit.model.Person;
+import org.apache.struts.edit.model.State;
+import org.apache.struts.edit.service.EditService;
+import org.apache.struts.edit.service.EditServiceInMemory;
+
+import com.opensymphony.xwork2.ActionSupport;
+
+/**
+ * Acts as a controller to handle actions
+ * related to editing a Person.
+ * @author bruce phillips
+ *
+ */
+public class EditAction extends ActionSupport {
+
+ private static final long serialVersionUID = 1L;
+
+ private EditService editService = new EditServiceInMemory();
+
+ @Valid
+ private Person personBean;
+
+ private String [] sports = {"football", "baseball", "basketball" };
+
+ private String [] genders = {"male", "female", "not sure" };
+
+ private List<State> states ;
+
+ private String [] carModelsAvailable = {"Ford","Chrysler","Toyota","Nissan"};
+
+ public String execute() throws Exception {
+
+ editService.savePerson( getPersonBean() );
+
+ return SUCCESS;
+
+ }
+
+
+ public String input() throws Exception {
+
+ setPersonBean( editService.getPerson() );
+
+ return INPUT;
+ }
+
+ public Person getPersonBean() {
+
+
+ return personBean;
+
+ }
+
+ public void setPersonBean(Person person) {
+
+ personBean = person;
+
+ }
+
+
+ public List<String> getSports() {
+ return Arrays.asList(sports);
+ }
+
+ public List<String> getGenders() {
+
+ return Arrays.asList(genders);
+
+ }
+
+
+
+ public List<State> getStates() {
+
+ states = new ArrayList<State>();
+ states.add( new State("AZ", "Arizona") );
+ states.add( new State("CA", "California") );
+ states.add( new State("FL", "Florida") );
+ states.add( new State("KS", "Kansas") );
+ states.add( new State("NY", "New York") );
+
+ return states;
+ }
+
+
+
+ public String [] getCarModelsAvailable() {
+ return carModelsAvailable;
+ }
+
+}
Propchange: struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/action/EditAction.java
------------------------------------------------------------------------------
svn:executable = *
Added: struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/model/Person.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/model/Person.java?rev=1536436&view=auto
==============================================================================
--- struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/model/Person.java (added)
+++ struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/model/Person.java Mon Oct 28 17:32:19 2013
@@ -0,0 +1,139 @@
+package org.apache.struts.edit.model;
+
+import java.util.Arrays;
+
+import javax.validation.constraints.Pattern;
+import javax.validation.constraints.Size;
+
+import org.hibernate.validator.constraints.Email;
+import org.hibernate.validator.constraints.NotBlank;
+import org.hibernate.validator.constraints.NotEmpty;
+
+
+
+/**
+ * Models a Person who registers.
+ * @author bruce phillips
+ *
+ */
+public class Person
+{
+
+ @NotBlank(message="firstName.required")
+ private String firstName;
+
+ @NotBlank(message="lastName.required")
+ private String lastName;
+ private String sport;
+ private String gender;
+ private String residency;
+ private boolean over21;
+
+ @NotEmpty(message="carModels.required")
+ private String [] carModels;
+
+ @Size(min=1, message="email.required")
+ @Email(message="email.format")
+ private String email;
+
+ @Pattern(regexp="\\d{3}-\\d{3}-\\d{4}", message="phoneNumber.required")
+ private String phoneNumber;
+
+
+
+ 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 void setSport(String sport) {
+ this.sport = sport;
+ }
+
+ public void setGender(String gender) {
+ this.gender = gender;
+ }
+
+ public String getGender() {
+ return gender;
+ }
+
+ public String getSport() {
+ return sport;
+ }
+
+ public void setResidency(String residency) {
+ this.residency = residency;
+ }
+
+ public String getResidency() {
+ return residency;
+ }
+
+ public void setOver21(boolean over21) {
+ this.over21 = over21;
+ }
+
+ public boolean isOver21() {
+ return over21;
+ }
+
+ public void setCarModels(String [] carModels) {
+ this.carModels = carModels;
+ }
+
+ public String [] getCarModels() {
+ return carModels;
+ }
+
+ public String toString()
+ {
+ return "First Name: " + getFirstName() + " | " +
+ " Last Name: " + getLastName() + " | " +
+ " Favorite Sport: " + getSport() + " | " +
+ " Gender: " + getGender() + " | " +
+ " Residency: " + getResidency() + " | " +
+ " Over 21: " + isOver21() + " | " +
+ " Car models: " + Arrays.asList( getCarModels() ) + " | " +
+ " Email: " + getEmail() + " | " +
+ " Phone: " + getPhoneNumber();
+
+
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public void setPhoneNumber(String phoneNumber) {
+ this.phoneNumber = phoneNumber;
+ }
+
+ public String getPhoneNumber() {
+ return phoneNumber;
+ }
+
+
+}
Propchange: struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/model/Person.java
------------------------------------------------------------------------------
svn:executable = *
Added: struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/model/State.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/model/State.java?rev=1536436&view=auto
==============================================================================
--- struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/model/State.java (added)
+++ struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/model/State.java Mon Oct 28 17:32:19 2013
@@ -0,0 +1,39 @@
+package org.apache.struts.edit.model;
+
+public class State {
+
+ private String stateAbbr;
+
+ private String stateName;
+
+ public State (String stateAbbr, String stateName) {
+
+ this.stateAbbr = stateAbbr;
+ this.stateName = stateName;
+
+ }
+
+ public void setStateAbbr(String stateAbbr) {
+ this.stateAbbr = stateAbbr;
+ }
+
+ public String getStateAbbr() {
+ return stateAbbr;
+ }
+
+ public void setStateName(String stateName) {
+ this.stateName = stateName;
+ }
+
+ public String getStateName() {
+ return stateName;
+ }
+
+ public String toString() {
+
+ return getStateAbbr() ;
+
+ }
+
+
+}
Propchange: struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/model/State.java
------------------------------------------------------------------------------
svn:executable = *
Added: struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/service/EditService.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/service/EditService.java?rev=1536436&view=auto
==============================================================================
--- struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/service/EditService.java (added)
+++ struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/service/EditService.java Mon Oct 28 17:32:19 2013
@@ -0,0 +1,12 @@
+package org.apache.struts.edit.service;
+
+import org.apache.struts.edit.model.Person;
+
+public interface EditService {
+
+
+ Person getPerson() ;
+
+ void savePerson(Person personBean);
+
+}
Propchange: struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/service/EditService.java
------------------------------------------------------------------------------
svn:executable = *
Added: struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/service/EditServiceInMemory.java
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/service/EditServiceInMemory.java?rev=1536436&view=auto
==============================================================================
--- struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/service/EditServiceInMemory.java (added)
+++ struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/service/EditServiceInMemory.java Mon Oct 28 17:32:19 2013
@@ -0,0 +1,60 @@
+package org.apache.struts.edit.service;
+
+
+
+import org.apache.struts.edit.model.Person;
+
+/**
+ * Implement Services needed to edit and save
+ * a Person object's state. In this implementation
+ * the Person object's state is stored in memory
+ * @author brucephillips
+ *
+ */
+
+public class EditServiceInMemory implements EditService {
+
+
+ private static Person person ;
+ private static String [] carModels = {"Ford","Nissan"};
+
+
+ static {
+
+ person = new Person();
+ person.setFirstName("Bruce");
+ person.setLastName("Phillips");
+ person.setEmail("bphillips@ku.edu");
+ person.setSport("basketball");
+ person.setGender("not sure");
+ person.setResidency("KS");
+ person.setOver21(true);
+ person.setCarModels( carModels);
+ person.setPhoneNumber("123-456-9999");
+
+
+
+ }
+
+
+ public Person getPerson() {
+
+ return EditServiceInMemory.person;
+ }
+
+
+ public void savePerson(Person personBean) {
+
+ EditServiceInMemory.person.setFirstName(personBean.getFirstName() );
+ EditServiceInMemory.person.setLastName(personBean.getLastName() );
+ EditServiceInMemory.person.setSport(personBean.getSport() );
+ EditServiceInMemory.person.setGender( personBean.getGender() );
+ EditServiceInMemory.person.setResidency( personBean.getResidency() );
+ EditServiceInMemory.person.setOver21( personBean.isOver21() );
+ EditServiceInMemory.person.setCarModels(personBean.getCarModels() );
+ EditServiceInMemory.person.setEmail( personBean.getEmail() );
+ EditServiceInMemory.person.setPhoneNumber( personBean.getPhoneNumber() );
+
+ }
+
+}
Propchange: struts/sandbox/trunk/struts2examples/bean_validation/src/main/java/org/apache/struts/edit/service/EditServiceInMemory.java
------------------------------------------------------------------------------
svn:executable = *
Added: struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/log4j.dtd
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/log4j.dtd?rev=1536436&view=auto
==============================================================================
--- struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/log4j.dtd (added)
+++ struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/log4j.dtd Mon Oct 28 17:32:19 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
+>
Propchange: struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/log4j.dtd
------------------------------------------------------------------------------
svn:executable = *
Added: struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/log4j.xml
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/log4j.xml?rev=1536436&view=auto
==============================================================================
--- struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/log4j.xml (added)
+++ struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/log4j.xml Mon Oct 28 17:32:19 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>
+
Propchange: struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/log4j.xml
------------------------------------------------------------------------------
svn:executable = *
Added: struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/org/apache/struts/edit/action/EditAction.properties
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/org/apache/struts/edit/action/EditAction.properties?rev=1536436&view=auto
==============================================================================
--- struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/org/apache/struts/edit/action/EditAction.properties (added)
+++ struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/org/apache/struts/edit/action/EditAction.properties Mon Oct 28 17:32:19 2013
@@ -0,0 +1,16 @@
+personBean.firstName=First name
+personBean.lastName=Last name
+personBean.email=Email address
+personBean.phoneNumber=Phone number (999-999-9999)
+personBean.sport=Favorite sport
+personBean.gender=Gender
+personBean.residency=State resident
+personBean.over21=21 or older
+personBean.carModels=Car models owned
+submit=Save Changes
+firstName.required=You must enter the first name
+lastName.required=You must enter the last name
+email.required=You must enter an email address
+phoneNumber.required=You must enter a phone number in format 999-999-9999
+email.format=Email address not in a valid email format
+carModels.required=You must select at least one car model
Propchange: struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/org/apache/struts/edit/action/EditAction.properties
------------------------------------------------------------------------------
svn:executable = *
Added: struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/struts.xml
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/struts.xml?rev=1536436&view=auto
==============================================================================
--- struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/struts.xml (added)
+++ struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/struts.xml Mon Oct 28 17:32:19 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="default" extends="jsr303">
+ <default-interceptor-ref name="jsr303ValidationStack"/>
+
+ <!-- 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>
+
+ <action name="edit" class="org.apache.struts.edit.action.EditAction" method="input">
+ <result name="input">/edit.jsp</result>
+ </action>
+
+ <action name="save" class="org.apache.struts.edit.action.EditAction" method="execute">
+ <result name="input">/edit.jsp</result>
+ <result name="success">/thankyou.jsp</result>
+ </action>
+
+ </package>
+
+</struts>
\ No newline at end of file
Propchange: struts/sandbox/trunk/struts2examples/bean_validation/src/main/resources/struts.xml
------------------------------------------------------------------------------
svn:executable = *
Added: struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/META-INF/MANIFEST.MF?rev=1536436&view=auto
==============================================================================
--- struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/META-INF/MANIFEST.MF (added)
+++ struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/META-INF/MANIFEST.MF Mon Oct 28 17:32:19 2013
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path:
+
Propchange: struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/META-INF/MANIFEST.MF
------------------------------------------------------------------------------
svn:executable = *
Added: struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/WEB-INF/web.xml?rev=1536436&view=auto
==============================================================================
--- struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/WEB-INF/web.xml (added)
+++ struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/WEB-INF/web.xml Mon Oct 28 17:32:19 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>JSR303_Validation_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>
Propchange: struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/WEB-INF/web.xml
------------------------------------------------------------------------------
svn:executable = *
Added: struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/edit.jsp
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/edit.jsp?rev=1536436&view=auto
==============================================================================
--- struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/edit.jsp (added)
+++ struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/edit.jsp Mon Oct 28 17:32:19 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>
+<s:head />
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struts 2 Form Tags - Edit Person</title>
+</head>
+<body>
+<h1>Update Information</h1>
+
+<p>Use the form below to edit your information.</p>
+
+<s:form action="save" method="post">
+<s:textfield key="personBean.firstName" />
+<s:textfield key="personBean.lastName" />
+<s:textfield key="personBean.email" />
+<s:textfield key="personBean.phoneNumber" />
+<s:select key="personBean.sport" list="sports" />
+<s:radio key="personBean.gender" list="genders" />
+<s:select key="personBean.residency" list="states" listKey="stateAbbr" listValue="stateName" />
+<s:checkbox key="personBean.over21" />
+<s:checkboxlist key="personBean.carModels" list="carModelsAvailable" />
+<s:submit key="submit" />
+</s:form>
+
+</body>
+</html>
\ No newline at end of file
Propchange: struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/edit.jsp
------------------------------------------------------------------------------
svn:executable = *
Added: struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/index.jsp
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/index.jsp?rev=1536436&view=auto
==============================================================================
--- struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/index.jsp (added)
+++ struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/index.jsp Mon Oct 28 17:32:19 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>Struts 2 Form Tags - Welcome</title>
+</head>
+<body>
+<h1>Welcome To Struts 2!</h1>
+
+<p><a href='<s:url action="edit" />' >Edit your information</a></p>
+
+</body>
+</html>
\ No newline at end of file
Propchange: struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/index.jsp
------------------------------------------------------------------------------
svn:executable = *
Added: struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/thankyou.jsp
URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/thankyou.jsp?rev=1536436&view=auto
==============================================================================
--- struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/thankyou.jsp (added)
+++ struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/thankyou.jsp Mon Oct 28 17:32:19 2013
@@ -0,0 +1,21 @@
+<?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>Update Successful</title>
+</head>
+<body>
+
+<h1>Updated Information</h1>
+
+
+<p>Your 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
Propchange: struts/sandbox/trunk/struts2examples/bean_validation/src/main/webapp/thankyou.jsp
------------------------------------------------------------------------------
svn:executable = *