`
tianmingqi
  • 浏览: 118584 次
  • 性别: Icon_minigender_1
  • 来自: 河南郑州
社区版块
存档分类
最新评论

struts 2.0 与JSON插件

阅读更多

虽然struts 2.0使用的ajax框架是Dojo和DWR,但是,在使用了JSON后就开始喜欢上它了 ,当struts2.0溶入了JSON插件后就可以允许我们在action中返回json类型的结果(Result)。

这样使得DWR在简易性和灵活性上都比不上JSON插件,所以JSON插件值得向大家双手推荐。在这里要感谢JSON的创始人Musachy Barroso等同志的无私奉献。下面看一个例子:

一:下载JSON插件。

http://code.google.com/p/jsonplugin/downloads/list下载JSON插件的JAR包,并将其加入到WebContent\WEB-INF\lib下。

二:编写action:

package test;

import java.util.HashMap;
import java.util.Map;

import com.googlecode.jsonplugin.annotations.JSON;
import com.opensymphony.xwork2.Action;

public class JSONExample {
    private String field1 = "田明启";
    private int[] ints = {10, 20};
    private Map map = new HashMap();
    private String customName = "custom";

    //'transient' fields are not serialized
    private transient String field2;

    //fields without getter method are not serialized
    private String field3;

    public String execute() {
        map.put("John", "Galt");
        return Action.SUCCESS;
    }

    public String getField1() {
        return field1;
    }

    public void setField1(String field1) {
        this.field1 = field1;
    }

    public int[] getInts() {
        return ints;
    }

    public void setInts(int[] ints) {
        this.ints = ints;
    }

    public Map getMap() {
        return map;
    }

    public void setMap(Map map) {
        this.map = map;
    }

    @JSON(name="newName")
    public String getCustomName() {
        return this.customName;
    }
}

 

三:配置action

  <package name="Struts2_AJAX_DEMO" extends="json-default">
        <action name="JSONExample" class="test.JSONExample">
        	<result type="json"/>
        </action>          
   </package>

 

四:一个测试的页面

<!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>
    <title>JSON Plugin</title>
    <script type="text/javascript">    
    var bXmlHttpSupport = (typeof XMLHttpRequest != "undefined" || window.ActiveXObject);
     
    if (typeof XMLHttpRequest == "undefined" && window.ActiveXObject) {
        function XMLHttpRequest() {
            var arrSignatures = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0",
                                 "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP",
                                 "Microsoft.XMLHTTP"];
                             
            for (var i=0; i < arrSignatures.length; i++) {
                try {        
                    var oRequest = new ActiveXObject(arrSignatures[i]);            
                    return oRequest;        
                } catch (oError) { /*ignore*/ }
            }          
    
            throw new Error("MSXML is not installed on your system.");               
        }
    }    
            
    function showdata() {        
        if(bXmlHttpSupport) {
            var sUrl = 'JSONExample.action';
            var oRequest = new XMLHttpRequest();
            oRequest.onreadystatechange = function() {
                if(oRequest.readyState == 4) {                    
                    var data = eval('(' + oRequest.responseText + ')');
                    var element= document.getElementById('tttt');
                    element.innerHTML = data.field1+","+data;
                }
            };
            oRequest.open('POST', sUrl);
            oRequest.send(null);
        }
    }
    </script>
</head>
<body>
    <input type="button" value="点我吧" onclick="showdata()" />
    <div id="tttt"></div>
</body>
</html>

上面代码最关键的是

var data = eval('(' + oRequest.responseText + ')');

 这句,它将json数据解析为javascript数据了。

oK,运行程序 点击按钮后,显示如下:

  • 大小: 20 KB
分享到:
评论

相关推荐

    struts 2.0 与 2.1 需要的json插件

    总的来说,Struts 2的JSON插件是实现JSON支持的关键组件,它使得Struts 2能够无缝地与JSON数据交互,从而提高了Web应用的交互性和效率。正确配置和使用JSON插件,可以帮助开发者构建更高效的AJAX应用或RESTful API。

    struts2.0jar包

    Struts2.0 jar包是Java Web开发中的一个重要组件,它是Apache Struts框架的一个特定版本。Struts2是一个基于MVC(Model-View-Controller)设计模式的开源框架,用于构建可维护性高、结构清晰的Java应用。该框架极大...

    Struts2.0 Jar包

    Struts2.0是一款强大的Java Web框架,它在MVC(Model-View-Controller)设计模式的基础上,提供了灵活且强大的架构来构建企业级的Web应用程序。这个“Struts2.0 Jar包”包含了所有必要的库文件,使得开发者可以便捷...

    三大框架中文文档中的struts2.0开发手册(程序员必看)

    5. **插件机制**:Struts2.0有丰富的插件库,如Freemarker和Velocity模板引擎,JSON和XML数据处理,以及各种验证框架的集成,大大增强了框架的功能和灵活性。 6. **异常处理**:Struts2.0提供了全局的异常处理机制...

    struts2.0的 jar包和源文件

    Struts2.0 是一个非常流行的Java Web框架,它基于MVC(Model-View-Controller)设计模式,用于构建高效、可维护的企业级应用程序。这个压缩包包含了Struts2.0的核心jar文件以及可能的源代码,使得开发者可以直接查看...

    Struts_2.0从入门到精通

    Struts2.0通过集成JSON插件和Dojo库,实现了与AJAX技术的深度结合。开发者可以利用、、等标签,轻松实现异步请求、自动补全等功能,提升用户体验。 十四、Struts2.0的高级主题和自定义功能 Struts2.0不仅在基础...

    struts2.0所有jar包

    7. **插件系统**:Struts2拥有丰富的插件体系,如JSON插件、Freemarker插件、Spring插件等,方便扩展和集成其他功能。 接下来,让我们看看压缩包中的jar文件列表,这些文件是Struts2框架运行的基础: 1. `xwork-...

    struts2.0的基本jar包

    7. **struts2-json-plugin.jar**:该插件支持JSON(JavaScript Object Notation)数据交换格式,使Struts2可以方便地与JSON格式的数据进行交互,这对于RESTful API的开发非常有用。 8. **struts2-spring-plugin.jar...

    Struts2.0中文教程

    9. **插件与第三方库集成**:探讨Struts2.0的插件系统,如Struts2-dojo-plugin、Struts2-json-plugin等,以及如何与其他流行库如Hibernate、Spring等进行集成。 10. **最佳实践与性能优化**:提供在实际开发中遵循...

    struts2.0jar包及struts2.0与spring的整合jar包.rar

    接下来,我们关注Struts2.0与Spring的整合。Spring是一个全面的Java企业级应用框架,提供了依赖注入(DI)、面向切面编程(AOP)等功能。整合Struts2和Spring的主要目的是实现更灵活的控制层和更好的服务管理。 1. ...

    struts2.0所有的JAR包

    对于Struts2.0框架来说,这些JAR文件包含了核心库、依赖库和插件,它们各自扮演着重要的角色: 1. **核心库**:Struts2的核心库主要包含以下组件: - `struts2-core.jar`:这是Struts2框架的基础,包括Action、...

    struts 2.0与ajax 的实例

    在这个实例中,我们将深入探讨 Struts 2.0 和 AJAX 如何协同工作,以及如何使用 JSON(JavaScript Object Notation)作为数据交换格式。 首先,理解 Struts 2.0 框架的核心概念至关重要。它提供了一个灵活的控制器...

    struts2-json-plugin

    struts2-json-plugin,Struts JSON插件

    struts2.0中文教程

    此外,Struts2.0提供了丰富的插件机制,如Tiles插件可以方便地管理页面布局,Freemarker或Velocity模板引擎可以替换JSP作为视图层,JSON插件可以支持Ajax请求,以及Spring插件实现与Spring框架的无缝集成等。...

    Struts2.0.11.1所有JAR包

    总的来说,Struts2.0.11.1是一个强大的MVC框架,它的各种插件和库为开发者提供了丰富的功能,帮助他们快速、高效地构建企业级Web应用程序。然而,随着技术的发展,Struts2逐渐被Spring Boot等现代框架所取代,但其...

    struts2.0基础和入门

    11. **插件系统**:Struts2.0拥有丰富的插件库,如Freemarker和Velocity视图技术、JSON支持、Spring整合等,可以极大地扩展框架的功能。 学习Struts2.0的过程中,实践是非常重要的。初学者应该通过阅读提供的文档,...

    struts2.0中文帮助手册

    8. **插件系统**:Struts2.0支持插件扩展,如Freemarker和Velocity模板引擎,以及Ajax支持等。 9. **最佳实践与性能优化**:提供关于代码组织、性能调优和安全性的建议,帮助开发者写出高效且安全的Struts2.0应用。...

    最新struts2.0教程

    通过Struts2的JSON插件,开发者可以轻松地实现异步请求,更新部分页面,提升用户体验。 在学习这个教程时,你可以通过"max struts.exe"这个文件深入了解和实践上述知识点。该文件可能是模拟的Struts2.0开发环境或者...

    struts2.0必须包下载

    Struts2的JSON插件使得Action可以直接返回JSON响应,便于与Ajax和前端JavaScript交互,提升用户体验。 5. ** strut2-tiles-plugin**: Tiles是用于页面布局的一个框架,与Struts2结合可以方便地构建复杂页面结构。...

Global site tag (gtag.js) - Google Analytics