关于jsp页面弹出窗口的总结
方法一:
Login.Jsp代码
1.<s:form action="testty.action" method="post">
2.<table>
3.<tr>
4.<td>test</td><td><s:textfield name="username"/><label id="loginMessage"></label></td>
5.</tr>
6.<tr>
7.<s:submit value="submit" onclick=" submitLogin ();"/>
8.</tr>
9.</table>
10.</s:form>
submitLogin ()的js代码
1.function submitLogin ()
2.{
3.//testty.action为跳到action中处理(如果不需要到action中进行处理,可以直接写成main.jsp页面),返回页面以窗口方式显示
4.window.open("testty.action","ipmsWindow","toolbar=no,menubar=0,scrollbar=no,location=no,status=no,resizable=yes,directories=no");
5.//实现父窗口关闭,常用登录到主页面时,关闭login窗口
6.var w = window.open('','_self');
7.w.opener = null;
8.w.close();
9.}
总结:方法一,虽然可以实现到action中进行处理,但是仅仅适合查找,因为在action处理过程中如果发生了异常,在login页面就不能实现友好的提示。于是可以采用方法二:ajax实现。
方法二:
Login.Jsp代码
1.<s:form action="testty.action" method="post">
2.<table>
3.<tr>
4.<td>test</td><td><s:textfield name="username"/><label id="loginMessage"></label></td>
5.</tr>
6.<tr>
7.<s:submit value="submit" onclick="submitLogin ();"/>
8.</tr>
9.</table>
10.</s:form>
submitLogin ()的js代码
1.function submitLogin(){
2.if(true){
3.$.ajax({
4.type:"POST",
5.url:"testty.action",
6.data:"loginName="+""+"&password="+"",
7.async:false,
8.success:function(resMsg){
9.if("0"==resMsg){
10.window.open("fileUpload.jsp","ipmsWindow","toolbar=no,menubar=0,scrollbar=no,location=no,status=no,resizable=yes,directories=no");
11.var w = window.open('','_self');
12.w.opener = null;
13.w.close();
14.}
15.else if("1"==resMsg){
16.$("#loginMessage").text("用户名或密码输入有误,请重新登录!");
17.}
18.else{
19.$("#loginMessage").text(resMsg);
20.}
21.},
22.error:function(){
23.$("#loginMessage").text("系统异常!");
24.}
25.});
26.}
27.return false;
28.}
注:关于resMsg的值,后台是这么输出的:
PrintWriter pw = null;
try
{
pw = ServletActionContext.getResponse().getWriter();
pw.print("0");
}
catch (IOException e)
{
e.printStackTrace();
}
System.out.println("test");
//return SUCCESS;
return null;