大家好,我想问一下如何实现改变当前页面对应的表单例如:在AAA.jsp文件对应的是form A,对应的action是AA.do.在AAA.jsp中有一个按钮,它对应的是form B,对应的action是BB.do,AA.do和BB.do不在同一个包中,我现在能不能通过点击按钮,实现修改对应的form和action,先执行BB.do,然后再返回当前页面再执行AA.do.
调试欢乐多
在后台,直接跳转到BB.do,然后再返回页面
首先:AAA.jsp有一个按钮对应的是AA.do,A.form, 另一个form是b.form,有一个bb.do的action,我现在希望点击按钮后让它先执行b.form中的bb action,然后再执行AA action,并将最终结果返回到画面。也就是说当前页面的按钮就要先跳到b.form中的一个action执行一定操作,用其返回值来初始化A.form中的值,然后调用A.form的AAA.jsp页面对应的AA.do函数,返回最后的结果。
即:需要完成一个jsp页面对应两个form,这样是不能完成的吗,如果我要实现该功能,是不是需要将这两个form合并。
你可以把b.jsp放在a.jsp中或是放在a.jsp中的一个iframe中。这样才能在a页面提交b.jsp中的b form
好了,form提交了后,那么进入b.action中就有b formBean数据了。将b的formBean数据赋给a formBean
然后用forward跳转到a.jsp,如果a.jsp用的struts标签的话且form标签绑定了配置文件(struts-config.xml)
中的formBean的name,那么a 的form表单会自动赋上刚才b formbean的值。这个时候你还需要在a form传递一个标示
这个标示用于是否提交a.form和a.jsp,因为是一个button提交2个form表单。
所以,如果a formBean.getFlag() == true就提交表单。
用js完成,如下:
window.onload = function () {
if ("${aformBean.flag}" == "true") {//${aformBean.flag}这个是aformbean中的flag属性
document.aForm.submit();//aForm是a jsp中的a form表单
}
}
提交的时候是整个页面提交,不是一个form提交,所以只能提交一次,要想从aa.do==>bb.do,在后台直接跳过去不就完了嘛
fm = document.forms[0]..value = b;
fm.action= '<%= request.getContextPath() + "/bb.do" %>';
//初始化表单的需要添加的站点名
fm.submit();
第15课JQuery插件中讲到的表单插件好像可以实现你要的功能,不过我没试过,LZ可以试试,成功了要告诉我们哦!呵呵,当然其中也有其他基础的视频