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即
相关文档:
include指令用于在当前的Jsp页面中加载另一个静态文件页面
格式:<%@ include file="被加载的页面文件名"%>
注意1. 在被加载的文件中尽量不使用<Html>...</Html>和<Body>...</Body>标记,否则会影响原Jsp文件中同样的标记,会导致语法
& ......
jsp:forward标签用于将当前的Jsp页面跳转到另一个页面上,该指令只能实现本网站的跳转
1.跳转的页面为静态页面时的格式:
<jsp:forward page="跳转的静态页面文件名" />
2.跳转的页面为动态页面时的格式
<jsp:forward page="跳转的动态页面文件名">
&n ......
request对象是javax.servlet.HttpServletRequest类的一个子类对象,当客户端请求一个Jsp页面是,Jsp容器会将客户端的请求信息包装在这个对象中;该对象中的常用方法如下:
getParameter(String name):以字符串的形式返回客户端传来的某一个请求参数的值,参数名由name指定
getParameterNames() ......
pageEncoding:设置JSP源文件和响应正文中的字符集编码。
contentType:设置JSP源文件和响应正文的字符集编码及MIME类型。
可见,pageEncoding和contentType都可以设置JSP源文件和响应正文中的字符集编码。但也有区别:
设置JSP源文件字符集时,优先级为pageEncoding>contentType。如果都没有设置,默认ISO-8859-1。
......