问个Struts基本小问题~ 1.为什么 在jsp里设置request.setAttribute("user",u)通过action到转到另外一个jsp页面后request.getAttribute("user")取出来的是空的了........?是因为action作为了一次跳转导致的么,如果是我有什么在action里指定的class类中将request属性的值取出来啊~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你在JSP里面设置的 attribute,在JSP执行完毕后,就消失了已经。你对request的生命周期不太熟悉啊。 你对jsp基础太差了,对于page,request,session,application等的范围不了解。page 在当前页面有效(仅用于JSP中)request 在当前请求中有效session 在当前会话中有效application 在所有应用程序中有效当你通过request.setAttribute("xxx",xxx)把值存入request范围时,你跳转到action中时,只会在一次request中有效,也就是从jsp到action,在action中是可以取到值的,但是当你action中再跳转到另一个action中,而且采用redirect方式跳转,则是无法取到的,此时用session存储是可以的,比如你做分页的时候,就会把一些东西存储在session中,如查询条件等等, 不是吧~如果我从一个jsp页面直接跳到另外一个jsp或者跳到Servlet进行处理 都能取出来啊~~~只要是一次跳转request属性都能取出来的~当然用超连接进行条转是不行..因为那是属于二次跳转了~~~~ 我不是JSP基础差...我是刚开始学struts所以 想确定一下跳到action算不算是一次跳转,,,不过从你答案中我已经得出结论了~~~谢谢你,,那如果我如何在action中取出request的属性值啊????? request.setAttribute 是servlet里面的存储数据 在jsp页面才能取 你可以尝试一下穿参数到另外一个jsp页面 使用jstl标签 <c:param value="xxx" name="xxx"/> 这样穿参数过去 再另外一个jsp页面里面param.xxx 取值 这样是完全OK的 这个我是懂的~~~其实我只是想问 在action里面如何来获取request属性的值...?? 是这样的。你是从jsp到action,你知道struts2的原理,action即是action也是formbean(相对于struts1.x而言)。即使是一个普通表单提交到action,也是需要将数值存入form中的。我不知道你在jsp中如何提交到action中的,request.setAttribute("user",u)这个又是在何处写的(js中吗?)?如果你是form提交到action,那么你只有通过form将值传递到action中,但是取的时候是通过request.getParameter("xxxx");这样来取的,当然,你需要在action中首先获取request。在表单中,可以通过隐藏域将request.setAttribute("user",u)这样写:<form>.....<input type="hidden" name="user" value="u">.....</form>则提交到action中,通过request.getParameter("user");可以拿到。 你的意思是 在jsp里面存储的 在servlet里面取值吗 其实我刚学struts 问的问题确实幼稚了点~~我意思其实是想问 我在jsp设置一个request属性的东东如 request.setAttrobute("aa","11");然后我在action对应的class java出 (<action name="*_*" class="cn.lxh.struts2.actions.{1}Action" method="{2}">)类中有什么方法获得request 里面的值....... request 是java的内置对象 在jsp是不能使用的 只能通过隐藏域来解决 就是8楼所说的方法 你可以这样理解 request.getParameter() 它只是接受 客户提交的请求 也就是说在<form>表单里面提交的请求 在servlet 的request 对象里面接收 你在jsp中只能通过这种方式存值,<%request.setAttribute("aa","11");%><form >......</form>你这样提交到action中,肯定取不到的。你对request不了解。 iisgirl 不好意思 一时没看到你的 回复..在这里向你抱歉了~~~另外 谢谢你和Faith_boy两个 ~~谢谢你们详细的解答 我已经明白了~~~!!,,谢谢 你们 真的~~~ 可以可以使用struts2的ActionContext类的对象(ActionContext ctx=ActionContext.getContext();)获得request、session等的Map对象,也可以在action类中实现ServletRequestAware接口来获得request对象 胡说。request明明是jsp 9大内置对象之一。肯定可以在jsp中使用。 <%request.setAttribute("aa","11");%><form >......</form>啊 确实不可以啊~~ !!!再次谢谢了... 我估计他是打快打错了....估计原本是想这样打的 request 是java的内置对象 在.java是不能使用的 只能通过隐藏域来解决 就是8楼所说的方法jsp是在Servlet上发展起来的~~内置对象在Servlet能用的在jsp也能用把~ 利用axis调用webservice,高手进 如何在struts2拦截器中获取spring管理的对象??? myEclipse 求救 map取值问题 问个doGet与doPost的老问题 【在线急等】ie 下载时 文件名称正含有空格 以及文件名过长的问题 知道CLASS文件.知道可以知道它的JAVA文件? 最近需要调用致远A8系统的一些接口!遇到单点登录获取Ticket的问题!不知道如何解决,有没有知道的朋友给讲解哈啊! 请教一个关于解耦和的问题。 关于oracle9ias部署jsp文件的问题。 数据库添加新记录后,页面及时提示。求助! 请问JSP与SERVLET有什么区别?
request 在当前请求中有效
session 在当前会话中有效
application 在所有应用程序中有效当你通过request.setAttribute("xxx",xxx)把值存入request范围时,你跳转到action中时,只会在一次request中有效,也就是从jsp到action,在action中是可以取到值的,但是当你action中再跳转到另一个action中,而且采用redirect方式跳转,则是无法取到的,此时用session存储是可以的,比如你做分页的时候,就会把一些东西存储在session中,如查询条件等等,
不是吧~如果我从一个jsp页面直接跳到另外一个jsp或者跳到Servlet进行处理 都能取出来啊~~~
只要是一次跳转request属性都能取出来的~当然用超连接进行条转是不行..因为那是属于二次跳转了~~~~
我不是JSP基础差...我是刚开始学struts所以 想确定一下跳到action算不算是一次跳转,,,不过从你答案中我已经得出结论了~~~谢谢你,,
那如果我如何在action中取出request的属性值啊?????
param.xxx 取值 这样是完全OK的
这个我是懂的~~~其实我只是想问 在action里面如何来获取request属性的值...??
是这样的。你是从jsp到action,你知道struts2的原理,action即是action也是formbean(相对于struts1.x而言)。即使是一个普通表单提交到action,也是需要将数值存入form中的。
我不知道你在jsp中如何提交到action中的,request.setAttribute("user",u)这个又是在何处写的(js中吗?)?
如果你是form提交到action,那么你只有通过form将值传递到action中,但是取的时候是通过
request.getParameter("xxxx");这样来取的,当然,你需要在action中首先获取request。
在表单中,可以通过隐藏域将request.setAttribute("user",u)这样写:
<form>
.....
<input type="hidden" name="user" value="u">
.....
</form>则提交到action中,通过request.getParameter("user");可以拿到。
我意思其实是想问 我在jsp设置一个request属性的东东如 request.setAttrobute("aa","11");
然后我在action对应的class java出 (<action name="*_*" class="cn.lxh.struts2.actions.{1}Action" method="{2}">)类中有什么方法获得request 里面的值.......
<%
request.setAttribute("aa","11");
%><form >......
</form>你这样提交到action中,肯定取不到的。
你对request不了解。
胡说。
request明明是jsp 9大内置对象之一。肯定可以在jsp中使用。
request.setAttribute("aa","11");
%><form >......
</form>啊 确实不可以啊~~ !!!再次谢谢了...
我估计他是打快打错了....估计原本是想这样打的
request 是java的内置对象 在.java是不能使用的 只能通过隐藏域来解决 就是8楼所说的方法jsp是在Servlet上发展起来的~~内置对象在Servlet能用的在jsp也能用把~