Struts2整合jQuery实现Ajax功能-IE与firefox的区别
action:
View Code
1 package com.practice.action; 2 3 import javax.servlet.http.HttpServletResponse; 4 5 import org.apache.struts2.ServletActionContext; 6 7 import com.opensymphony.xwork2.ActionSupport; 8 import com.opensymphony.xwork2.ModelDriven; 9 import com.practice.entity.User; 10 11 public class UserAction extends ActionSupport implements ModelDriven<User>{ 12 13 private User user = new User(); 14 private String loginInfo; 15 16 public String getLoginInfo() { 17 return loginInfo; 18 } 19 20 public void setLoginInfo(String loginInfo) { 21 this.loginInfo = loginInfo; 22 } 23 public String login() throws Exception{ 24 if(user.getId() == 1 && user.getPwd().equals("aa")) { 25 loginInfo = "logintrue"; 26 }else { 27 loginInfo = "loginfalse"; 28 } 29 HttpServletResponse response = ServletActionContext.getResponse(); 30 response.getWriter().write(loginInfo); 31 return SUCCESS; 32 } 33 34 public User getModel() { 35 return user; 36 } 37 38 public void test() throws Exception{ 39 if(user.getId() == 1 && user.getPwd().equals("aa")) { 40 loginInfo = "logintrue"; 41 }else { 42 loginInfo = "loginfalse"; 43 } 44 HttpServletResponse response = ServletActionContext.getResponse(); 45 response.getWriter().write(loginInfo); 46 } 47 }
entity:
View Code
1 package com.practice.entity; 2 3 public class User { 4 private int id; 5 6 public int getId() { 7 return id; 8 } 9 public void setId(int id) { 10 this.id = id; 11 } 12 private String pwd; 13 14 public String getPwd() { 15 return pwd; 16 } 17 public void setPwd(String pwd) { 18 this.pwd = pwd; 19 } 20 21 22 }
index.jsp
View Code
1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 %> 6 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 8 <html> 9 <head> 10 <base href="<%=basePath%>"> 11 <title>practice</title> 12 </head> 13 <script type="text/javascript" src="script/jquery/jquery-1.6.min.js"></script> 14 15 <body> 16 17 <form id="loginForm" name="loginForm"> 18 <input type="text" id="uId" name="id"/> 19 <input type="password" id="pwd" name="pwd"/> 20 <input type="button" id="loginBut" value="登录"/> 21 </form> 22 23 <div id="Info"></div> 24 </body> 25 <script type="text/javascript" language="javascript"> 26 $("#loginBut").click(function() { 27 var $uId = $("#uId"); 28 var $pwd = $("#pwd"); 29 30 if($uId.val() == "") { 31 alert("请输入用户ID"); 32 $uId.focus(); 33 return false; 34 } 35 36 if($pwd.val() == "") { 37 alert("请输入密码"); 38 $pwd.focus(); 39 return false; 40 } 41 42 else { 43 var parameter = { 44 url : "login.action", 45 type : "POST", 46 data : $("#loginForm").serialize(), 47 //data : {"id":$('#uId').val(), "pwd":$('#pwd').val()}, 48 success : function(loginInfo) { 49 alert("returnInfo:" + loginInfo); 50 if(loginInfo == "logintrue") { 51 alert("登录成功"); 52 }else { 53 alert("登录失败"); 54 } 55 } 56 }; 57 //$('#Info').html("正在登录中。。。"); 58 $.ajax(parameter); 59 } 60 }); 61 </script> 62 </html>
error.jsp
View Code
1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2 <%@taglib prefix="s" uri="/struts-tags"%> 3 <%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %> 4 <% 5 String path = request.getContextPath(); 6 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 7 %> 8 9 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 10 <html> 11 <head> 12 <base href="<%=basePath%>"> 13 <title>ERROR</title> 14 </head> 15 16 <body> 17 <c:out value="loginInfo"></c:out> 18 </body> 19 </html>
success.jsp
View Code
1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> 2 <%@taglib prefix="c" uri="http://java.sun.com/jstl/core" %> 3 <% 4 String path = request.getContextPath(); 5 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 6 %> 7 8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 9 <html> 10 <head> 11 <base href="<%=basePath%>"> 12 <title>SUCCESS</title> 13 </head> 14 15 <body> 16 <c:out value="loginInfo"></c:out> 17 </body> 18 </html>
struts.xml
View Code
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> 3 <struts> 4 <constant name="struts.devMode" value="true"/> 5 <constant name="struts.configuration.xml.reload" value="true"/> 6 <package name="practice" namespace="/" extends="struts-default"> 7 8 9 10 <action name="login" class="com.practice.action.UserAction" method="test"> 11 </action> 12 <!-- 13 <action name="login" class="com.practice.action.UserAction" method="login"> 14 <result name="success">/success.jsp</result> 15 <result name="error">/error.jsp</result> 16 </action> 17 --> 18 </package> 19 </struts>
当选择没有返回值的test的方法测试:
在IE下,返回值可以得到,
在firefox下,却得不到,得到的是
然而,用有返回值的login方法测试时:
都是一样的返回的都是
结论 :
IE:当调用action的方法有返回值时,response.getWriter().write(loginInfo)是无效的,服务器都会返回 对应的返回值所对应的视图;反之,则有效,返回loginInfo。
firefox:调用的action的方法有返回值,response.getWriter().write(loginInfo)是无效的,服务器都会返回 对应的返回值所对应的视图;反之,也接收不到loginInfo。
一步一个脚印,方便自己复习,欢迎大家指正,非常感谢,共同进步!
posted on 2012-05-19 22:23 lovebeauty 阅读(526) 评论(0) 编辑 收藏 举报