`

prototype+json+struts2 ajax应用

阅读更多
<%@page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
  <head>
    <title>test</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">   
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">

    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>
    <script type="text/javascript" src="js/common/prototype.js"></script>
    <script language="javascript" type="text/javascript">
        function getJson()
        {
             var url = 'JSONExample.action';
             var pars = '';
             var myAjax = new Ajax.Request(url,{
                 method:'get',
                 encoding:'UTF-8',
                 parameters:pars,
                 onComplete:function(json){
                     var JSONobj=eval('('+ json.responseText +')');
                     var html="" ;
                     var menuid="";                  
                     html += "<li>" + JSONobj.newName +"</li>";                   
                     var ints = JSONobj.ints;
                     for (var i=0; i< ints.length; i++){
                        html += "<li>" + ints[i] +"</li>";
                     }           
        
                     var map = JSONobj.map;
                     for(array in map){
                        html += "<li>" + array + ":" + map[array] +"</li>";
                     }                   
                     $("item").innerHTML=html;
                 }
             }    
        }
</script>
    <body>
      <input type="button" name="button" id="button" onclick="getJson()"value="点击测试">
      <div id="item"></div>
    </body>
</html>

 

struts.xml 配置文件

 

<package name="example"  extends="json-default">  
  <action name="JSONExample" class="jSONExample" method="executeJson">  
     <result type="json"/>  
   </action>  
</package>
 

这里使用到了 json struts2 结合的插件,请自己去下载那个 jar

 

action

package action;
 
import java.util.HashMap;
import java.util.Map;
import com.googlecode.jsonplugin.annotations.JSON;
import com.opensymphony.xwork2.ActionSupport; 
 
public class JSONExample extends ActionSupport {
    /**
     * 
     */
    private static final long serialVersionUID = 4588482034890372410L;
    // 封装请求参数的三个属性
     //format=  例如"yyyy-MM-dd'T'HH:mm:ss"。 
    private String field1;
    private transient String field2;
    
    private String field3;
    // 封装处理结果的属性
    private int[] ints = { 10, 20 };
    @SuppressWarnings("unchecked")
    private Map map = new HashMap();
    private String customName = "custom";
 
    @SuppressWarnings("unchecked")
    public String executeJson() {
        map.put("name1", "sinlff1");
        map.put("name2", "sinlff2");
        map.put("name3", "sinlff3");
        return SUCCESS;
    }
    
    // 三个请求参数对应的setter和getter方法
    @JSON(serialize = false) //format
    public String getField1() {
        return field1;
    }
 
    public void setField1(String field1) {
        this.field1 = field1;
    }
 
    @JSON(serialize = false)
    public String getField2() {
        return field2;
    }
 
    public void setField2(String field2) {
        this.field2 = field2;
    }
 
    @JSON(serialize = false) //format
    public String getField3() {
        return field3;
    }
 
    public void setField3(String field3) {
        this.field3 = field3;
    }
 
    public void setCustomName(String customName) {
        this.customName = customName;
    }
 
    // 封装处理结果的属性的setter和getter方法
    public int[] getInts() {
        return ints;
    }
 
    public void setInts(int[] ints) {
        this.ints = ints;
    }
 
    @SuppressWarnings("unchecked")
    public Map getMap() {
        return map;
    }
 
    @SuppressWarnings("unchecked")
    public void setMap(Map map) {
        this.map = map;
    }
 
    // 使用注释语法来改变该属性序列化后的属性名
    @JSON(name = "newName")
    public String getCustomName() {
        return this.customName;
    } 
}
 

 

 

分享到:
评论

相关推荐

    struts2 json Ajax 整合所需全部jar包.zip

    Struts2、JSON和Ajax是Web开发中的三个关键组件,它们在构建动态、交互式的Web应用程序中发挥着重要作用。Struts2是一个强大的MVC(Model-View-Controller)框架,用于组织和管理Java web应用程序的结构。JSON...

    JSON实例(ajax+struts)

    在AJAX(Asynchronous JavaScript and XML)和Struts框架结合使用时,JSON常作为数据传输的载体,替代XML,因为它的体积更小,解析速度更快。 在上述实例中,开发者使用了JSON库`json-lib-2.1-jdk15.jar`来处理JSON...

    Struts 2.1-AJAX-JSON实例

    例如,`prototype.js`或`script.aculo.us`库用于创建AJAX请求,而`json2.js`可能用于在浏览器不支持JSON时提供JSON对象。 3. **Struts 2配置文件**:可能包含对AJAX插件的配置,以及Action的配置,指定哪些Action...

    struts2+ajax详解pdf清晰

    2. **JavaScript库:** 在实际应用中,开发者通常使用jQuery、Prototype等JavaScript库简化Ajax操作,它们提供了更友好的API,例如jQuery的$.ajax()方法。 3. **DOM操作:** Ajax获取数据后,通过修改DOM(Document...

    struts+ajax学习

    Struts和Ajax是两种在Web开发中广泛应用的技术。Struts是一种基于MVC(Model-View-Controller)设计模式的Java Web框架,它主要用于构建企业级的、可维护性高的Web应用。而Ajax(Asynchronous JavaScript and XML)...

    Struts与Ajax.rar

    1. **Struts2 AJAX插件**:Struts2提供了官方的AJAX插件,它基于Prototype库,允许开发者轻松地将Ajax功能添加到Action中。通过使用此插件,开发者可以创建响应式表单和无刷新操作。 2. **Json结果类型**:Struts2...

    struts2-json-plugin-2.3.8.jar

    这个插件极大地增强了Struts2应用程序的可交互性和响应速度,尤其在开发Web应用时,提供与前端进行JSON数据交换的能力至关重要。在给定的资源中,我们看到的是`struts2-json-plugin-2.3.8.jar`,这是该插件的一个...

    Struts 2与AJAX

    Struts 2与AJAX是Web开发领域中的两个关键技术,它们在构建动态、交互式的Web应用程序中发挥着重要作用。Struts 2是一个基于MVC(Model-View-Controller)设计模式的Java EE框架,它提供了丰富的特性来简化企业级...

    Struts On Ajax

    3. **Struts与Ajax的结合**:书中会讨论如何在Struts中使用Ajax库,如Prototype、jQuery或Dojo,以及如何创建自定义的Ajax动作。这通常涉及到在JSP页面中添加Ajax调用,以及在Struts Action中处理这些请求。 4. **...

    Ajax+struts用户验证

    **Ajax+Struts用户验证步骤** 1. **前端准备**: - **原始方法**:使用JavaScript的XMLHttpRequest对象创建一个HTTP请求,设置请求方法、URL、数据等参数,然后监听状态变化,处理服务器响应。 - **Prototype库**...

    ajax框架与struts框架的最佳结合讲解

    3. **JSON响应**:Struts2支持JSON结果类型,可以直接将Action的返回值转换为JSON格式,前端通过Ajax请求获取这个JSON数据,然后动态更新DOM元素。 4. **分离视图**:利用Ajax,我们可以将视图部分分解为多个独立的...

    java+servlet+ajax程序

    2. JSON:Ajax常用的数据交换格式,比XML更轻量级,易于读写。 3. JavaScript库:jQuery、Prototype等库简化了Ajax的使用,提供了一系列方便的API。 四、Java + Servlet + Ajax 结合应用 1. 用户交互:Ajax允许...

    SSI中使用Ajax进行操作的例子(prototype.js)

    添加完成后,Action可以通过Struts2的JSON插件或自定义Result类型将响应封装为JSON格式,方便Prototype.js解析。 总结来说,本示例通过整合SSI、Ajax(Prototype.js)以及后端的Struts2、Spring和Ibatis框架,展示...

    struts2的详细资料

    开发者可以使用Struts2的Ajax插件,如JQuery插件,或者直接利用JavaScript库(如jQuery或 Prototype)来发送AJAX请求。在Action类中,可以定义一个特殊的方法处理AJAX请求,并返回JSON对象,然后前端JavaScript代码...

    开发基于Struts Spring Hibernate Ajax的网上信息发布平台(Struts Hibernate Spring Ajax)--Chapter3

    3. **Ajax的应用**:学习如何使用jQuery或其他库(如 Prototype 或 AngularJS)来创建Ajax请求,以及如何在服务器端处理这些请求,并返回JSON或XML数据给前端。 4. **异常处理和事务管理**:了解如何在Spring中配置...

    mavenSSH+Ajax2

    2. **JSON数据交换**:相比于XML,JSON(JavaScript Object Notation)在Ajax 2中更常用于数据传输,因为其结构简单,解析速度快,更适应于JavaScript环境。 3. **DOM操作**:Ajax 2允许动态修改HTML文档对象模型...

    ajax struts 例子

    **Ajax与Struts整合应用详解** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新,大大提升了...

    ajax整合struts

    2. **Struts Action响应**:在服务器端,Struts Action需要处理Ajax请求,返回JSON或XML数据,而不是跳转到新的页面。 3. **配置Action**:在`struts-config.xml`中,为Ajax请求配置特定的Action,设置返回类型为...

    stuct ajax

    通过使用Struts2的JQuery插件,开发者可以在Struts2应用中无缝地利用jQuery的Ajax功能。 3. **Action的Ajax响应**:在Struts2中,Action类可以被配置为返回XML、JSON等格式的数据,这些数据可以作为Ajax请求的响应...

Global site tag (gtag.js) - Google Analytics