要注意,在Java类中,Map变量用的是m而到了jsp页面,都是用的session.
For each Action class or a jsp visited by the same client, the controller injects the same map object, the controller creates a new map object for each client, it means one map object per session ( browser )
index.jsp
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<body>
<s:form action="verify">
<s:textfield name="stuname" label="Enter Username" />
<br>
<s:textfield name="stuage" label="Enter Age" />
<br>
<s:textfield name="stumarks" label="Enter Marks" />
<br>
<s:textfield name="country" label="Enter Country" />
<br>
<s:submit value="Click" align="center" />
</s:form>
</body>
</html>
success.jsp
<%@ taglib prefix="s" uri="/struts-tags"%>
<s:form action="next">
Name:<s:property value="#session.a" />
<br>
Age:<s:property value="#session.b" />
<s:submit value="next" />
</s:form>
success1.jsp
<%@ taglib prefix="s" uri="/struts-tags"%>
Marks:
<s:property value="#session.c" />
<br>
Country:
<s:property value="#session.d" />
package java4s;
import java.util.Map;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;
public class LogingEx extends ActionSupport implements SessionAware{
private static final long serialVersionUID = 1L;
private String stuname,stuage,country;
private int stumarks;
Map m;
public String getStuname() {
return stuname;
}
public void setStuname(String stuname) {
this.stuname = stuname;
}
public String getStuage() {
return stuage;
}
public void setStuage(String stuage) {
this.stuage = stuage;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public int getStumarks() {
return stumarks;
}
public void setStumarks(int stumarks) {
this.stumarks = stumarks;
}
public void setSession(Map m)
{
this.m=m;
}
public String execute()
{
m.put("a",stuname);
m.put("b", stuage);
m.put("c",stumarks);
m.put("d",country);
return "success";
}
}
package java4s;
import java.util.Map;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;
public class NextActions extends ActionSupport implements SessionAware{
Map m;
public void setSession(Map m)
{
this.m=m;
}
public String execute()
{
return SUCCESS;
}
}
struts.xml
<?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>
</action>
<action name="next" class="java4s.NextActions">
<result name="success">/success1.jsp</result>
</action>
</package>
</struts>
原文: http://www.java4s.com/struts-tutorials/example-on-struts-2-sessionaware-interface/
源代码:http://pan.baidu.com/share/link?shareid=452987&uk=3878681452