struts 2中action取页面request对象中的对象能取出来么? 如题。求解 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 struts2中,request和session都被隐藏了struts提供两种方式访问session和request,其中比较常用的是利用SPRING里面所说的IOC即控制反转IOC方式:action类实现ServletRequestAware接口,并新建一个HttpServletRequest requestpublic class UserLoginAction extends ActionSupport implements ServletRequestAware{ public void setServletRequest(HttpServletRequest request) { this.request=request; } 然后可以生成的request得到对象,如request.getRemoteAddr() 当然可以而且很灵活呵呵//action中用这个得到requestHttpServletRequest request = ServletActionContext.getRequest();request.setAttribute("list", list);//取list <s:iterator id="objs" value="%{#request.list}" > </s:iterator> 取原有request对象可以试试<s:property value="%{#request.remoteAddr}" /> 用他说的这种方式取 不过建议LZ别用request 因为struts2 封装到基本不用request了 对象传递的方式已经彻底改换了(通过get/set request被封装到里面了) 例如:request.setAttribute(名字,对象);然后提交action.action中request.getAttribute(名字). 在struts 1中可以取到的.但在struts 2中取不到. 提供三种方式:1>.ActionContext2>.ServletActionContext3>.IOC struts2public class UserLoginAction extends ActionSupport implements ServletRequestAware{ public void setServletRequest(HttpServletRequest request) { this.request=request; } 然后可以生成的request得到对象,如request.getRemoteAddr() 意思是:生成HttpServletRequest对象的set和get方法,然后实现ServletRequestAware接口,然后在execute方法中直接用request对象就能取到了,是么?有更简单的方法么 不好用啊!public void setServletRequest(HttpServletRequest arg0) { System.out.println(arg0.getAttribute("point") + "****"); }我在这里打印这个对象,结果什么都没有,point是页面对象的名字,接口也实现了 package aware;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.interceptor.ServletRequestAware;import com.opensymphony.xwork2.ActionSupport;public class TestServletRequestAware extends ActionSupport implements ServletRequestAware{ private static final long serialVersionUID = 1L; private String name; private HttpServletRequest request; public String getName() { return name; } public void setName(String name) { this.name = name; } public HttpServletRequest getRequest() { return request; } @Override public void setServletRequest(HttpServletRequest request) { this.request = request; } public String execute() throws Exception{ request.setAttribute("name", name); return SUCCESS; } }前台获取<s:iterator value="#request.name"> <s:property /></s:iterator> 都理解错了!!!我在页面request.setAttribute("name", 对象);,然后到提交到action.在action中取这个对象.@Override public void setServletRequest(HttpServletRequest request) { this.request = request; }为什么我重写会提示错误,不能重写呢 我的那代码经测试是可以通过的, 在action里获得了request, 你想怎么使用都可以. 把我代码的request.setAttribute换成 getAttribute就行啦 当然可以 request.getParameter(" "); public class LoginAction extends ActionSupport implements ServletRequestAware { private HttpServletRequest request; public void setServletRequest(HttpServletRequest arg0) { this.request=arg0; } public String execute() throws Exception { System.out.println(request.getAttribute("point")+"************"); return ""; } }显示对象为null.你的确定好用么? 大哥你这样写不报错么?我加@Override时报错@Override public void setServletRequest(HttpServletRequest request) { this.request = request; } @Override可不写啊, 我用eclipse的, 编译没出错...测试过代码结合JSP使用可以获得request值的 private HttpServletRequest request;public HttpServletRequest getRequest() { return request;}public void setServletRequest(HttpServletRequest request) { this.request = request;}楼主是不是漏掉getRequest()了 getRequest()是获得对象,我在action本类中直接使用变量就可以.可是取的对象为空. 受教了~~~ 正在学习struts2! java.sql.SQLException: ORA-01401: inserted value too large for column 请问一个关于编辑图片和保存图片的问题 JSP页面小技术请教 请教:连接池问题 struts配置问题--有些莫名奇妙 jsp的乱码问题啊~~~~~是页面的乱码~~~~~ jsp 中可以无dsn连接数据库吗? Javaweb项目转android项目 装了tomcat怎样运行jsp文件? springMVC项目单元测试报错 高分相赠,高手请进 ,我想要个LOGout时销毁SESSION的JSP页面和服务器端代码,谁可以给我一份谢谢了 。 一个JSP传值的小问题
struts提供两种方式访问session和request,其中比较常用的是利用SPRING里面所说的IOC即控制反转
IOC方式:
action类实现ServletRequestAware接口,并新建一个HttpServletRequest request
public class UserLoginAction extends ActionSupport implements ServletRequestAware{
public void setServletRequest(HttpServletRequest request) {
this.request=request;
}
然后可以生成的request得到对象,如request.getRemoteAddr()
而且很灵活
呵呵//action中用这个得到request
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("list", list);//取list
<s:iterator id="objs" value="%{#request.list}" >
</s:iterator>
<s:property value="%{#request.remoteAddr}" />
用他说的这种方式取 不过建议LZ别用request 因为struts2 封装到基本不用request了 对象传递的方式已经彻底改换了(通过get/set request被封装到里面了)
action中request.getAttribute(名字). 在struts 1中可以取到的.但在struts 2中取不到.
public void setServletRequest(HttpServletRequest request) {
this.request=request;
}
然后可以生成的request得到对象,如request.getRemoteAddr()
有更简单的方法么
public void setServletRequest(HttpServletRequest arg0) {
System.out.println(arg0.getAttribute("point") + "****");
}
我在这里打印这个对象,结果什么都没有,point是页面对象的名字,接口也实现了
import org.apache.struts2.interceptor.ServletRequestAware;
import com.opensymphony.xwork2.ActionSupport;public class TestServletRequestAware extends ActionSupport implements ServletRequestAware{ private static final long serialVersionUID = 1L;
private String name;
private HttpServletRequest request;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public HttpServletRequest getRequest() {
return request;
}
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
public String execute() throws Exception{
request.setAttribute("name", name);
return SUCCESS;
}
}
前台获取
<s:iterator value="#request.name">
<s:property />
</s:iterator>
我在页面request.setAttribute("name", 对象);,然后到提交到action.
在action中取这个对象.@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
为什么我重写会提示错误,不能重写呢
public void setServletRequest(HttpServletRequest arg0) {
this.request=arg0;
} public String execute() throws Exception {
System.out.println(request.getAttribute("point")+"************");
return "";
}
}
显示对象为null.你的确定好用么?
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
private HttpServletRequest request;public HttpServletRequest getRequest() {
return request;
}public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
楼主是不是漏掉getRequest()了
可是取的对象为空.