Repository: struts-examples Updated Branches: refs/heads/master 0cc2af802 -> 33bf8f26a
Refactor debugging struts example - log4j2 setup - artifact name - jetty plugin - add a:debug tag to pages Project: http://git-wip-us.apache.org/repos/asf/struts-examples/repo Commit: http://git-wip-us.apache.org/repos/asf/struts-examples/commit/33bf8f26 Tree: http://git-wip-us.apache.org/repos/asf/struts-examples/tree/33bf8f26 Diff: http://git-wip-us.apache.org/repos/asf/struts-examples/diff/33bf8f26 Branch: refs/heads/master Commit: 33bf8f26ae9c5270869078615b572a9786c89092 Parents: 0cc2af8 Author: Johannes Geppert <[email protected]> Authored: Fri Jun 12 21:36:45 2015 +0200 Committer: Johannes Geppert <[email protected]> Committed: Fri Jun 12 21:36:45 2015 +0200 ---------------------------------------------------------------------- debugging-struts/README.txt | 17 ++ debugging-struts/pom.xml | 47 ++++ .../helloworld/action/HelloWorldAction.java | 73 ++++++ .../struts/helloworld/model/MessageStore.java | 28 +++ .../apache/struts/register/action/Register.java | 50 ++++ .../exceptions/SecurityBreachException.java | 15 ++ .../apache/struts/register/model/Person.java | 61 +++++ debugging-struts/src/main/resources/log4j2.xml | 15 ++ debugging-struts/src/main/resources/struts.xml | 81 +++++++ debugging-struts/src/main/webapp/HelloWorld.jsp | 21 ++ .../src/main/webapp/META-INF/MANIFEST.MF | 3 + .../src/main/webapp/WEB-INF/web.xml | 19 ++ debugging-struts/src/main/webapp/error.jsp | 24 ++ debugging-struts/src/main/webapp/index.jsp | 50 ++++ debugging-struts/src/main/webapp/login.jsp | 19 ++ debugging-struts/src/main/webapp/register.jsp | 25 ++ .../src/main/webapp/securityerror.jsp | 20 ++ debugging-struts/src/main/webapp/thankyou.jsp | 21 ++ debugging_struts/README.txt | 17 -- debugging_struts/pom.xml | 29 --- .../helloworld/action/HelloWorldAction.java | 80 ------- .../struts/helloworld/model/MessageStore.java | 31 --- .../apache/struts/register/action/Register.java | 61 ----- .../exceptions/SecurityBreachException.java | 19 -- .../apache/struts/register/model/Person.java | 62 ----- debugging_struts/src/main/resources/log4j.dtd | 227 ------------------- debugging_struts/src/main/resources/log4j.xml | 28 --- debugging_struts/src/main/resources/struts.xml | 78 ------- debugging_struts/src/main/webapp/HelloWorld.jsp | 16 -- .../src/main/webapp/META-INF/MANIFEST.MF | 3 - .../src/main/webapp/WEB-INF/web.xml | 19 -- debugging_struts/src/main/webapp/error.jsp | 24 -- debugging_struts/src/main/webapp/index.jsp | 49 ---- debugging_struts/src/main/webapp/login.jsp | 17 -- debugging_struts/src/main/webapp/register.jsp | 26 --- .../src/main/webapp/securityerror.jsp | 24 -- debugging_struts/src/main/webapp/thankyou.jsp | 19 -- pom.xml | 2 +- 38 files changed, 590 insertions(+), 830 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging-struts/README.txt ---------------------------------------------------------------------- diff --git a/debugging-struts/README.txt b/debugging-struts/README.txt new file mode 100644 index 0000000..4dc76e8 --- /dev/null +++ b/debugging-struts/README.txt @@ -0,0 +1,17 @@ +This is the example project referred to in the +Struts 2 documentation, Debugging Struts 2 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/debugging-struts/index.action. + +You should see a web page with Welcome to Struts 2 and a link for the showing +the Struts 2 configuration. + http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging-struts/pom.xml ---------------------------------------------------------------------- diff --git a/debugging-struts/pom.xml b/debugging-struts/pom.xml new file mode 100644 index 0000000..3e027e8 --- /dev/null +++ b/debugging-struts/pom.xml @@ -0,0 +1,47 @@ +<?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>debugging-struts</artifactId> + + <name>Debugging Struts</name> + + <description>Exception handling example application for the Struts 2 getting started tutorials</description> + <packaging>war</packaging> + <dependencies> + <dependency> + <groupId>org.apache.struts</groupId> + <artifactId>struts2-config-browser-plugin</artifactId> + <version>${struts2.version}</version> + </dependency> + </dependencies> + + <build> + <finalName>debugging-struts</finalName> + <plugins> + <plugin> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty-maven-plugin</artifactId> + <version>8.1.16.v20140903</version> + <configuration> + <webApp> + <contextPath>/${artifactId}</contextPath> + </webApp> + <stopKey>CTRL+C</stopKey> + <stopPort>8999</stopPort> + <scanIntervalSeconds>10</scanIntervalSeconds> + <scanTargets> + <scanTarget>src/main/webapp/WEB-INF/web.xml</scanTarget> + </scanTargets> + </configuration> + </plugin> + </plugins> + </build> + +</project> http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging-struts/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java ---------------------------------------------------------------------- diff --git a/debugging-struts/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java b/debugging-struts/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java new file mode 100644 index 0000000..c92f278 --- /dev/null +++ b/debugging-struts/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java @@ -0,0 +1,73 @@ +package org.apache.struts.helloworld.action; + +import com.opensymphony.xwork2.ActionSupport; +import org.apache.struts.helloworld.model.MessageStore; + +/** + * 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; + } +} http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging-struts/src/main/java/org/apache/struts/helloworld/model/MessageStore.java ---------------------------------------------------------------------- diff --git a/debugging-struts/src/main/java/org/apache/struts/helloworld/model/MessageStore.java b/debugging-struts/src/main/java/org/apache/struts/helloworld/model/MessageStore.java new file mode 100644 index 0000000..9375d40 --- /dev/null +++ b/debugging-struts/src/main/java/org/apache/struts/helloworld/model/MessageStore.java @@ -0,0 +1,28 @@ +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)"; + } + +} http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging-struts/src/main/java/org/apache/struts/register/action/Register.java ---------------------------------------------------------------------- diff --git a/debugging-struts/src/main/java/org/apache/struts/register/action/Register.java b/debugging-struts/src/main/java/org/apache/struts/register/action/Register.java new file mode 100644 index 0000000..3bef136 --- /dev/null +++ b/debugging-struts/src/main/java/org/apache/struts/register/action/Register.java @@ -0,0 +1,50 @@ +package org.apache.struts.register.action; + +import com.opensymphony.xwork2.ActionSupport; +import org.apache.struts.register.exceptions.SecurityBreachException; +import org.apache.struts.register.model.Person; + + + +/** + * 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; + + @Override + public String execute() throws Exception { + + // call Service class to store personBean's state in database + + return SUCCESS; + } + + public void throwException() throws Exception { + throw new Exception("Exception thrown from throwException"); + } + + public void throwNullPointerException() throws NullPointerException { + throw new NullPointerException("Null Pointer Exception thrown from " + + Register.class.toString()); + } + + public void throwSecurityException() throws SecurityBreachException { + throw new SecurityBreachException( + "Security breach exception thrown from throwSecurityException"); + } + + public Person getPersonBean() { + return personBean; + } + + public void setPersonBean(Person person) { + personBean = person; + } +} http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging-struts/src/main/java/org/apache/struts/register/exceptions/SecurityBreachException.java ---------------------------------------------------------------------- diff --git a/debugging-struts/src/main/java/org/apache/struts/register/exceptions/SecurityBreachException.java b/debugging-struts/src/main/java/org/apache/struts/register/exceptions/SecurityBreachException.java new file mode 100644 index 0000000..f9631da --- /dev/null +++ b/debugging-struts/src/main/java/org/apache/struts/register/exceptions/SecurityBreachException.java @@ -0,0 +1,15 @@ +package org.apache.struts.register.exceptions; + +public class SecurityBreachException extends Exception { + + private static final long serialVersionUID = -1232121594261703341L; + + public SecurityBreachException() { + super("Security Exception"); + } + + public SecurityBreachException(String message) { + super(message); + } + +} http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging-struts/src/main/java/org/apache/struts/register/model/Person.java ---------------------------------------------------------------------- diff --git a/debugging-struts/src/main/java/org/apache/struts/register/model/Person.java b/debugging-struts/src/main/java/org/apache/struts/register/model/Person.java new file mode 100644 index 0000000..a91d45e --- /dev/null +++ b/debugging-struts/src/main/java/org/apache/struts/register/model/Person.java @@ -0,0 +1,61 @@ +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() ; + } +} http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging-struts/src/main/resources/log4j2.xml ---------------------------------------------------------------------- diff --git a/debugging-struts/src/main/resources/log4j2.xml b/debugging-struts/src/main/resources/log4j2.xml new file mode 100644 index 0000000..ba1d132 --- /dev/null +++ b/debugging-struts/src/main/resources/log4j2.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Configuration> + <Appenders> + <Console name="STDOUT" target="SYSTEM_OUT"> + <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> + </Console> + </Appenders> + <Loggers> + <Logger name="com.opensymphony.xwork2" level="info"/> + <Logger name="org.apache.struts2" level="debug"/> + <Root level="warn"> + <AppenderRef ref="STDOUT"/> + </Root> + </Loggers> +</Configuration> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging-struts/src/main/resources/struts.xml ---------------------------------------------------------------------- diff --git a/debugging-struts/src/main/resources/struts.xml b/debugging-struts/src/main/resources/struts.xml new file mode 100644 index 0000000..5066882 --- /dev/null +++ b/debugging-struts/src/main/resources/struts.xml @@ -0,0 +1,81 @@ +<?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"> + + <!-- setup the default-stack exception mapping interceptor + so that any exceptions not caught by this application + will be logged and then handled by the global exception + mapping --> + <interceptors> + <interceptor-stack name="appDefault"> + <interceptor-ref name="defaultStack"> + <param name="exception.logEnabled">true</param> + <param name="exception.logLevel">ERROR</param> + </interceptor-ref> + </interceptor-stack> + </interceptors> + + <default-interceptor-ref name="appDefault"/> + + <global-results> + <result name="error">/error.jsp</result> + <result name="securityerror">/securityerror.jsp</result> + </global-results> + + + <global-exception-mappings> + <exception-mapping exception="org.apache.struts.register.exceptions.SecurityBreachException" + result="securityerror"/> + <exception-mapping exception="java.lang.Exception" result="error"/> + </global-exception-mappings> + + + <action name="causesecurityexception" class="org.apache.struts.register.action.Register" + method="throwSecurityException"> + <result>/register.jsp</result> + </action> + + <action name="causeexception" class="org.apache.struts.register.action.Register" method="throwException"> + <result>/register.jsp</result> + </action> + + <action name="causenullpointerexception" class="org.apache.struts.register.action.Register" + method="throwNullPointerException"> + <result>/register.jsp</result> + </action> + + <action name="actionspecificexception" class="org.apache.struts.register.action.Register" + method="throwSecurityException"> + <exception-mapping exception="org.apache.struts.register.exceptions.SecurityBreachException" + result="login"/> + <result>/register.jsp</result> + <result name="login">/login.jsp</result> + </action> + + <!-- 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 http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging-struts/src/main/webapp/HelloWorld.jsp ---------------------------------------------------------------------- diff --git a/debugging-struts/src/main/webapp/HelloWorld.jsp b/debugging-struts/src/main/webapp/HelloWorld.jsp new file mode 100644 index 0000000..2bf9756 --- /dev/null +++ b/debugging-struts/src/main/webapp/HelloWorld.jsp @@ -0,0 +1,21 @@ +<%@ taglib prefix="s" uri="/struts-tags" %> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> +<html> +<head> + <meta charset="UTF-8"> + <title>Debugging Struts 2 - 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> + +<hr> + +<s:debug/> +</body> +</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging-struts/src/main/webapp/META-INF/MANIFEST.MF ---------------------------------------------------------------------- diff --git a/debugging-struts/src/main/webapp/META-INF/MANIFEST.MF b/debugging-struts/src/main/webapp/META-INF/MANIFEST.MF new file mode 100644 index 0000000..254272e --- /dev/null +++ b/debugging-struts/src/main/webapp/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging-struts/src/main/webapp/WEB-INF/web.xml ---------------------------------------------------------------------- diff --git a/debugging-struts/src/main/webapp/WEB-INF/web.xml b/debugging-struts/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..8dfa91c --- /dev/null +++ b/debugging-struts/src/main/webapp/WEB-INF/web.xml @@ -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>Debugging Struts</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> http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging-struts/src/main/webapp/error.jsp ---------------------------------------------------------------------- diff --git a/debugging-struts/src/main/webapp/error.jsp b/debugging-struts/src/main/webapp/error.jsp new file mode 100644 index 0000000..2c752af --- /dev/null +++ b/debugging-struts/src/main/webapp/error.jsp @@ -0,0 +1,24 @@ +<%@ taglib prefix="s" uri="/struts-tags" %> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> +<html> +<head> + <meta charset="UTF-8"> + <title>Debugging Struts 2 - Error</title> +</head> +<body> +<h4>The application has malfunctioned.</h4> + +<p> Please contact technical support with the following information:</p> + +<!-- the exception and exceptionStack bean properties +were created by Struts2's Exception Intercepter (see page 89) --> +<h4>Exception Name: <s:property value="exception"/></h4> +<h4>Exception Details: <s:property value="exceptionStack"/></h4> + + +<p><a href="index.jsp">Return to the home page.</a></p> + + +</body> + +</html> http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging-struts/src/main/webapp/index.jsp ---------------------------------------------------------------------- diff --git a/debugging-struts/src/main/webapp/index.jsp b/debugging-struts/src/main/webapp/index.jsp new file mode 100644 index 0000000..672857a --- /dev/null +++ b/debugging-struts/src/main/webapp/index.jsp @@ -0,0 +1,50 @@ +<!DOCTYPE html> +<%@ taglib prefix="s" uri="/struts-tags" %> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> +<html> +<head> + <meta charset="UTF-8"> + <title>Debugging Struts 2 - Welcome</title> + <s:head/> +</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> + +<p><a href='<s:url action="causeexception" />'>Cause Exception</a></p> + +<p><a href='<s:url action="causenullpointerexception" />'>Cause Null Pointer Exception</a></p> + +<p><a href='<s:url action="causesecurityexception" />'>Cause Global Security Exception</a></p> + +<p><a href='<s:url action="actionspecificexception" />'>Cause ActionSpecific Security Exception</a></p> + +<hr/> +<h3>Debugging</h3> + +<p><a href="<s:url action="index" namespace="config-browser" />">Launch the configuration browser</a></p> +<s:url action="index" var="indexLink"> + <s:param name="debug">browser</s:param> +</s:url> +<p><a href="${indexLink}">Reload this page with debugging</a></p> + +<s:debug/> +</body> +</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging-struts/src/main/webapp/login.jsp ---------------------------------------------------------------------- diff --git a/debugging-struts/src/main/webapp/login.jsp b/debugging-struts/src/main/webapp/login.jsp new file mode 100644 index 0000000..a098991 --- /dev/null +++ b/debugging-struts/src/main/webapp/login.jsp @@ -0,0 +1,19 @@ +<%@ taglib prefix="s" uri="/struts-tags" %> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> +<html> +<head> + <meta charset="UTF-8"> + <title>Debugging Struts 2 - Exception Handling - Login</title> +</head> +<body> +<h1>You Must Login</h1> + +<p>Please login</p> + +<p><a href="index.jsp">Return to the home page.</a></p> + +<hr> + +<s:debug/> +</body> +</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging-struts/src/main/webapp/register.jsp ---------------------------------------------------------------------- diff --git a/debugging-struts/src/main/webapp/register.jsp b/debugging-struts/src/main/webapp/register.jsp new file mode 100644 index 0000000..845a490 --- /dev/null +++ b/debugging-struts/src/main/webapp/register.jsp @@ -0,0 +1,25 @@ +<%@ taglib prefix="s" uri="/struts-tags" %> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> +<html> +<head> + <meta charset="UTF-8"> + <title>Debugging Struts 2 - 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> + +<hr> + +<s:debug/> +</body> +</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging-struts/src/main/webapp/securityerror.jsp ---------------------------------------------------------------------- diff --git a/debugging-struts/src/main/webapp/securityerror.jsp b/debugging-struts/src/main/webapp/securityerror.jsp new file mode 100644 index 0000000..822d67d --- /dev/null +++ b/debugging-struts/src/main/webapp/securityerror.jsp @@ -0,0 +1,20 @@ +<%@ taglib prefix="s" uri="/struts-tags" %> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> +<html> +<head> + <meta charset="UTF-8"> + <title>Debugging Struts 2 - Security Error</title> +</head> +<body> +<h4>There has been a security error.</h4> + +<p> Please contact technical support with the following information:</p> + +<!-- the exception and exceptionStack bean properties +were created by Struts2's Exception Intercepter (see page 89) --> +<h4>Exception Name: <s:property value="exception"/></h4> +<h4>Exception Details: <s:property value="exceptionStack"/></h4> + +<p><a href="index.jsp">Return to the home page.</a></p> +</body> +</html> http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging-struts/src/main/webapp/thankyou.jsp ---------------------------------------------------------------------- diff --git a/debugging-struts/src/main/webapp/thankyou.jsp b/debugging-struts/src/main/webapp/thankyou.jsp new file mode 100644 index 0000000..6bf8cd1 --- /dev/null +++ b/debugging-struts/src/main/webapp/thankyou.jsp @@ -0,0 +1,21 @@ +<%@ taglib prefix="s" uri="/struts-tags" %> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> +<html> +<head> + <meta charset="UTF-8"> + <title>Debugging Struts 2 - Registration Successful</title> +</head> + +<body> +<h3>Thank you for registering for a prize.</h3> + +<p>Your registration information:</p> +<pre><s:property value="personBean"/> </pre> + +<p><a href="<s:url action='index' />">Return to home page</a>.</p> + +<hr> + +<s:debug/> +</body> +</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging_struts/README.txt ---------------------------------------------------------------------- diff --git a/debugging_struts/README.txt b/debugging_struts/README.txt deleted file mode 100644 index 4371fe1..0000000 --- a/debugging_struts/README.txt +++ /dev/null @@ -1,17 +0,0 @@ -This is the example project referred to in the -Struts 2 documentation, Debugging Struts 2 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/debugging_struts/index.action. - -You should see a web page with Welcome to Struts 2 and a link for the showing -the Struts 2 configuration. - http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging_struts/pom.xml ---------------------------------------------------------------------- diff --git a/debugging_struts/pom.xml b/debugging_struts/pom.xml deleted file mode 100644 index f3ecfcb..0000000 --- a/debugging_struts/pom.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?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>debugging_struts</artifactId> - - <name>Debugging Struts</name> - - <description>Exception handling example application for the - Struts 2 getting started tutorials</description> - <packaging>war</packaging> - <dependencies> - <dependency> - <groupId>org.apache.struts</groupId> - <artifactId>struts2-config-browser-plugin</artifactId> - <version>${struts2.version}</version> - </dependency> - </dependencies> - <build> - <finalName>debugging_struts</finalName> - </build> - -</project> http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging_struts/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java ---------------------------------------------------------------------- diff --git a/debugging_struts/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java b/debugging_struts/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java deleted file mode 100644 index 92fda49..0000000 --- a/debugging_struts/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java +++ /dev/null @@ -1,80 +0,0 @@ -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; - } - - - -} http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging_struts/src/main/java/org/apache/struts/helloworld/model/MessageStore.java ---------------------------------------------------------------------- diff --git a/debugging_struts/src/main/java/org/apache/struts/helloworld/model/MessageStore.java b/debugging_struts/src/main/java/org/apache/struts/helloworld/model/MessageStore.java deleted file mode 100644 index b7fceeb..0000000 --- a/debugging_struts/src/main/java/org/apache/struts/helloworld/model/MessageStore.java +++ /dev/null @@ -1,31 +0,0 @@ -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)"; - - } - -} http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging_struts/src/main/java/org/apache/struts/register/action/Register.java ---------------------------------------------------------------------- diff --git a/debugging_struts/src/main/java/org/apache/struts/register/action/Register.java b/debugging_struts/src/main/java/org/apache/struts/register/action/Register.java deleted file mode 100644 index 698f0e2..0000000 --- a/debugging_struts/src/main/java/org/apache/struts/register/action/Register.java +++ /dev/null @@ -1,61 +0,0 @@ -package org.apache.struts.register.action; - -import org.apache.struts.register.exceptions.SecurityBreachException; -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; - - @Override - public String execute() throws Exception { - - // call Service class to store personBean's state in database - - return SUCCESS; - - } - - public void throwException() throws Exception { - - throw new Exception("Exception thrown from throwException"); - - } - - public void throwNullPointerException() throws NullPointerException { - - throw new NullPointerException("Null Pointer Exception thrown from " - + Register.class.toString()); - } - - public void throwSecurityException() throws SecurityBreachException { - - throw new SecurityBreachException( - "Security breach exception thrown from throwSecurityException"); - } - - public Person getPersonBean() { - - return personBean; - - } - - public void setPersonBean(Person person) { - - personBean = person; - - } - -} http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging_struts/src/main/java/org/apache/struts/register/exceptions/SecurityBreachException.java ---------------------------------------------------------------------- diff --git a/debugging_struts/src/main/java/org/apache/struts/register/exceptions/SecurityBreachException.java b/debugging_struts/src/main/java/org/apache/struts/register/exceptions/SecurityBreachException.java deleted file mode 100644 index a22152d..0000000 --- a/debugging_struts/src/main/java/org/apache/struts/register/exceptions/SecurityBreachException.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.apache.struts.register.exceptions; - -public class SecurityBreachException extends Exception { - - private static final long serialVersionUID = -1232121594261703341L; - - public SecurityBreachException() { - - super("Security Exception"); - - - } - - public SecurityBreachException(String message) { - - super(message); - } - -} http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging_struts/src/main/java/org/apache/struts/register/model/Person.java ---------------------------------------------------------------------- diff --git a/debugging_struts/src/main/java/org/apache/struts/register/model/Person.java b/debugging_struts/src/main/java/org/apache/struts/register/model/Person.java deleted file mode 100644 index 3020bbb..0000000 --- a/debugging_struts/src/main/java/org/apache/struts/register/model/Person.java +++ /dev/null @@ -1,62 +0,0 @@ -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() ; - } -} http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging_struts/src/main/resources/log4j.dtd ---------------------------------------------------------------------- diff --git a/debugging_struts/src/main/resources/log4j.dtd b/debugging_struts/src/main/resources/log4j.dtd deleted file mode 100644 index 1aabd96..0000000 --- a/debugging_struts/src/main/resources/log4j.dtd +++ /dev/null @@ -1,227 +0,0 @@ -<?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 -> http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging_struts/src/main/resources/log4j.xml ---------------------------------------------------------------------- diff --git a/debugging_struts/src/main/resources/log4j.xml b/debugging_struts/src/main/resources/log4j.xml deleted file mode 100644 index 2100cb2..0000000 --- a/debugging_struts/src/main/resources/log4j.xml +++ /dev/null @@ -1,28 +0,0 @@ -<?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> - http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging_struts/src/main/resources/struts.xml ---------------------------------------------------------------------- diff --git a/debugging_struts/src/main/resources/struts.xml b/debugging_struts/src/main/resources/struts.xml deleted file mode 100644 index c77b0de..0000000 --- a/debugging_struts/src/main/resources/struts.xml +++ /dev/null @@ -1,78 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE struts PUBLIC - "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" - "http://struts.apache.org/dtds/struts-2.0.dtd"> - -<struts> - - <constant name="struts.devMode" value="true" /> - - <package name="basicstruts2" extends="struts-default"> - - <!-- setup the default-stack exception mapping interceptor - so that any exceptions not caught by this application - will be logged and then handled by the global exception - mapping --> - <interceptors> - <interceptor-stack name="appDefault"> - <interceptor-ref name="defaultStack"> - <param name="exception.logEnabled">true</param> - <param name="exception.logLevel">ERROR</param> - </interceptor-ref> - </interceptor-stack> - </interceptors> - - <default-interceptor-ref name="appDefault" /> - - <global-results> - <result name="error">/error.jsp</result> - <result name="securityerror">/securityerror.jsp</result> - </global-results> - - - <global-exception-mappings> - <exception-mapping exception="org.apache.struts.register.exceptions.SecurityBreachException" result="securityerror" /> - <exception-mapping exception="java.lang.Exception" result="error" /> - </global-exception-mappings> - - - - <action name="causesecurityexception" class="org.apache.struts.register.action.Register" method="throwSecurityException"> - <result>/register.jsp</result> - </action> - - <action name="causeexception" class="org.apache.struts.register.action.Register" method="throwException"> - <result>/register.jsp</result> - </action> - - <action name="causenullpointerexception" class="org.apache.struts.register.action.Register" method="throwNullPointerException"> - <result>/register.jsp</result> - </action> - - <action name="actionspecificexception" class="org.apache.struts.register.action.Register" method="throwSecurityException"> - <exception-mapping exception="org.apache.struts.register.exceptions.SecurityBreachException" - result="login" /> - <result>/register.jsp</result> - <result name="login">/login.jsp</result> - </action> - - <!-- 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 http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging_struts/src/main/webapp/HelloWorld.jsp ---------------------------------------------------------------------- diff --git a/debugging_struts/src/main/webapp/HelloWorld.jsp b/debugging_struts/src/main/webapp/HelloWorld.jsp deleted file mode 100644 index 286a6ab..0000000 --- a/debugging_struts/src/main/webapp/HelloWorld.jsp +++ /dev/null @@ -1,16 +0,0 @@ -<%@ 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 http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging_struts/src/main/webapp/META-INF/MANIFEST.MF ---------------------------------------------------------------------- diff --git a/debugging_struts/src/main/webapp/META-INF/MANIFEST.MF b/debugging_struts/src/main/webapp/META-INF/MANIFEST.MF deleted file mode 100644 index 5e94951..0000000 --- a/debugging_struts/src/main/webapp/META-INF/MANIFEST.MF +++ /dev/null @@ -1,3 +0,0 @@ -Manifest-Version: 1.0 -Class-Path: - http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging_struts/src/main/webapp/WEB-INF/web.xml ---------------------------------------------------------------------- diff --git a/debugging_struts/src/main/webapp/WEB-INF/web.xml b/debugging_struts/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index 8dfa91c..0000000 --- a/debugging_struts/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,19 +0,0 @@ -<?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>Debugging Struts</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> http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging_struts/src/main/webapp/error.jsp ---------------------------------------------------------------------- diff --git a/debugging_struts/src/main/webapp/error.jsp b/debugging_struts/src/main/webapp/error.jsp deleted file mode 100644 index 088550f..0000000 --- a/debugging_struts/src/main/webapp/error.jsp +++ /dev/null @@ -1,24 +0,0 @@ -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<html> - - <head> - <title>Error</title> - </head> - - <body> - <h4>The application has malfunctioned.</h4> - <p> Please contact technical support with the following information:</p> - - <!-- the exception and exceptionStack bean properties - were created by Struts2's Exception Intercepter (see page 89) --> - <h4>Exception Name: <s:property value="exception" /> </h4> - <h4>Exception Details: <s:property value="exceptionStack" /></h4> - - - <p><a href="index.jsp">Return to the home page.</a></p> - - - </body> - -</html> http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging_struts/src/main/webapp/index.jsp ---------------------------------------------------------------------- diff --git a/debugging_struts/src/main/webapp/index.jsp b/debugging_struts/src/main/webapp/index.jsp deleted file mode 100644 index 75aafd9..0000000 --- a/debugging_struts/src/main/webapp/index.jsp +++ /dev/null @@ -1,49 +0,0 @@ -<%@ 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>Debugging Struts 2 - 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> - -<p><a href='<s:url action="causeexception" />' >Cause Exception</a></p> - -<p><a href='<s:url action="causenullpointerexception" />' >Cause Null Pointer Exception</a></p> - -<p><a href='<s:url action="causesecurityexception" />' >Cause Global Security Exception</a></p> - -<p><a href='<s:url action="actionspecificexception" />' >Cause ActionSpecific Security Exception</a></p> - -<hr /> -<h3>Debugging</h3> -<p><a href="<s:url action="index" namespace="config-browser" />">Launch the configuration browser</a></p> -<s:url action="index" var="indexLink"> - <s:param name="debug">browser</s:param> -</s:url> -<p><a href="${indexLink}">Reload this page with debugging</a></p> - - -</body> -</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging_struts/src/main/webapp/login.jsp ---------------------------------------------------------------------- diff --git a/debugging_struts/src/main/webapp/login.jsp b/debugging_struts/src/main/webapp/login.jsp deleted file mode 100644 index 1b59392..0000000 --- a/debugging_struts/src/main/webapp/login.jsp +++ /dev/null @@ -1,17 +0,0 @@ -<%@ 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>Exception Handling Struts 2 Application - Login</title> -</head> -<body> -<h1>You Must Login</h1> -<p>Please login</p> - -<p><a href="index.jsp">Return to the home page.</a></p> - -</body> -</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging_struts/src/main/webapp/register.jsp ---------------------------------------------------------------------- diff --git a/debugging_struts/src/main/webapp/register.jsp b/debugging_struts/src/main/webapp/register.jsp deleted file mode 100644 index 0adac76..0000000 --- a/debugging_struts/src/main/webapp/register.jsp +++ /dev/null @@ -1,26 +0,0 @@ -<?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 http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging_struts/src/main/webapp/securityerror.jsp ---------------------------------------------------------------------- diff --git a/debugging_struts/src/main/webapp/securityerror.jsp b/debugging_struts/src/main/webapp/securityerror.jsp deleted file mode 100644 index e5057e6..0000000 --- a/debugging_struts/src/main/webapp/securityerror.jsp +++ /dev/null @@ -1,24 +0,0 @@ -<%@ page contentType="text/html; charset=UTF-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<html> - - <head> - <title>Security Error</title> - </head> - - <body> - <h4>There has been a security error.</h4> - <p> Please contact technical support with the following information:</p> - - <!-- the exception and exceptionStack bean properties - were created by Struts2's Exception Intercepter (see page 89) --> - <h4>Exception Name: <s:property value="exception" /> </h4> - <h4>Exception Details: <s:property value="exceptionStack" /></h4> - - - <p><a href="index.jsp">Return to the home page.</a></p> - - - </body> - -</html> http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/debugging_struts/src/main/webapp/thankyou.jsp ---------------------------------------------------------------------- diff --git a/debugging_struts/src/main/webapp/thankyou.jsp b/debugging_struts/src/main/webapp/thankyou.jsp deleted file mode 100644 index 3c845bc..0000000 --- a/debugging_struts/src/main/webapp/thankyou.jsp +++ /dev/null @@ -1,19 +0,0 @@ -<?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 http://git-wip-us.apache.org/repos/asf/struts-examples/blob/33bf8f26/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index f3c75e3..2b99e14 100644 --- a/pom.xml +++ b/pom.xml @@ -50,7 +50,7 @@ <module>form_validation</module> <module>message_resource</module> <module>exception_handling</module> - <module>debugging_struts</module> + <module>debugging-struts</module> <module>form_tags</module> <module>form_xml_validation</module> <module>control-tags</module>
