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 d72a704 Adds simple example with dynamic href d72a704 is described below commit d72a704596885edf68dc896ac03824873bf1e1f1 Author: Lukasz Lenart <lukaszlen...@apache.org> AuthorDate: Tue Dec 21 20:28:16 2021 +0100 Adds simple example with dynamic href --- dynamic-href/pom.xml | 57 +++++++++++++++++++++ .../org/apache/struts_example/IndexAction.java | 33 ++++++++++++ dynamic-href/src/main/resources/log4j2.xml | 16 ++++++ dynamic-href/src/main/resources/struts.xml | 21 ++++++++ dynamic-href/src/main/webapp/WEB-INF/index.jsp | 20 ++++++++ dynamic-href/src/main/webapp/WEB-INF/web.xml | 23 +++++++++ .../src/main/webapp/images/icon_waste_sml.png | Bin 0 -> 6813 bytes dynamic-href/src/main/webapp/index.html | 10 ++++ pom.xml | 1 + type-conversion/src/main/resources/example.xml | 4 +- 10 files changed, 183 insertions(+), 2 deletions(-) diff --git a/dynamic-href/pom.xml b/dynamic-href/pom.xml new file mode 100644 index 0000000..4b05020 --- /dev/null +++ b/dynamic-href/pom.xml @@ -0,0 +1,57 @@ +<?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.1.0</version> + </parent> + + <artifactId>dynamic-href</artifactId> + <name>Dynamic Url</name> + + <packaging>war</packaging> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <jetty-plugin.version>9.4.35.v20201120</jetty-plugin.version> + </properties> + + <dependencies> + + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + <version>2.5</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> + <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> + </configuration> + </plugin> + </plugins> + </build> +</project> diff --git a/dynamic-href/src/main/java/org/apache/struts_example/IndexAction.java b/dynamic-href/src/main/java/org/apache/struts_example/IndexAction.java new file mode 100644 index 0000000..1997d7d --- /dev/null +++ b/dynamic-href/src/main/java/org/apache/struts_example/IndexAction.java @@ -0,0 +1,33 @@ +package org.apache.struts_example; + +import com.opensymphony.xwork2.Action; +import com.opensymphony.xwork2.ActionSupport; + +import java.util.UUID; + +public class IndexAction extends ActionSupport { + + private String entityId; + private String processId; + private String deleteItem; + + @Override + public String execute() throws Exception { + entityId = UUID.randomUUID().toString(); + processId = Thread.currentThread().getName(); + deleteItem = String.format("Entity %s", entityId); + return Action.SUCCESS; + } + + public String getEntityId() { + return entityId; + } + + public String getProcessId() { + return processId; + } + + public String getDeleteItem() { + return deleteItem; + } +} diff --git a/dynamic-href/src/main/resources/log4j2.xml b/dynamic-href/src/main/resources/log4j2.xml new file mode 100644 index 0000000..3b0e7d8 --- /dev/null +++ b/dynamic-href/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="[%highlight{%p}] %d [%t] %C{2} (%F:%L) - %m%n"/> + </Console> + </Appenders> + <Loggers> + <Logger name="com.opensymphony.xwork2" level="debug"/> + <Logger name="org.apache.struts2" level="debug"/> + <Logger name="org.apache.struts.example" level="debug"/> + <Root level="warn"> + <AppenderRef ref="STDOUT"/> + </Root> + </Loggers> +</Configuration> diff --git a/dynamic-href/src/main/resources/struts.xml b/dynamic-href/src/main/resources/struts.xml new file mode 100644 index 0000000..4ff989c --- /dev/null +++ b/dynamic-href/src/main/resources/struts.xml @@ -0,0 +1,21 @@ +<?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"/> + <constant name="struts.i18n.reload" value="true"/> + + <package name="default" extends="struts-default"> + + <default-action-ref name="index"/> + + <action name="index" class="org.apache.struts_example.IndexAction"> + <result>/WEB-INF/index.jsp</result> + </action> + + </package> + + <!-- Add addition packages and configuration here. --> +</struts> diff --git a/dynamic-href/src/main/webapp/WEB-INF/index.jsp b/dynamic-href/src/main/webapp/WEB-INF/index.jsp new file mode 100644 index 0000000..ee46b1a --- /dev/null +++ b/dynamic-href/src/main/webapp/WEB-INF/index.jsp @@ -0,0 +1,20 @@ +<%@ page contentType="text/html; charset=UTF-8" %> +<%@ taglib prefix="s" uri="/struts-tags" %> +<!DOCTYPE html> +<html lang="en"> +<head> + <title>Dynamic url</title> +</head> + +<body> + +<s:url var="delUrl" action="delete"> + <s:param name="id" value="#entityId" /> +</s:url> + +<s:a id="id_%{#attr.processId}" href="%{#attr.delUrl}" escapeHtmlBody="false"> + <img src='<s:url value="/images/icon_waste_sml.png"/>' alt="X" title="<s:property value='#attr.deleteItem' />" /> +</s:a> + +</body> +</html> diff --git a/dynamic-href/src/main/webapp/WEB-INF/web.xml b/dynamic-href/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..5923ee0 --- /dev/null +++ b/dynamic-href/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<web-app id="struts_dynamic_url" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> + + <display-name>Dynamic Url</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/dynamic-href/src/main/webapp/images/icon_waste_sml.png b/dynamic-href/src/main/webapp/images/icon_waste_sml.png new file mode 100644 index 0000000..113a71c Binary files /dev/null and b/dynamic-href/src/main/webapp/images/icon_waste_sml.png differ diff --git a/dynamic-href/src/main/webapp/index.html b/dynamic-href/src/main/webapp/index.html new file mode 100644 index 0000000..abdee36 --- /dev/null +++ b/dynamic-href/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> diff --git a/pom.xml b/pom.xml index 058de4d..f9615c8 100644 --- a/pom.xml +++ b/pom.xml @@ -79,6 +79,7 @@ <module>control-tags</module> <module>crud</module> <module>debugging-struts</module> + <module>dynamic-href</module> <module>exception-handling</module> <module>exclude-parameters</module> <module>file-upload</module> diff --git a/type-conversion/src/main/resources/example.xml b/type-conversion/src/main/resources/example.xml index b12b0a3..ab9c453 100644 --- a/type-conversion/src/main/resources/example.xml +++ b/type-conversion/src/main/resources/example.xml @@ -2,7 +2,7 @@ <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"> -<!-- +<!-- - This file is included by the struts.xml file as an example - of how to break up the configuration file into multiple files. --> @@ -15,7 +15,7 @@ <result>/WEB-INF/example/Theme.jsp</result> </action> - <action name="Number" class="org.apache.struts.example.NumberAction"> + <action name="Number" class="org.apache.struts.example.IndexAction"> <result name="input">/WEB-INF/example/Number.jsp</result> </action>