`

原生的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/>
  公司:&nbsp;
  <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" checked  value="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" checked  value="1"/>
  凉城:
  <input type="radio" name="address" id="address"/><br/>
  内蒙古:
  <input type="radio" name="address" id="address"/><br/>
 
  <input type="button"  value="提交" onclick="SendAndReturn()"/>
</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 楼 蜀山红日 2012-08-10  
怎样让action返回自身属性的json而不是模型驱动bean的?

相关推荐

    mysql+struts+ibatis(2)

    在“ibatis(2)”中,可能要学习动态SQL、结果映射、事务管理以及如何将iBATIS与Struts整合,如通过ActionForm或ModelDriven接口传递数据。 4. **文件名称列表解析**: - `aspPay`:可能是一个处理支付相关业务的...

    OA系统+struts2

    系统管理模块通常包含用户管理、角色分配、权限设置等,这些功能可以通过Struts2的表单提交和模型驱动(ModelDriven)模式实现。信息交流模块可能涉及到邮件、公告发布等功能,可以利用Struts2的插件体系,如...

    封装通用的Spring3+Struts2+JPA的CRUD 通用分页实现

    在JPA中,可以使用`TypedQuery`的`setFirstResult`和`setMaxResults`方法实现分页查询,配合Struts2的Action和ModelDriven接口,将分页信息传递到视图层展示。 综上所述,这个项目旨在创建一个高度可复用的代码结构...

    hibernate4.3.5+spring4.0.6+struts2的全部jar包

    5. **ModelDriven或FormDriven模式**:在Struts2 Action中利用Spring的依赖注入获取Service层对象,进行业务处理。 在实际开发中,SSH框架的整合能充分利用各自的优势,提供高效、灵活且易于维护的Java Web解决方案...

    hibernate+struts后台分页

    Struts2中的Action类是业务逻辑的入口点,我们可以在这里处理分页请求,然后将结果封装成ModelDriven或ValueStack对象,传递给视图层展示。例如,Action类可能包含以下代码: ```java public class TestAction ...

    STRUTS2:零配置插件CodeBehind

    Struts2提供多种方式来处理参数绑定问题,包括传统的直接赋值、ModelDriven接口以及Prepareable接口。 ##### 4.1 ModelDriven接口 实现`ModelDriven`接口可以让开发者避免在请求参数中添加额外的前缀。通过实现`...

    jsp+Struts+hibernate基本框架搭建demo

    在搭建过程中,你需要创建JSP页面来展示从模型获取的数据,并设置相应的ActionForm或者ModelDriven对象,以便Struts框架可以处理用户提交的请求。 **2. Struts框架** Struts是一个基于MVC模式的开源Java EE框架,...

    flex+Struts实例

    2. **Struts2框架**:理解Struts2的配置文件struts.xml,包括Action配置、拦截器设置、结果类型定义等。同时,需要掌握Action类的编写,以及ModelDriven、Preparable等接口的使用。 3. **AMF通信**:在Flex与Struts...

    spring+hibernate+struts(实例)

    Spring、Hibernate和Struts是Java Web开发中的三大框架,它们各自负责不同的职责,共同构建了一个高效、灵活的应用架构。这个实例项目"spring+hibernate+struts(实例)"是这三个框架协同工作的典范,用于实现基本的...

    Struts2接收参数ModelDriven

    在Struts2中,ModelDriven是它提供的一种处理模型数据的机制,能够帮助开发者更方便地管理和传递Action类中的模型数据。这篇博客文章可能详细探讨了如何在Struts2中使用ModelDriven接口来接收和处理请求参数。 ...

    Spring+Struts+Hibernate开发手册.doc

    Spring+Struts+Hibernate开发手册 本文将介绍SSH框架的开发手册,主要包括Spring、Struts和Hibernate三大模块的知识点。 一、目录结构 在SSH框架中,项目的目录结构主要包括以下几个部分: * doc目录:存放项目...

    hibernate+struts开发技巧

    2. **配置文件**:struts-config.xml用于定义Action、ActionForm、ActionMapping等,现在通常使用更加灵活的struts2的struts.xml配置。 3. **拦截器**:Struts2引入了拦截器,可以实现通用功能,如权限验证、日志...

    Spring + Struts + Hibernate 的完整 MyEclipse 项目源码

    4. **ModelDriven和ValueStack**:Struts提供了ModelDriven接口,简化了Action中模型数据的处理,而ValueStack则用于存储请求和模型数据。 **Hibernate框架** Hibernate是一个强大的ORM(对象关系映射)框架,它将...

    MyEclipse下开发Spring+Struts+Hibernate的详解上集.zip

    Struts处理用户请求,调用Spring管理的Action,Action执行业务逻辑后,通过ModelDriven或ValueStack将结果传递给视图层。 通过本教程的上集,你将了解如何在MyEclipse环境中搭建SSH环境,创建基本的MVC架构,并理解...

    struts2传递参数及ModelDriven的使用示例

    本示例主要讲解了如何在Struts2中传递参数以及使用ModelDriven模式。首先,我们来逐一解析涉及的知识点。 1. **Struts2框架**:Struts2是Apache软件基金会的一个开源项目,它是基于MVC设计模式的Web应用框架,旨在...

    spring+struts

    &lt;artifactId&gt;struts2-spring-plugin &lt;version&gt;... ``` 此外,我们还可以利用Spring的ModelDriven模式,将Action与业务模型直接关联,简化代码: ```java public class ExampleAction extends ModelDriven...

    struts2+spring练习

    5. **ModelDriven模式**:在Struts2中,ModelDriven模式可以帮助简化Action类的编写。通过实现`ModelDriven`接口,Action类可以自动绑定模型对象到请求参数,减少代码量。 6. **Service层**:在Spring中,业务逻辑...

    Struts2_ModelDriven接收参数(项目案例及视频)

    在Struts2中,ModelDriven接口是一个非常实用的功能,它可以帮助我们更方便地处理Action类中的模型数据。这个项目案例和视频教程主要针对初学者,旨在深入理解如何使用Struts2的ModelDriven机制来接收和传递参数。 ...

    Struts2视频教程

    ### Struts2核心知识点解析 #### 一、Struts2框架概述 - **定义与特点**:Struts2是一款基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它继承了Struts1的优点,同时在设计上更加灵活、易用,...

Global site tag (gtag.js) - Google Analytics