整体功能:查询数据库然后把记录显示在一个页面(show.jsp),每条记录前有一个checkbox用来选定,这个页面中有4个按钮,分别的添加,删除,修改,详细。要求按添加,修改,详细时要弹出新页面,并且保持show.jsp不变。修改,添加页面提交以后,要自动关闭本身并且show.jsp自动刷新,显示添加或者修改的记录。要求用Struts实现。
我遇到的问题是:
1.按钮的判断应该在show.jsp里还是应该写在Action里?我用JS脚本能把按钮的name传到Action里进行判断。然后进行新页面的弹出,但这时候show.jsp已经提交到Action里了,成了一个空白页面。应该怎么解决或者我的思路是不是有问题?2.也可以在show.jsp里边直接打开新页面,但是我这样的话怎么判断checkbox我选择的是哪条记录?(也就是我要传一个记录的主键). 在这里也想问下如果2个JSP页面,第一个有类似checkbox的东西,第2个页面怎么来接收这个参数,或者怎么取得传递的值。我知道有requset.SetAttribute();
但checkbox或者radio应该怎么样保存参数?3.在修改或者添加页面按了提交按钮之后怎么自动关闭当前页?4.有没有热心人能帮我大致的理一下思路,这几天问了好几个人,模式改了好几次,现在脑子里乱乱的,呵呵,第一次写东西,请多指教。声明:问题解决后马上给分,绝不食言
我遇到的问题是:
1.按钮的判断应该在show.jsp里还是应该写在Action里?我用JS脚本能把按钮的name传到Action里进行判断。然后进行新页面的弹出,但这时候show.jsp已经提交到Action里了,成了一个空白页面。应该怎么解决或者我的思路是不是有问题?2.也可以在show.jsp里边直接打开新页面,但是我这样的话怎么判断checkbox我选择的是哪条记录?(也就是我要传一个记录的主键). 在这里也想问下如果2个JSP页面,第一个有类似checkbox的东西,第2个页面怎么来接收这个参数,或者怎么取得传递的值。我知道有requset.SetAttribute();
但checkbox或者radio应该怎么样保存参数?3.在修改或者添加页面按了提交按钮之后怎么自动关闭当前页?4.有没有热心人能帮我大致的理一下思路,这几天问了好几个人,模式改了好几次,现在脑子里乱乱的,呵呵,第一次写东西,请多指教。声明:问题解决后马上给分,绝不食言
var updateWindow = "./action.do?value=checkValue&option=update";
window.showModalDialog(updateWindow,"","resizable:no;status:no;dialogWidth=400px;dialogHeight=300px");
window.location.reload();
为了能保证在页面刷新前后台完成修改工作,最后再做一个修改成功通知页面,里边有关闭按钮。
上面的程序中value表示你选中的checkbox值,option表示你点的按钮,如修改按钮。再Strucs的Action中判断一下option的值,决定跳到哪页。记得在子窗体的<body>之上加:<base target="_self">代码。你试一下,我就是这么用的。
window.open("about:blank","newPage","");form.target = "newPage";
2、checkbox的值传递后台是一个数组,并且里面的值,使你在页面上选中的值。接收时使用:
request.getParameter("checkboxname");怎样保存参数,就不用费心了,它会自动完成。
3、在提交时使用:window.close();这样就可以关闭了。
function servlet(obj)
{
switch(obj.name){
case 'xiangxi':
return setAction();break;
case 'add':
return setAction();break;
case 'xiugai':
return setAction();break;
case 'delete':
return confirmDel();break;
}
}
function setAction(obj){show.flag.value=obj.name;}function confirmDel(){
if(confirm('确定要删除吗?')){location="serv?flag='delete'";}
return false;
}
</script>
<form name="show" method="post" action="sAction.do"><input type="checkbox" name="c" value="<%=fb.getStu_id()%>"><input type="hidden" name="flag" value="">
<input type="Image" name="xiangxi" src="image/xiangxi.JPG" onclick="return servlet(this)">
<input type="Image" name="add" src="image/tianjia.JPG" onclick="return servlet(this)">
<input type="Image" name="xiugai" src="image/xiugai.JPG" onclick="return servlet(this)">
<input type="Image" name="delete" src="image/shanchu.JPG" onClick="return servlet(this)">
在sAction里,用String flag = Request.getParameter("flag");来接收按钮值,用 String value[] = Request.getParameterValues("c");来接收checkbox,然后用循环取;这样都能得到值,判断也没问题,就是点按钮以后地址栏里的...\show.jsp变成...\sAction.do,然后页面空白。
还有一种想法是在show.jsp里边直接打开页面,但传不了checkbox的值。