一个修改的需求:
A页面:有用户的信息 提供修改 功能 点击修改 跳转到B页面同样的表单 需要显示A页面原来的数据信息
[b]问题补充:[/b]
我的意思是 不用request和session等等是set方法进行保存。
姓名 :
地址 :
form自动得到数据信息
似乎明白点儿了,但是我还是不太清楚你到底要实现什么样的东西???
看样子你是用了Struts,好吧,那你可以这样
首先修改的这个页面数据信息肯定对应一个ActionForm,然后从A页面要跳到B页面,中间肯定有个事件,按钮,链接都行
整个事件的请求地址你可以写成一个单独的Action,注意,这个Action并不用新建实际的类,他只是做数据的存放和中转,且需要在配置文件中注册,只是这个Action的form对应的就是之前的那个actionForm,这样,在跳到B页面时就可以直接从这个actionForm中读数据了。
这次不知是否能解决你的问题?
作为参数传过去不就得了
跳到B页面时,从request里不就得到了嘛?
你是要做修改前的确认信息提示?
就是把struts的表单对象保存在session里,这样跳转之后就能自己显示了(如果是用struts的标签的话)
方法一:可以再次从数据库中查询表单中对象的数据,进行显示
方法二:在A表单中隐藏显示的数据,跳转到b表单把参数传递过去,进行显示
综合三种情况:
1》 将用户的信息放入到session中去,如果修改的时候,将修改的信息放入到数据库,然后在更新session的用户信息
2》在A页面将用户的ID传入到后台,再去数据库查询一次,传递到B页面。
3》在A页面中将用户的信息传入到后台,然后在传递到B页面。
那你就要用struts的动态表单绑定功能
http://www.jspcn.net/htmlnews/200250157.html
用JS时间啊,onclick以后修改=/users.do?doSomething=updateUsersOK&UNAME= ${"UNAME_ID"}&uaddress=${"uaddress_id"}
然后再在新页面中innerHTML就可以了吧。
我在JSP中用过,在STRUTS标签中没用过,要不你试试?呵呵。。。
用两个html:hidden在A页面接收
姓名 地址 两个值
点击确定跳到相应的actionForm中,这样actionForm中相应的变量就接到了上述两个值
跳到B页面 自然就可以接到两个需要的值了
后台取得form对像,
form中包含了name.id..palapala。
然后 在action中setAttribute("Form", form)
然后在B页面中
这样就可以直接把Form里头的name值设置给前台页面了,Over~
你用的应该是struts1吧,呵呵,试试在配置文件中将form的作用域设置成session,再试试,默认是request的,
A页面有用户信息,说明了又数据在HTML页面上,在点击修改的时候获取你所要修改的数据信息,追加到打开B页面的URL后面,以set方式进行传递过去。
在B页面就通过EL表达式,或直接java代码给表单的元素赋值就可以了。
我认为,页面中变量传递的方法有两种:
一种是,从页面直接传到页面。
这里要么将变量放到url地址中,到下一个页面从该地址中使用正则表达式解析出来;要么将变量存放到cookie中,到下一个页面从中提取出来。
前种方式在有特殊符号和中文的情况下需要对url进行编码处理,而后者不是一些常用的东西存进去占资源。
第二种方式,从页面传到服务器,再从服务器传回下一个页面。
简单来说,还是得将变量放到request里。再从其中取出来,传递给下个页面,需要进行取变量request.getparameter和设置属性request.setattribute两步。
当然,框架可以使得编程更加的简单,在Struts2中,从页面传递的变量通过映射为JAVA对象,该对象可以在下个页面中直接取到。
而Struts1中,貌似没见到相似用法,还是老老实实将映射的Form设置到request中去吧。。。request.setAttribute("Form", form)
点击 A页面 跳转到 B页面 时显示同样的表单,如果不经过后台的话,将A页面的表单form的范围配置为session试试?
eg:
attribute="userForm"
name="userForm"
path="/userAction"
scope="session"
parameter="actionType"
type="com.web.action.UserAction
如果经过后台的话,再查一遍 用户信息应该就可以了。仅作参考。
跨session共享FormBean呗,把修改和查看共用一个FormBean,然后再FormBean中去初始化表单的数据。
简单,只要将显示界面和修改界面对应的ActionForm设置为同一个就可以了,然后再再配置文件中设置scope="session"就可以了。