工程中有很多地方需要用到弹出窗体,而这些窗体不仅仅只是弹出一张静态界面,需要附加参数我们都知道window.open()函数就是jsp里弹出窗体的函数,下面利用这个函数用两种方法实现弹出带参数的窗体。之前也写过一个,但表述不够清楚,这里重新整理了下发表出来
第一种适用于访问后台但不向后台传递参数的方法。js函数简单的一句话就可以实现:
function ShowAppCenter(){
window.open("appresume","showAppResume",'height=550, width=650, top=100, left=300, toolbar=no,' +
'menubar=no,scrollbars=no,resizable=no,location=no,status=no,alwaysRaised=yes,titlebar=no,toolbar=no,alwaysRaised=yes');
}
这里的"appresume" 代之struts2 里面action的名字,我们知道struts2 的action 会具体映射java类的某一方法,因此通过这个映射我们访问后台后再根据struts2的返回配置
result 就可以实现访问后台后跳转我们的目的界面。struts2 配置展示如下:
<action name="appresume" class="com.hrbourse.application.action.InitAppAction"
method="showAppResume">
<result >/WEB-INF/applicant/resume_centre/AppResume.jsp</result>
<result name="test">error.jsp</result>
</action>
我们在InitAppAction 这个类里面可以做一些查询或者删除的工作,然后跳转到AppResume.jsp这个前台界面,这样我们就可以在跳转到的界面AppResume.jsp显示需要的数据了。
第二种使用于访问后台并且向后台传递参数,第二种方法原理是在js 函数里面构造表单 以及模拟表单提交的方式提交到后台处理类,然后根据返回结果返回我们想要跳转到的界面。
function addEduSpe1(indid){ var tempForm = document.createElement("form"); tempForm.id="tempForm1"; tempForm.method="post"; tempForm.action="${pageContext.request.contextPath}/skiptochangeind.action"; tempForm.target="offer"; var hideInput = document.createElement("input"); hideInput.type="hidden"; hideInput.name= "indid" hideInput.value= indid; tempForm.appendChild(hideInput); document.body.appendChild(tempForm); $("#tempForm1").bind("submit",function(){ openIndWindows(); }); $("#tempForm1").submit(); document.body.removeChild(tempForm); } function openIndWindows(){ window.open('',"offer",'height=550, width=950, top=100, left=300, toolbar=no,' + 'menubar=no,scrollbars=no,resizable=no,location=no,status=no,alwaysRaised=yes,titlebar=no,toolbar=no,alwaysRaised=yes'); }
这里需要使用两个方法,addEduSpe1(inid),这个方法点击触发的直接方法,这里就构造了一个form 表单“tempForm ”注意参数 tempForm.target="offer"; 该
“offer”为弹出窗体句柄,这个句柄和回调方法 openIndWindows()中window.open()中的第2个参数保持一致。这里构造隐藏域hideInput,设置其值为所要传递的参数,name为与后台对应的属性,绑定提交事件触发的回调函数,也就是打开窗体的函数openIndWindows,之后模拟提交,注意这里采用jquery的方式是为了兼容浏览器的需要,因此调用这个函数之前需要引入jquery插件。window.open()最后的参数是设置所弹出窗体的样式,具体参数的对应可以从网上查询。