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 2018/06/05 08:29:05 UTC
[struts-examples] branch master updated: WW-4940 Adds an example
app how to customise validation messages
This is an automated email from the ASF dual-hosted git repository.
lukaszlenart pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/struts-examples.git
The following commit(s) were added to refs/heads/master by this push:
new 1c6ff24 WW-4940 Adds an example app how to customise validation messages
1c6ff24 is described below
commit 1c6ff24bb6d6e9c1aca4be48c1d59e85e47bea31
Author: Lukasz Lenart <lu...@apache.org>
AuthorDate: Tue Jun 5 10:28:50 2018 +0200
WW-4940 Adds an example app how to customise validation messages
---
pom.xml | 5 +-
validation-messages/pom.xml | 39 ++++++++++++++
.../struts/validation_messages/ExampleSupport.java | 6 +++
.../apache/struts/validation_messages/Login.java | 59 ++++++++++++++++++++++
validation-messages/src/main/resources/log4j2.xml | 16 ++++++
.../validation_messages/Login-validation.xml | 21 ++++++++
.../struts/validation_messages/package.properties | 4 ++
.../validation_messages/package_es.properties | 4 ++
validation-messages/src/main/resources/struts.xml | 34 +++++++++++++
.../src/main/webapp/WEB-INF/Login.jsp | 15 ++++++
.../src/main/webapp/WEB-INF/Menu.jsp | 3 ++
.../src/main/webapp/WEB-INF/Missing.jsp | 11 ++++
.../src/main/webapp/WEB-INF/web.xml | 23 +++++++++
validation-messages/src/main/webapp/index.html | 10 ++++
14 files changed, 248 insertions(+), 2 deletions(-)
diff --git a/pom.xml b/pom.xml
index bd9e91c..ce77ea2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -83,10 +83,11 @@
<module>type-conversion</module>
<module>unit-testing</module>
<module>using-tags</module>
+ <module>validation-messages</module>
<module>wildcard-method-selection</module>
<module>wildcard-regex</module>
<module>unknown-handler</module>
- </modules>
+ </modules>
<dependencies>
@@ -167,4 +168,4 @@
</repository>
</repositories>
-</project>
+</project>
\ No newline at end of file
diff --git a/validation-messages/pom.xml b/validation-messages/pom.xml
new file mode 100644
index 0000000..131dbb7
--- /dev/null
+++ b/validation-messages/pom.xml
@@ -0,0 +1,39 @@
+<?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>
+
+ <artifactId>validation-messages</artifactId>
+ <name>validation-messages</name>
+ <description>Struts 2 example application how to customise validation messages</description>
+
+ <packaging>war</packaging>
+
+ <build>
+ <finalName>validation-messages</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-maven-plugin</artifactId>
+ <version>${jetty-plugin.version}</version>
+ <configuration>
+ <webApp>
+ <contextPath>/${project.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>
diff --git a/validation-messages/src/main/java/org/apache/struts/validation_messages/ExampleSupport.java b/validation-messages/src/main/java/org/apache/struts/validation_messages/ExampleSupport.java
new file mode 100644
index 0000000..ed08c2d
--- /dev/null
+++ b/validation-messages/src/main/java/org/apache/struts/validation_messages/ExampleSupport.java
@@ -0,0 +1,6 @@
+package org.apache.struts.validation_messages;
+
+import com.opensymphony.xwork2.ActionSupport;
+
+public class ExampleSupport extends ActionSupport {
+}
diff --git a/validation-messages/src/main/java/org/apache/struts/validation_messages/Login.java b/validation-messages/src/main/java/org/apache/struts/validation_messages/Login.java
new file mode 100644
index 0000000..6fec733
--- /dev/null
+++ b/validation-messages/src/main/java/org/apache/struts/validation_messages/Login.java
@@ -0,0 +1,59 @@
+/*
+ * 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.
+ */
+
+package org.apache.struts.validation_messages;
+
+import com.opensymphony.xwork2.ActionSupport;
+
+public class Login extends ExampleSupport {
+
+ public String execute() {
+
+ if (isInvalid(getUsername())) return INPUT;
+
+ if (isInvalid(getPassword())) return INPUT;
+
+ return SUCCESS;
+ }
+
+ private boolean isInvalid(String value) {
+ return (value == null || value.length() == 0);
+ }
+
+ private String username;
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ private String password;
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+}
\ No newline at end of file
diff --git a/validation-messages/src/main/resources/log4j2.xml b/validation-messages/src/main/resources/log4j2.xml
new file mode 100644
index 0000000..9160e24
--- /dev/null
+++ b/validation-messages/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.struts" level="debug"/>
+ <Root level="warn">
+ <AppenderRef ref="STDOUT"/>
+ </Root>
+ </Loggers>
+</Configuration>
\ No newline at end of file
diff --git a/validation-messages/src/main/resources/org/apache/struts/validation_messages/Login-validation.xml b/validation-messages/src/main/resources/org/apache/struts/validation_messages/Login-validation.xml
new file mode 100644
index 0000000..b923d3d
--- /dev/null
+++ b/validation-messages/src/main/resources/org/apache/struts/validation_messages/Login-validation.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<!DOCTYPE validators PUBLIC
+ "-//Apache Struts//XWork Validator 1.0.3//EN"
+ "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
+<validators>
+ <field name="username">
+ <field-validator type="requiredstring">
+ <message key="requiredstring">
+ <param name="0">getText('username')</param>
+ </message>
+ </field-validator>
+ </field>
+
+ <field name="password">
+ <field-validator type="requiredstring">
+ <message key="requiredstring">
+ <param name="0">getText('password')</param>
+ </message>
+ </field-validator>
+ </field>
+</validators>
diff --git a/validation-messages/src/main/resources/org/apache/struts/validation_messages/package.properties b/validation-messages/src/main/resources/org/apache/struts/validation_messages/package.properties
new file mode 100644
index 0000000..2fb4f5a
--- /dev/null
+++ b/validation-messages/src/main/resources/org/apache/struts/validation_messages/package.properties
@@ -0,0 +1,4 @@
+requiredstring={0} is required.
+password= Password
+username=User Name
+Missing.message=This feature is under construction. Please try again in the next iteration.
diff --git a/validation-messages/src/main/resources/org/apache/struts/validation_messages/package_es.properties b/validation-messages/src/main/resources/org/apache/struts/validation_messages/package_es.properties
new file mode 100644
index 0000000..c0336dd
--- /dev/null
+++ b/validation-messages/src/main/resources/org/apache/struts/validation_messages/package_es.properties
@@ -0,0 +1,4 @@
+requiredstring={0} es requerido.
+password=Contrase\u00F1a
+username=Nombre de Usuario
+Missing.message=P\u00E1gina bajo construcci\u00F3n, trate de nuevo en la proxima versi\u00F3n.
diff --git a/validation-messages/src/main/resources/struts.xml b/validation-messages/src/main/resources/struts.xml
new file mode 100644
index 0000000..866fe83
--- /dev/null
+++ b/validation-messages/src/main/resources/struts.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE struts PUBLIC
+ "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+ "http://struts.apache.org/dtds/struts-2.5.dtd">
+<struts>
+ <constant name="struts.enable.DynamicMethodInvocation" value="false"/>
+ <constant name="struts.devMode" value="true"/>
+
+ <include file="example.xml"/>
+
+ <package name="default" namespace="/" extends="struts-default">
+
+ <default-action-ref name="index"/>
+ <default-class-ref class="org.apache.struts.validation_messages.ExampleSupport"/>
+
+ <action name="index">
+ <result type="redirectAction">
+ <param name="actionName">Login</param>
+ </result>
+ </action>
+
+ <action name="Login_*" method="{1}" class="org.apache.struts.validation_messages.Login">
+ <result name="input">/WEB-INF/Login.jsp</result>
+ <result type="redirectAction">Menu</result>
+ </action>
+
+ <action name="Menu">
+ <result>/WEB-INF/Menu.jsp</result>
+ </action>
+
+ </package>
+
+ <!-- Add addition packages and configuration here. -->
+</struts>
diff --git a/validation-messages/src/main/webapp/WEB-INF/Login.jsp b/validation-messages/src/main/webapp/WEB-INF/Login.jsp
new file mode 100644
index 0000000..6438080
--- /dev/null
+++ b/validation-messages/src/main/webapp/WEB-INF/Login.jsp
@@ -0,0 +1,15 @@
+<%@ page contentType="text/html; charset=UTF-8" %>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+<html>
+<head>
+ <title>Sign On</title>
+</head>
+
+<body>
+<s:form action="Login">
+ <s:textfield key="username"/>
+ <s:password key="password" />
+ <s:submit/>
+</s:form>
+</body>
+</html>
diff --git a/validation-messages/src/main/webapp/WEB-INF/Menu.jsp b/validation-messages/src/main/webapp/WEB-INF/Menu.jsp
new file mode 100644
index 0000000..a74bd2c
--- /dev/null
+++ b/validation-messages/src/main/webapp/WEB-INF/Menu.jsp
@@ -0,0 +1,3 @@
+<%@ page contentType="text/html; charset=UTF-8" %>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+<s:include value="Missing.jsp"/>
\ No newline at end of file
diff --git a/validation-messages/src/main/webapp/WEB-INF/Missing.jsp b/validation-messages/src/main/webapp/WEB-INF/Missing.jsp
new file mode 100644
index 0000000..7c01ac9
--- /dev/null
+++ b/validation-messages/src/main/webapp/WEB-INF/Missing.jsp
@@ -0,0 +1,11 @@
+<%@ page contentType="text/html; charset=UTF-8" %>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+<html>
+<head><title>Missing Feature</title></head>
+
+<body>
+<p>
+ <s:text name="Missing.message"/>
+</p>
+</body>
+</html>
diff --git a/validation-messages/src/main/webapp/WEB-INF/web.xml b/validation-messages/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..8858656
--- /dev/null
+++ b/validation-messages/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,23 @@
+<?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>
+
+ <filter>
+ <filter-name>struts2</filter-name>
+ <filter-class>
+ org.apache.struts2.dispatcher.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>
diff --git a/validation-messages/src/main/webapp/index.html b/validation-messages/src/main/webapp/index.html
new file mode 100644
index 0000000..37c44cf
--- /dev/null
+++ b/validation-messages/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=Login.action">
+</head>
+
+<body>
+<p>Loading ...</p>
+</body>
+</html>
--
To stop receiving notification emails like this one, please contact
lukaszlenart@apache.org.