stevenjohn 发表于 2013-1-29 08:52:34

原生的Ajax+struts2+js+ModelDriven

//ReceiveAction.java
package com.abin.ajax.action;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import com.abin.ajax.bean.UserBean;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

public class ReceiveAction extends ActionSupport implements ModelDriven{
private String result;
private UserBean user;//UserBean是一个实体类
public Object getModel(){
if(null==user){
   user=new UserBean();
}
return user;
}
public String receive(){
HttpServletResponse response=ServletActionContext.getResponse();
String username=user.getUsername();
String password=user.getPassword();
String company=user.getCompany();
String work=user.getWork();
String address=user.getAddress();

try {
   if(username!=null){
    System.out.println("username="+username);
    result="1";
    response.getWriter().write("1");
    response.getWriter().flush();
    response.getWriter().close();
    return "json";
   }
} catch (Exception e) {
   e.printStackTrace();
}
return null;
}


public UserBean getUser() {
return user;
}
public void setUser(UserBean user) {
this.user = user;
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}

}



//struts.xml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
   
<struts>
<package name="userAjax" extends="json-default" namespace="/" >
<action name="receive" method="receive" class="com.abin.ajax.action.ReceiveAction">
   <result name="json" type="json"></result>
</action>
</package>


</struts>






//web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>website</display-name>

<filter>
      <filter-name>struts2</filter-name>
      <filter-class>
            org.apache.struts2.dispatcher.FilterDispatcher
      </filter-class>
    </filter>

    <filter-mapping>
      <filter-name>struts2</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>





//index.jsp


<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>清风少年</title>
<link href="css/page/html.css" type="text/css" rel="stylesheet"></link>
</head>
<style type="text/css">
#nav li {
display: inline;
list-style-type: none;
padding: 5px;
}
</style>
<script type="text/javascript" src="js/first/public.js"></script>


<body>
<ul id="nav">
<li><a href="http://www.itpuji.net.cn">首页</a></li>
<li><a href="#">博客</a></li>
<li><a href="#">相册</a></li>
<li><a href="#">圈子</a></li>
<li><a href="#">设置</a></li>
</ul>
<br/>
<span id="txt" ></span>
<br/>
<div id="practise">
用户名:<br/>
<input type="text" name="username" id="username"/><br/>
密码:<br/>
<input type="text" name="password" id="password"/><br/>
<hr/>
公司: 
<select id="company" name="company">
   <option value="abin">abin</option>
   <option value="bing">bing</option>
</select>
<br/>
<hr/>
职业:<br/>
农民:
<input type="checkbox" name="work" id="work" checkedvalue="1"/>
男人:
<input type="checkbox" name="work" id="work"/><br/>
诗人:
<input type="checkbox" name="work" id="work"/>
歌手:
<input type="checkbox" name="work" id="work"/><br/>
<hr/>
家庭住址:<br/>
中国:
<input type="radio" name="address" id="address" checkedvalue="1"/>
凉城:
<input type="radio" name="address" id="address"/><br/>
内蒙古:
<input type="radio" name="address" id="address"/><br/>

<input type="button"value="提交" />
</div>


</body>
</html>







//public.js
//创建Ajax请求
function CreateXmlRequest(){
var xmlHttp=false;
if(window.XMLHttpRequest){
   xmlHttp=new XMLHttpRequest();
}else if(window.ActiveXObject){
   try{
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
   }catch(e1){
    try {
   xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    } catch (failed) {
   xmlHttp=false;
    }
   
   }
}
return xmlHttp;
}

function SendAndReturn(){
var username=document.getElementById("username").value;
var password=document.getElementById("password").value;
var company=document.getElementById("company").value;
var work=document.getElementById("work").value;
var address=document.getElementById("address").value;

var request=CreateXmlRequest();
if(!request){
document.getElementById("txt").innerHTML="当前浏览器不支持";
}else{
document.getElementById("txt").innerHTML="创建xmlHttp成功";
request.open("post","receive?username="+username+"&password="+password+"&company="+company+"&work="+work+"&address="+address,true);
request.send();
request.onreadystatechange=function(){
   if(request.readyState==4){
    if(request.status==200){
   var data=request.responseText;
   
   alert("data="+data);
   if(data=="1"){
      alert("username!=null");
   }
   document.getElementById("txt").innerHTML=request.responseText;
    }
   }
}
}




}
页: [1]
查看完整版本: 原生的Ajax+struts2+js+ModelDriven