action向jsp传值问题总结[zz]
http://www.blogjava.net/19851985lili/articles/97664.html
你的代码本身有问题,一般来说,我们在使用Struts时,如果要在JSP隐式的传值给Action有两种情况:
1、要传的值是fromBean中的一个字段,你说的情况应该就是这种情况,例如需要在Edit页面中保存theID,在Action中执行Update操作时根据ID来更新数据库的值,你可以这样做:
Jsp中的代码为:<html:hidden property="theID" />
提交后,theID的值就会放到FormBean中的theID中,你就可以通过getTheID()来获得这个值。
2、要传的值不是fromBean中的一个字段:
Jsp中的代码为:
<input type="hidden" name="XXX" value="<%=request.getAttribute(XXX)%>">
当然,你应该在Action中就已经就这个值放到了request中,request.setAttribute("XXX",value);,
然后在Action中你才可以通过request.getParameter("XXX");来取得这个值。
补充一点,request.setAttribute("XXX",value);中,value应该是个String,还有,<input type="hidden" name="XXX" value="<%=request.getAttribute(XXX)%>">应该改为
<input type="hidden" name="XXX" value="<%=(String)request.getAttribute(XXX)%>">
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
http://blog.chinaunix.net/u1/55983/showart_522992.html
到actionc向jsp传值的问题,开始以为自己编写程序有问题,检查了几天都没解决,网上的解决方案也不可行。直到今天在网上找到一个可行的解决方案,现在总结如下:
问题:
在Action中使用request.setAttribute("key", Value)的方式设置属性,在通过return mapping.findForward("Forwards")方式跳转,但在对应的JSP页面中无得取得传过来的属性值。
原因:
由于request生命周期只在一次请求范围内有效的,所以如果使用了struts-action 中的Reditect设置的话,就会将请求重定向,也就是破坏了request生命周期,重新产生一次请求,那么在jsp页面中,request.setAttribute设置过的属性被清空了。
解决:
在新建Action时,在选择Forwards时,不要选择“Redirect”,或者在struts-config.xml配置文件中,将对应<Action>标签中的<Forward>标签中,设置“Redirect”值为false即
相关文档:
在声明Jsp变量时,变量的数据类型可以是Java语言允许的任何数据类型
1.在标记符<%! %>之间声明的变量是全局变量,这些变量是被所有用户共享的,任何一个用户对此变量的操作都会影响到其他用户对它
的使用;因为全局变量的内存空间是直到服务器关闭后才释放的
2.在标记符<%%>之间声明的变 ......
格式如下: <%!
[synchronized] 返回类型 函数名(形参列表)
&nbs ......
include指令用于在当前的Jsp页面中加载另一个静态文件页面
格式:<%@ include file="被加载的页面文件名"%>
注意1. 在被加载的文件中尽量不使用<Html>...</Html>和<Body>...</Body>标记,否则会影响原Jsp文件中同样的标记,会导致语法
& ......
jsp内置对象
定义:可以不加声明就在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量
JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):
内置对象
代表内容
范围
request
触发服务调用的请求
request
response
对请求的应答
page
session
为请求的客户创建的sessio ......