在struts2的action中获取/设置request对象的属性的值,可通过 ActionContext 类和 ServletActionContext 类完成,分别说明如下:
一,通过 ActionContext 方式
这里通过action上下文找到request对象,在设置或取出其中指定属性的值,实现步骤:
1,引入相应的包
import java.util.Map; //其它包视具体情况引入
import javax.servlet.http.HttpServletRequest;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
2,获取action上下文
ActionContext cxt = ActionContext.getContext();
3,再设置或取出 Request 对象中指定属性的值
HttpServletRequest request = (HttpServletRequest)cxt.get(ServletActionContext.HTTP_REQUEST);
String vAttr = request.getAttribute("attrName"); //获取名为attrName的request属性的值
request.put("attrName2","attrName2Value"); //设置名为attrName2的request属性,其值为attrName2Value
//上面一行代码等效于 request.setAttribute("attrName2","attrName2Value");
二,通过 ServletActionContext 方式
1,引入相应的包
import java.util.Map; //其它包视具体情况引入
import org.apache.struts2.ServletActionContext; //key
import javax.servlet.http.HttpServletRequest;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
2,找出 request 对象
HttpServletRequest request = ServletActionContext.getRequest();
//HttpServletResponse response = ServletActionContext.getResponse(); //找出 response 对象
3,获取或设置 request 中指定名称的属性值
String userName = (String)request.getAttribute("attrName1");
//获取request中名称为 attrName1 的属性值
request.setAttribute("attrName2","attrName2Value");
//设置request对象中名称为attrName2的属性,其值 attrName2Value