***SOS***jsp 应用技术讨论 (页面信息缓存)....

flyshp 2003-12-16 10:33:30
在aa.jsp 的一个form 表单里, client 已经填写了一些数据(text, textare,select.....),现在有个按钮是实现的是类似于

window.open("aa.jsp","_blank");也就是页面重新在新的IE 中打开, 我想 在aa.jsp 中实现表单数据信息保存,有没有什么好办法
,希望高手指教.==> 我能想到的是 通过 url 和 在 session 中 存取client 的信息 在另一个aa.jsp 中重新初始化一下表单信息
我感觉这个方法好笨的 ... ^_^ 欢迎大家来讨论!!!!
...全文
71 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyshp 2003-12-18
  • 打赏
  • 举报
回复
ok
flyshp 2003-12-17
  • 打赏
  • 举报
回复
我现在正在研究 STRUTS 这种开发框架,我感觉我的这个问题 对于modol1 这种旧的mvc 模式很麻烦的 .

具体问题具体分析 , 你应用可能会有效的 ,到我这 用 window.open() ... 方法在 新的IE 中打开页面 可能就会出现我说的问题!!

我所做的只是在父aa.jsp中 调用 window.open("aa1.jsp","_blank"); 在子 aa1.jsp中 onload 事件 载入了
function win() {
var oParent = opener;
var oForm = oParent.document.all.form1; try{
var oFormNew = oForm.cloneNode(true);
document.write(oFormNew.innerHTML);
}
catch(e)
{
alert('clone failed'+e);
}
}
你感觉有不合理的地方么????调试很多次了 不知道是什么原因!!
skysaint 2003-12-17
  • 打赏
  • 举报
回复
<html>的name没用,也不能clone,哪个可以哪个不可以,应该参考标准的w3c标准。我想这跟设计模式无关吧,你再好好检查一下输出html的部分
flyshp 2003-12-17
  • 打赏
  • 举报
回复
新问题有出现了!!

不知道你开发时采用的是mvc 的什么模式 !??

还记得方法中的 var oForm = oParent.document.all.frm1;//父窗口待复制的表单
这条语句吧 !!!

在新的窗口中 我 查看源代码 发现这个页面的 <form> 以上的部分都 del 了 ..

我尝试着给 <html name="pp"> 以后
var oForm = oParent.document.all.pp; 发现clone 对原数据的 clone 失效了 !!!
why ?????????
skysaint 2003-12-17
  • 打赏
  • 举报
回复
struts我没用过,所以不敢瞎说了。要么重开贴问其他人这个问题?:(
flyshp 2003-12-17
  • 打赏
  • 举报
回复
我不是这个意思!!

昨天我着急走 只是简单的调了一下 我只看到了 页面的控件信息可以从内存中提出来

但是页面的 css 都失效了 而起 在我的图片按钮的一些触发脚本也不见了 ! 这是我查看源代码 得出的结论 !!!

于是我 具体的调了一下 发现 在 form 以前的 正常 html 标签 和 脚本(form 前的所有代码)都不见了 ^_^

至于struts ,我只是想 如果用他来实现 应该会没这么麻烦 !!
不知道 你有没有遇到我说的情况!!
skysaint 2003-12-17
  • 打赏
  • 举报
回复
你是昨天说可以了,意思是普通的模式可以,用struts就不行了?你试试在等到需要的地方再输出,就像这样
<script>
var sFormHTML;
...
</script>
...
<html>
...
<body>

<script>
document.write(sFormHTML);

</script>
...
skysaint 2003-12-16
  • 打赏
  • 举报
回复
to : flyshp
what's your talking is the same to me !!
flyshp 2003-12-16
  • 打赏
  • 举报
回复
to : op2618

what's your talking is the same to me !!
op2618 2003-12-16
  • 打赏
  • 举报
回复
request.getParameter
flyshp 2003-12-16
  • 打赏
  • 举报
回复
我先顶一下 !

大家都来谈谈自己的看法吧 !!
skysaint 2003-12-16
  • 打赏
  • 举报
回复
不过你说的两者倒没有关系,你又没有把alert写在try中。
射天狼 2003-12-16
  • 打赏
  • 举报
回复
UP
skysaint 2003-12-16
  • 打赏
  • 举报
回复
oParent.document.title;
document.location.href
不知道你想要哪个。只要有的属性,如果显示不正常,加上完整的引用就可以,最常见的是document.xxx和window.xxx
flyshp 2003-12-16
  • 打赏
  • 举报
回复
晚上我来结贴

感谢 skysaint 老兄 以后 相互学习啊^_^
flyshp 2003-12-16
  • 打赏
  • 举报
回复
我想我知道原因了 !!!

var oParent = opener; 这个定义可以显示窗体的名称么???

我用 调用 alert(oParent.name); 时候总是显示空 .....

与这个有关系么??

除了 skysaint 大家不要跟贴了 问题基本搞定 ^_^
skysaint 2003-12-16
  • 打赏
  • 举报
回复
为什么会出现显示问题我也不清楚,不知道是ie的问题还是js本身的问题。用write吧,一样的。
skysaint 2003-12-16
  • 打赏
  • 举报
回复
哦,对了,可能是有些问题,要么干脆这样好了:

try{
var oFormNew=oForm.cloneNode(true);
//alert(oFormNew.t_active.value) ;
//document.oFormNew.t_active.insertBefore(oFormNew);
//document.body.insertBefore(oFormNew);
document.write(oFormNew.innerHTML);
}

yzhxy2002 2003-12-16
  • 打赏
  • 举报
回复
用vector 比较好保存信息不太大的数据
flyshp 2003-12-16
  • 打赏
  • 举报
回复
我把方法加到了子页面中

抓到了 object error 的异常信息...

window.onload=function(){

var oParent = window.opener;//¸¸´°¿Ú
var oForm=oParent.document.all.form1;//¸¸´°¿Ú´ý¸´ÖÆµÄ±íµ¥
alert(oForm.name) ;
alert(oForm.t_active.value) ;
try{
var oFormNew=oForm.cloneNode(true);
alert(oFormNew.t_active.value) ;
//document.oFormNew.t_active.insertBefore(oFormNew);
document.body.insertBefore(oFormNew);
}
catch(e)
{
alert('clone failed'+e);
}
}

加载更多回复(18)

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧