后台继承RequestAware,SessionAware,ApplicationAware 这3个接口,然后通过控制反转(IOC)来自动赋值。
注意:需要重写接口的set方法。
package struts.test.action;
import java.sql.SQLException;
import java.util.Map;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
/**
* 登录练习
* @author zk
*
*/
public class LoginAction extends ActionSupport implements RequestAware,SessionAware,ApplicationAware {
//获取request对象
Map request1;
Map session1;
Map application1;
@Override
public String execute() throws Exception {
request1.put("req", "request1属性");
session1.put("ses", "session1属性");
application1.put("app", "application1属性");
return SUCCESS;
}
@Override
public void setRequest(Map<String, Object> request1) {
// TODO 自动生成的方法存根
this.request1 = request1;
}
@Override
public void setSession(Map<String, Object> session) {
// TODO 自动生成的方法存根
this.session1 = session;
}
@Override
public void setApplication(Map<String, Object> aaa) {
// TODO 自动生成的方法存根
this.application1 = aaa;
}
}
前台2种方式获取(EL表达式和控制反转IOC)
<%@ page pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%
String path = request.getContextPath();
%>
<html>
<head></head>
<body>
<h1>adminSuc</h1>
管理员页面
<br/><br/>
requset属性接受:<s:property value="#request.req"/> <br/>
session属性接受:<s:property value="#session.ses"/><br/>
application属性接受:<s:property value="#application.app"/><br/>
<br/>
=============================
<br/>
<br/><h1> 另外一种获取方法 :</h1><br/>
requset属性接受:${requestScope.req}<br/>
session属性接受:${sessionScope.ses}<br/>
application属性接受:${applicationScope.app}<br/>
<br/>
<br/>
<a href="<%=path %>/login.jsp">返回</a>
</body>
</html>