ApplicationAware interface, we need to implement our Action class from ApplicationAware
interface when ever our Action class need to
get context behavior, means we can share our
data across all the files of the web application
by putting in a global object that’s context

When we implement
our Action class from ApplicationAware
interface then the controller doesn’t inject
exactly servlet context object, instead it will injects a map object and this will created once by the controller and the same object will be injected to
all files of the struts application.
Example
on struts 2 ApplicationAware
files we used…
- index.jsp
- error.jsp
- success.jsp
- LogingEx.java [ in java4s package ]
- web.xml [ in web-inf ]
- struts.xml [ in web-inf/classes folder ]
index.jsp
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<%@ taglib prefix="s"
uri="/struts-tags" %>
<html>
<body>
<s:form action="verify">
<s:textfield
name="uname" label="Enter Username" /><br>
<s:textfield
name="age" label="Enter Age" /><br>
<s:textfield
name="country" label="Enter Country" /><br>
<s:submit value="Click"
align="center" />
</s:form>
</body>
</html>
|
success.jsp
|
1
2
3
4
5
|
<%@ taglib prefix="s"
uri="/struts-tags" %>
Hello <s:property value="#application.a"
/>
Your age is: <s:property value="#application.b"
/>
country: <s:property value="#application.c"
/>
|
LogingEx.java
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
package java4s;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.interceptor.*;
import java.util.Map;
public class LogingEx extends ActionSupport
implements ApplicationAware{
private static
final long serialVersionUID = 1L;
private String
uname,country;
private int
age;
Map m;
public String
getUname() {
return
uname;
}
public void
setUname(String uname) {
this.uname
= uname;
}
public String
getCountry() {
return
country;
}
public void
setCountry(String country) {
this.country
= country;
}
public int
getAge() {
return
age;
}
public void
setAge(int age) {
this.age
= age;
}
public void
setApplication(Map m)
{
this.m=m;
}
public String
execute()
{
m.put("a",uname);
m.put("b",
age);
m.put("c",country);
return
SUCCESS;
}
}
|
web.xml
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<?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_2_5.xsd" id="WebApp_ID"
version="2.5">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
|
struts.xml
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?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>
<include file="struts-default.xml"/>
<package name="a"
extends="struts-default">
<action name="verify" class="java4s.LogingEx">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
|
No comments:
Post a Comment