日期:2014-05-16 浏览次数:20505 次
1.struts.xml
<constant name="struts.i18n.encoding" value="utf-8" /> <package name="jsondefault" namespace="/json" extends="json-default"> <action name="loginByAjax" class="com.mtea.s2.action.LoginByAjax"> <result type="json"/> </action> </package>
2.Action
package com.mtea.s2.action;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginByAjax extends ActionSupport{
private String username;
private String password;
private boolean pass;
private String message;
private List<String> fruitList=new ArrayList<String>();
private Map<String,String> realNameMap=new HashMap<String,String>();
private User user=new User("xiao7",22);
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public boolean isPass() {
return pass;
}
public void setPass(boolean pass) {
this.pass = pass;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public List<String> getFruitList() {
return fruitList;
}
public void setFruitList(List<String> fruitList) {
this.fruitList = fruitList;
}
public Map<String, String> getRealNameMap() {
return realNameMap;
}
public void setRealNameMap(Map<String, String> realNameMap) {
this.realNameMap = realNameMap;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@Override
public String execute() throws Exception{
//init
fruitList.add("苹果");
fruitList.add("香蕉");
fruitList.add("芒果");
realNameMap.put("张", "三");
realNameMap.put("李", "四");
if (username.equals("macrotea") && password.equals("123456")) {
pass = true;
message = "用户名密码正确";
System.out.println("message:" + message);
} else {
message = "用户名密码不正确";
pass = false;
System.out.println("message:" + message);
}
//只能返回success
return Action.SUCCESS;
}
/*
//其实不用继承ActionSupport,不用重写execute()
public String execute(){
// do someting
}
这样也可以的,不过已经养成了手贱的习惯
*/
}
?3.jsp,通过ff3.6,ie7+
<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.util.*" session="true"%>
<%@ page import="java.text.*" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>set your title</title>
<script src="/js/jquery-1.3.2.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
//$("#loginForm #submit").click(function(event){
$("#loginForm").submit(function(event){
//必须的,无论你是$("#loginForm #submit").click(function(event){
//阻止默认行为再进行ajax提交
event.preventDefault();
$.ajax({
type: "POST",
//我是使用struts2+struts2-json-plugin-2.2.1.jar的,这些都不用设置
//contentType: "text/html;charset=utf-8",
//contentType: "application/json;charset=utf-8",
url: "/json/loginByAjax",
data: {
username:$("#username").val(),
password:$("#password").val()
},
success: function(data){
$("#result").html(data);