Struts2 通过ActionContext对象获取WEB资源之解耦方式的XxxAware接口方法

版权声明:博客知识产权来源命运的信徒,切勿侵权 https://blog.csdn.net/qq_37591637/article/details/84938282

这个方法相比较ActionContext而言,如果一个Action类中的多个方法都涉及到了取值设置值得情况,最好用XxxAware接口方法

下面是一个例子

package cn.com.action;
import java.util.Map;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.ParameterAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;
public class AwareAction implements ApplicationAware, SessionAware,
		RequestAware, ParameterAware {
	/*
	 * author:命运的信徒 date:2018/12/10
	 * arm:掌握Action获取web资源的解耦方式之Aware接口的方式ApplicationAware
	 * ,SessionAware,RequestAware,ParameterAware
	 */
	/*
	 * 1.第一步,继承相应的接口如 2.添加接口的方法(自动添加) 3.赋值 4.执行方法获取值
	 */
	private Map<String, String[]> parameters;
	private Map<String, Object> requests;
	private Map<String, Object> applications;
	private Map<String, Object> sessions;

	public void setParameters(Map<String, String[]> parameters) {
		// TODO Auto-generated method stub
		this.parameters = parameters;
	}

	@Override
	public void setRequest(Map<String, Object> requests) {
		// TODO Auto-generated method stub
		this.requests = requests;
	}

	@Override
	public void setSession(Map<String, Object> sessions) {
		// TODO Auto-generated method stub
		this.sessions = sessions;
	}

	@Override
	public void setApplication(Map<String, Object> applications) {
		// TODO Auto-generated method stub
		this.applications = applications;
	}
	public String execute(){
		applications.put("applicationkey", "applicationvalue");
		sessions.put("sessionkey", "sessionvalue");
		requests.put("requestkey", "requestvalue");
//parameters不可以放值只可以取值
		String[] str=parameters.get("tt");
	   System.out.println(str[0]);
		return "success";
	}
}

index.jsp页面就是一个链接请求

   <a href="aware.action?tt=yecunwanzhai">aware接口</a>

struts.xml配置文件如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
<package name="tjn" extends="struts-default">
<action name="url" class="cn.com.action.Info" method="save">
<result name="success">/WEB-INF/pages/success.jsp</result>
</action>
<action name="context" class="cn.com.action.TestActionContext">
<result>/context.jsp</result>
</action>


<action name="aware" class="cn.com.action.AwareAction" >
<result>/context.jsp</result>
</action>
</package>
</struts>

显示参数的页面

  <h4>Aware Test</h4>
   application:${applicationScope.applicationkey }<br><br> 
   session:${sessionScope.sessionkey }<br><br> 
   request:${requestScope.requestkey }<br><br> 
   parameter:${parameters.tt[0] }<br><br> 

猜你喜欢

转载自blog.csdn.net/qq_37591637/article/details/84938282