- Details
- Written by Nam Ha Minh
- Last Updated on 31 July 2019   |   Print Email
Sometimes we need to retrieve values of parameters which are configured in
web.xmlfile from our Struts action class. For example, we define a parameter named
host in the
web.xml file as follows:
<context-param>
<param-name>host</param-name>
<param-value>192.168.123.233</param-value>
</context-param>
To read this parameter from within an action class, it requires doing the following things:
Let’s see a complete example.
Code of the web.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>Struts2WebParam</display-name>
<context-param>
<param-name>host</param-name>
<param-value>192.168.123.233</param-value>
</context-param>
<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>
Code of the Struts action class:
package net.codejava.struts;
import javax.servlet.ServletContext;
import org.apache.struts2.util.ServletContextAware;
import com.opensymphony.xwork2.ActionSupport;
public class MyAction extends ActionSupport implements ServletContextAware {
private String host;
private ServletContext servletContext;
public String execute() {
host = (String) servletContext.getInitParameter("host");
System.out.println("host = " + host);
return SUCCESS;
}
@Override
public void setServletContext(ServletContext context) {
this.servletContext = context;
}
public String getHost() {
return this.host;
}
}
Note that in this action class, we also declare a property named
host along with its getter method, so that it can be accessed in the result page.
Code of the result JSP page:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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>Result</title>
</head>
<body>
<center>
<h3>Host = ${host}</h3>
</center>
</body>
</html>
Code of the struts.xml file:
<?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>
<package name="Struts2WebParam" extends="struts-default">
<action name="test" class="net.codejava.struts.MyAction">
<result name="success">/Result.jsp</result>
</action>
</package>
</struts>
Output:
Here is the output when running the application at
http://localhost:8080/Struts2WebParam/test: Related Struts Tutorials:
Other Struts Tutorials:
About the Author:
Nam Ha Minh is certified Java programmer (SCJP and SCWCD). He started programming with Java in the time of Java 1.4 and has been falling in love with Java since then. Make friend with him on
Facebook and watch
his Java videos you YouTube.