You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2016/03/04 08:22:52 UTC
[1/2] struts-examples git commit: WW-4470 Adds simple demo how to use
unknown handler
Repository: struts-examples
Updated Branches:
refs/heads/master 544e0730a -> 8a9466c90
WW-4470 Adds simple demo how to use unknown handler
Project: http://git-wip-us.apache.org/repos/asf/struts-examples/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts-examples/commit/eed3bcda
Tree: http://git-wip-us.apache.org/repos/asf/struts-examples/tree/eed3bcda
Diff: http://git-wip-us.apache.org/repos/asf/struts-examples/diff/eed3bcda
Branch: refs/heads/master
Commit: eed3bcdaab000f1301d3476256e90c6729c8b59b
Parents: 544e073
Author: Lukasz Lenart <lu...@gmail.com>
Authored: Fri Mar 4 08:06:17 2016 +0100
Committer: Lukasz Lenart <lu...@gmail.com>
Committed: Fri Mar 4 08:06:17 2016 +0100
----------------------------------------------------------------------
pom.xml | 1 +
unknown-handler/pom.xml | 117 +++++++++++++++++++
.../org/apache/strutsexamples/actions/Home.java | 11 ++
.../apache/strutsexamples/actions/Index.java | 11 ++
.../apache/strutsexamples/actions/Login.java | 51 ++++++++
.../strutsexamples/actions/admin/Users.java | 11 ++
.../strutsexamples/web/TilesUnknownHandler.java | 83 +++++++++++++
unknown-handler/src/main/resources/log4j2.xml | 16 +++
unknown-handler/src/main/resources/struts.xml | 35 ++++++
.../src/main/webapp/WEB-INF/tiles.xml | 27 +++++
.../main/webapp/WEB-INF/tiles/admin/users.jsp | 7 ++
.../src/main/webapp/WEB-INF/tiles/home.jsp | 7 ++
.../src/main/webapp/WEB-INF/tiles/layout.jsp | 59 ++++++++++
.../src/main/webapp/WEB-INF/tiles/login.jsp | 10 ++
unknown-handler/src/main/webapp/WEB-INF/web.xml | 27 +++++
unknown-handler/src/main/webapp/index.html | 10 ++
16 files changed, 483 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts-examples/blob/eed3bcda/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 553a596..940d175 100644
--- a/pom.xml
+++ b/pom.xml
@@ -77,6 +77,7 @@
<module>message-store</module>
<module>type-conversion</module>
<module>wildcard-regex</module>
+ <module>unknown-handler</module>
</modules>
<dependencies>
http://git-wip-us.apache.org/repos/asf/struts-examples/blob/eed3bcda/unknown-handler/pom.xml
----------------------------------------------------------------------
diff --git a/unknown-handler/pom.xml b/unknown-handler/pom.xml
new file mode 100644
index 0000000..1bb65a3
--- /dev/null
+++ b/unknown-handler/pom.xml
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <artifactId>struts-examples</artifactId>
+ <groupId>org.apache.struts</groupId>
+ <version>1.0.0</version>
+ </parent>
+
+ <groupId>org.apache.org</groupId>
+ <artifactId>unknown-handler</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>war</packaging>
+ <name>Unknown handler</name>
+
+ <properties>
+ <struts2.version>2.3.24.1</struts2.version>
+ <log4j2.version>2.2</log4j2.version>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.struts</groupId>
+ <artifactId>struts2-core</artifactId>
+ <version>${struts2.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.struts</groupId>
+ <artifactId>struts2-convention-plugin</artifactId>
+ <version>${struts2.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.struts</groupId>
+ <artifactId>struts2-tiles-plugin</artifactId>
+ <version>${struts2.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.struts</groupId>
+ <artifactId>struts2-config-browser-plugin</artifactId>
+ <version>${struts2.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-api</artifactId>
+ <version>${log4j2.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-core</artifactId>
+ <version>${log4j2.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.5</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.4</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>jsp-api</artifactId>
+ <version>2.0</version>
+ <scope>provided</scope>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.3</version>
+ <configuration>
+ <encoding>UTF-8</encoding>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty-maven-plugin</artifactId>
+ <version>8.1.16.v20140903</version>
+ <configuration>
+ <stopKey>CTRL+C</stopKey>
+ <stopPort>8999</stopPort>
+ <systemProperties>
+ <systemProperty>
+ <name>xwork.loggerFactory</name>
+ <value>com.opensymphony.xwork2.util.logging.log4j2.Log4j2LoggerFactory</value>
+ </systemProperty>
+ </systemProperties>
+ <scanIntervalSeconds>10</scanIntervalSeconds>
+ <webAppSourceDirectory>${basedir}/src/main/webapp/</webAppSourceDirectory>
+ <webAppConfig>
+ <descriptor>${basedir}/src/main/webapp/WEB-INF/web.xml</descriptor>
+ </webAppConfig>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
http://git-wip-us.apache.org/repos/asf/struts-examples/blob/eed3bcda/unknown-handler/src/main/java/org/apache/strutsexamples/actions/Home.java
----------------------------------------------------------------------
diff --git a/unknown-handler/src/main/java/org/apache/strutsexamples/actions/Home.java b/unknown-handler/src/main/java/org/apache/strutsexamples/actions/Home.java
new file mode 100644
index 0000000..c9e654d
--- /dev/null
+++ b/unknown-handler/src/main/java/org/apache/strutsexamples/actions/Home.java
@@ -0,0 +1,11 @@
+package org.apache.strutsexamples.actions;
+
+import com.opensymphony.xwork2.ActionSupport;
+
+public class Home extends ActionSupport {
+
+ public String execute() throws Exception {
+ return SUCCESS;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/struts-examples/blob/eed3bcda/unknown-handler/src/main/java/org/apache/strutsexamples/actions/Index.java
----------------------------------------------------------------------
diff --git a/unknown-handler/src/main/java/org/apache/strutsexamples/actions/Index.java b/unknown-handler/src/main/java/org/apache/strutsexamples/actions/Index.java
new file mode 100644
index 0000000..114ad2e
--- /dev/null
+++ b/unknown-handler/src/main/java/org/apache/strutsexamples/actions/Index.java
@@ -0,0 +1,11 @@
+package org.apache.strutsexamples.actions;
+
+import com.opensymphony.xwork2.ActionSupport;
+
+public class Index extends ActionSupport {
+
+ public String execute() {
+ return "home";
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/struts-examples/blob/eed3bcda/unknown-handler/src/main/java/org/apache/strutsexamples/actions/Login.java
----------------------------------------------------------------------
diff --git a/unknown-handler/src/main/java/org/apache/strutsexamples/actions/Login.java b/unknown-handler/src/main/java/org/apache/strutsexamples/actions/Login.java
new file mode 100644
index 0000000..ec59735
--- /dev/null
+++ b/unknown-handler/src/main/java/org/apache/strutsexamples/actions/Login.java
@@ -0,0 +1,51 @@
+package org.apache.strutsexamples.actions;
+
+import com.opensymphony.xwork2.ActionSupport;
+import org.apache.struts2.convention.annotation.Action;
+import org.apache.struts2.interceptor.SessionAware;
+
+import java.util.Map;
+
+public class Login extends ActionSupport implements SessionAware {
+
+ private Map<String, Object> session;
+
+ private String email;
+ private String password;
+
+ public String execute() {
+ return SUCCESS;
+ }
+
+ @Action(value = "login-submit")
+ public String submit() {
+ if ("lukasz@demo.org".equals(email) && "secret".equals(password)) {
+ session.put("logged", Boolean.TRUE);
+ addActionMessage("Logged in!");
+ return "home";
+ } else {
+ addActionError("Cannot login!");
+ return "login";
+ }
+ }
+
+ public void setSession(Map<String, Object> session) {
+ this.session = session;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+}
http://git-wip-us.apache.org/repos/asf/struts-examples/blob/eed3bcda/unknown-handler/src/main/java/org/apache/strutsexamples/actions/admin/Users.java
----------------------------------------------------------------------
diff --git a/unknown-handler/src/main/java/org/apache/strutsexamples/actions/admin/Users.java b/unknown-handler/src/main/java/org/apache/strutsexamples/actions/admin/Users.java
new file mode 100644
index 0000000..8a923f2
--- /dev/null
+++ b/unknown-handler/src/main/java/org/apache/strutsexamples/actions/admin/Users.java
@@ -0,0 +1,11 @@
+package org.apache.strutsexamples.actions.admin;
+
+import com.opensymphony.xwork2.ActionSupport;
+
+public class Users extends ActionSupport {
+
+ public String execute() {
+ return "users";
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/struts-examples/blob/eed3bcda/unknown-handler/src/main/java/org/apache/strutsexamples/web/TilesUnknownHandler.java
----------------------------------------------------------------------
diff --git a/unknown-handler/src/main/java/org/apache/strutsexamples/web/TilesUnknownHandler.java b/unknown-handler/src/main/java/org/apache/strutsexamples/web/TilesUnknownHandler.java
new file mode 100644
index 0000000..9e1b2b8
--- /dev/null
+++ b/unknown-handler/src/main/java/org/apache/strutsexamples/web/TilesUnknownHandler.java
@@ -0,0 +1,83 @@
+package org.apache.strutsexamples.web;
+
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.Result;
+import com.opensymphony.xwork2.UnknownHandler;
+import com.opensymphony.xwork2.XWorkException;
+import com.opensymphony.xwork2.config.entities.ActionConfig;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.apache.struts2.ServletActionContext;
+import org.apache.struts2.views.tiles.TilesResult;
+import org.apache.tiles.TilesContainer;
+import org.apache.tiles.access.TilesAccess;
+
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.LinkedHashSet;
+import java.util.Objects;
+import java.util.Set;
+
+public class TilesUnknownHandler implements UnknownHandler {
+
+ private static Logger LOG = LogManager.getLogger(TilesUnknownHandler.class);
+
+ public ActionConfig handleUnknownAction(String namespace, String actionName) throws XWorkException {
+ return null;
+ }
+
+ public Result handleUnknownResult(ActionContext actionContext, String actionName, ActionConfig actionConfig, String resultCode) throws XWorkException {
+
+ ServletContext servletContext = ServletActionContext.getServletContext();
+ HttpServletRequest request = ServletActionContext.getRequest();
+ HttpServletResponse response = ServletActionContext.getResponse();
+
+ TilesContainer container = TilesAccess.getContainer(servletContext);
+
+ String namespace = ServletActionContext.getActionMapping().getNamespace();
+ Set<String> definitions = buildDefinitionNames(namespace, actionName, resultCode);
+
+ for (String definition : definitions) {
+ LOG.debug("Looking for tiles definition: {}", definition);
+
+ if (container.isValidDefinition(definition, request, response)) {
+ return new TilesResult(definition);
+ }
+ }
+
+ LOG.warn("Couldn't find tiles definition for namespace {}, action name {} and result code {}", namespace, actionName, resultCode);
+ return null;
+ }
+
+ protected Set<String> buildDefinitionNames(String namespace, String actionName, String resultCode) {
+ Set<String> definitions = new LinkedHashSet<String>();
+
+ if (namespace.startsWith("/")) {
+ namespace = namespace.substring(1);
+ }
+
+ if (!Objects.equals(namespace, "") && !Objects.equals(namespace, "/")){
+ if (namespace.endsWith("/")) {
+ definitions.add(namespace + actionName);
+ definitions.add(namespace + actionName + "-" + resultCode);
+ definitions.add(namespace + resultCode);
+ } else {
+ definitions.add(namespace + "/" + actionName);
+ definitions.add(namespace + "/" + actionName + "-" + resultCode);
+ definitions.add(namespace + "/" + resultCode);
+ }
+ }
+
+ definitions.add(actionName);
+ definitions.add(actionName + "-" + resultCode);
+
+ LOG.debug("Possible definition's names {}", definitions);
+
+ return definitions;
+ }
+
+ public Object handleUnknownActionMethod(Object action, String methodName) {
+ return null;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/struts-examples/blob/eed3bcda/unknown-handler/src/main/resources/log4j2.xml
----------------------------------------------------------------------
diff --git a/unknown-handler/src/main/resources/log4j2.xml b/unknown-handler/src/main/resources/log4j2.xml
new file mode 100644
index 0000000..043ce96
--- /dev/null
+++ b/unknown-handler/src/main/resources/log4j2.xml
@@ -0,0 +1,16 @@
+<?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="info"/>
+ <Logger name="org.apache.org" 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/eed3bcda/unknown-handler/src/main/resources/struts.xml
----------------------------------------------------------------------
diff --git a/unknown-handler/src/main/resources/struts.xml b/unknown-handler/src/main/resources/struts.xml
new file mode 100644
index 0000000..d03c7aa
--- /dev/null
+++ b/unknown-handler/src/main/resources/struts.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE struts PUBLIC
+ "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
+ "http://struts.apache.org/dtds/struts-2.3.dtd">
+<struts>
+ <constant name="struts.enable.DynamicMethodInvocation" value="false"/>
+ <constant name="struts.devMode" value="true"/>
+
+ <constant name="struts.convention.action.packages" value="org.apache.strutsexamples.web.actions"/>
+ <constant name="struts.convention.default.parent.package" value="default"/>
+
+ <bean type="com.opensymphony.xwork2.UnknownHandler" name="tiles-convention" class="org.apache.strutsexamples.web.TilesUnknownHandler"/>
+
+ <package name="default" namespace="/" extends="struts-default">
+
+ <result-types>
+ <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" default="true" />
+ </result-types>
+
+ <default-action-ref name="index"/>
+
+ <global-results>
+ <result name="home" type="redirectAction">
+ <param name="actionName">home</param>
+ <param name="namespace">/</param>
+ </result>
+ </global-results>
+
+ </package>
+
+ <unknown-handler-stack>
+ <unknown-handler-ref name="tiles-convention"/>
+ </unknown-handler-stack>
+
+</struts>
http://git-wip-us.apache.org/repos/asf/struts-examples/blob/eed3bcda/unknown-handler/src/main/webapp/WEB-INF/tiles.xml
----------------------------------------------------------------------
diff --git a/unknown-handler/src/main/webapp/WEB-INF/tiles.xml b/unknown-handler/src/main/webapp/WEB-INF/tiles.xml
new file mode 100644
index 0000000..35d3bd0
--- /dev/null
+++ b/unknown-handler/src/main/webapp/WEB-INF/tiles.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE tiles-definitions PUBLIC
+ "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
+ "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
+<tiles-definitions>
+
+ <definition name="baseLayout" template="/WEB-INF/tiles/layout.jsp">
+ <put-attribute name="title" value="Template"/>
+ <put-attribute name="body" value="/WEB-INF/tiles/body.jsp"/>
+ </definition>
+
+ <definition name="home" extends="baseLayout">
+ <put-attribute name="title" value="Home" />
+ <put-attribute name="body" value="/WEB-INF/tiles/home.jsp"/>
+ </definition>
+
+ <definition name="login" extends="baseLayout">
+ <put-attribute name="title" value="Login" />
+ <put-attribute name="body" value="/WEB-INF/tiles/login.jsp"/>
+ </definition>
+
+ <definition name="admin/users" extends="baseLayout">
+ <put-attribute name="title" value="Users"/>
+ <put-attribute name="body" value="/WEB-INF/tiles/admin/users.jsp"/>
+ </definition>
+
+</tiles-definitions>
http://git-wip-us.apache.org/repos/asf/struts-examples/blob/eed3bcda/unknown-handler/src/main/webapp/WEB-INF/tiles/admin/users.jsp
----------------------------------------------------------------------
diff --git a/unknown-handler/src/main/webapp/WEB-INF/tiles/admin/users.jsp b/unknown-handler/src/main/webapp/WEB-INF/tiles/admin/users.jsp
new file mode 100644
index 0000000..a45e74f
--- /dev/null
+++ b/unknown-handler/src/main/webapp/WEB-INF/tiles/admin/users.jsp
@@ -0,0 +1,7 @@
+<%@ page contentType="text/html; charset=UTF-8" %>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
+
+<div class="row">
+ Users
+</div>
http://git-wip-us.apache.org/repos/asf/struts-examples/blob/eed3bcda/unknown-handler/src/main/webapp/WEB-INF/tiles/home.jsp
----------------------------------------------------------------------
diff --git a/unknown-handler/src/main/webapp/WEB-INF/tiles/home.jsp b/unknown-handler/src/main/webapp/WEB-INF/tiles/home.jsp
new file mode 100644
index 0000000..65bc9b9
--- /dev/null
+++ b/unknown-handler/src/main/webapp/WEB-INF/tiles/home.jsp
@@ -0,0 +1,7 @@
+<%@ page contentType="text/html; charset=UTF-8" %>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
+
+<div class="row">
+ home
+</div>
http://git-wip-us.apache.org/repos/asf/struts-examples/blob/eed3bcda/unknown-handler/src/main/webapp/WEB-INF/tiles/layout.jsp
----------------------------------------------------------------------
diff --git a/unknown-handler/src/main/webapp/WEB-INF/tiles/layout.jsp b/unknown-handler/src/main/webapp/WEB-INF/tiles/layout.jsp
new file mode 100644
index 0000000..2569198
--- /dev/null
+++ b/unknown-handler/src/main/webapp/WEB-INF/tiles/layout.jsp
@@ -0,0 +1,59 @@
+<%@ taglib prefix="s" uri="/struts-tags" %>
+<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
+<%@ page contentType="text/html; charset=UTF-8" %>
+<!DOCTYPE html>
+
+<html>
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>
+ <tiles:insertAttribute name="title" ignore="true"/>
+ </title>
+ <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
+
+ <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+ <!--[if lt IE 9]>
+ <script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+</head>
+<body>
+<nav class="navbar navbar-inverse">
+ <div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar"
+ aria-expanded="false" aria-controls="navbar">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="/">Home</a>
+ </div>
+ <div id="navbar" class="collapse navbar-collapse">
+ <ul class="nav navbar-nav">
+ <li>
+ <s:url var="login" action="login" namespace="/"/>
+ <s:a href="%{login}">Login</s:a>
+ </li>
+ <li>
+ <s:url var="users" action="users" namespace="/admin"/>
+ <s:a href="%{users}">Users</s:a>
+ </li>
+ <li><a href="#contact">Contact</a></li>
+ </ul>
+ </div><!--/.nav-collapse -->
+ </div>
+</nav>
+
+<div class="container">
+ <div class="row">
+ <h2><tiles:insertAttribute name="title"/></h2>
+ </div>
+ <tiles:insertAttribute name="body"/>
+</div>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/struts-examples/blob/eed3bcda/unknown-handler/src/main/webapp/WEB-INF/tiles/login.jsp
----------------------------------------------------------------------
diff --git a/unknown-handler/src/main/webapp/WEB-INF/tiles/login.jsp b/unknown-handler/src/main/webapp/WEB-INF/tiles/login.jsp
new file mode 100644
index 0000000..ac1df08
--- /dev/null
+++ b/unknown-handler/src/main/webapp/WEB-INF/tiles/login.jsp
@@ -0,0 +1,10 @@
+<%@ page contentType="text/html; charset=UTF-8" %>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+
+<s:actionerror/>
+
+<s:form action="login-submit" method="POST" class="form-horizontal col-sm-4">
+ <s:textfield name="email" label="E-mail"/>
+ <s:password name="password" label="Password" />
+ <s:submit label="Login" class="btn btn-default col-sm-offset-3"/>
+</s:form>
http://git-wip-us.apache.org/repos/asf/struts-examples/blob/eed3bcda/unknown-handler/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/unknown-handler/src/main/webapp/WEB-INF/web.xml b/unknown-handler/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..bb76a73
--- /dev/null
+++ b/unknown-handler/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app id="struts_blank" 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>Struts Blank</display-name>
+
+ <listener>
+ <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
+ </listener>
+
+ <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>
+
+ <welcome-file-list>
+ <welcome-file>index.html</welcome-file>
+ </welcome-file-list>
+</web-app>
http://git-wip-us.apache.org/repos/asf/struts-examples/blob/eed3bcda/unknown-handler/src/main/webapp/index.html
----------------------------------------------------------------------
diff --git a/unknown-handler/src/main/webapp/index.html b/unknown-handler/src/main/webapp/index.html
new file mode 100644
index 0000000..abdee36
--- /dev/null
+++ b/unknown-handler/src/main/webapp/index.html
@@ -0,0 +1,10 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <META HTTP-EQUIV="Refresh" CONTENT="0;URL=index.action">
+</head>
+
+<body>
+<p>Loading ...</p>
+</body>
+</html>
[2/2] struts-examples git commit: Adjusts code to Struts 2.5
Posted by lu...@apache.org.
Adjusts code to Struts 2.5
Project: http://git-wip-us.apache.org/repos/asf/struts-examples/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts-examples/commit/8a9466c9
Tree: http://git-wip-us.apache.org/repos/asf/struts-examples/tree/8a9466c9
Diff: http://git-wip-us.apache.org/repos/asf/struts-examples/diff/8a9466c9
Branch: refs/heads/master
Commit: 8a9466c905dcd2e0a6522d766ed5d3de08b91b5b
Parents: eed3bcd
Author: Lukasz Lenart <lu...@gmail.com>
Authored: Fri Mar 4 08:22:41 2016 +0100
Committer: Lukasz Lenart <lu...@gmail.com>
Committed: Fri Mar 4 08:22:41 2016 +0100
----------------------------------------------------------------------
unknown-handler/pom.xml | 2 --
.../org/apache/strutsexamples/web/TilesUnknownHandler.java | 7 +++++--
2 files changed, 5 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts-examples/blob/8a9466c9/unknown-handler/pom.xml
----------------------------------------------------------------------
diff --git a/unknown-handler/pom.xml b/unknown-handler/pom.xml
index 1bb65a3..2bc9c4d 100644
--- a/unknown-handler/pom.xml
+++ b/unknown-handler/pom.xml
@@ -11,12 +11,10 @@
<groupId>org.apache.org</groupId>
<artifactId>unknown-handler</artifactId>
- <version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>Unknown handler</name>
<properties>
- <struts2.version>2.3.24.1</struts2.version>
<log4j2.version>2.2</log4j2.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
http://git-wip-us.apache.org/repos/asf/struts-examples/blob/8a9466c9/unknown-handler/src/main/java/org/apache/strutsexamples/web/TilesUnknownHandler.java
----------------------------------------------------------------------
diff --git a/unknown-handler/src/main/java/org/apache/strutsexamples/web/TilesUnknownHandler.java b/unknown-handler/src/main/java/org/apache/strutsexamples/web/TilesUnknownHandler.java
index 9e1b2b8..a8884b5 100644
--- a/unknown-handler/src/main/java/org/apache/strutsexamples/web/TilesUnknownHandler.java
+++ b/unknown-handler/src/main/java/org/apache/strutsexamples/web/TilesUnknownHandler.java
@@ -11,6 +11,8 @@ import org.apache.struts2.ServletActionContext;
import org.apache.struts2.views.tiles.TilesResult;
import org.apache.tiles.TilesContainer;
import org.apache.tiles.access.TilesAccess;
+import org.apache.tiles.request.servlet.ServletApplicationContext;
+import org.apache.tiles.request.servlet.ServletRequest;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
@@ -33,7 +35,8 @@ public class TilesUnknownHandler implements UnknownHandler {
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
- TilesContainer container = TilesAccess.getContainer(servletContext);
+ ServletApplicationContext context = new ServletApplicationContext(servletContext);
+ TilesContainer container = TilesAccess.getContainer(context);
String namespace = ServletActionContext.getActionMapping().getNamespace();
Set<String> definitions = buildDefinitionNames(namespace, actionName, resultCode);
@@ -41,7 +44,7 @@ public class TilesUnknownHandler implements UnknownHandler {
for (String definition : definitions) {
LOG.debug("Looking for tiles definition: {}", definition);
- if (container.isValidDefinition(definition, request, response)) {
+ if (container.isValidDefinition(definition, new ServletRequest(context, request, response))) {
return new TilesResult(definition);
}
}