`
zhangfeilo
  • 浏览: 400097 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
社区版块
存档分类
最新评论

struts2如何返回json和处理json

阅读更多

需要的jar包是struts2.1.8,json插件就是2.1.8struts2-json-plugin-2.1.8.1,因为json的第三方插件有很多,例如json-lib-2.4-jdk15json虽然说可以实现json的处理,但是相对来说可能是有点麻烦,而S2自带的插件为简单一点。

 实例:(分页查询和添加)

 

 

 

Struts.xml

<packagename="default"extends="json-default">

<actionname="fieldManage_*"method="{1}"lass="fieldManageAction">

       <resulttype="json">

           <paramname="includeProperties">totalCount,data.*</param>

       </result>

       <resultname="operaFieldmanage"type="json">

           <paramname="includeProperties">success</param>

       </result>

       </action>

</package>

extends=”json-default”这边必须这样设置才能处理json

1.<action name="test" class="com.TestAction" method="test">  

  <result type="json" /><!--actionbean属性以json字符串返回浏览器-->  

  </action>

2.只要继承extends="json-default"json拦截器是默认配置上的,可以不配。result设置成json之后,容器会把action的属性自动封装到一个json对象中(json拦截器来做),然后调用jscallback方法.返回json数据

3.如果按照1中的配置。你会发现前台返回的json字符串,是把action中的所有属性全部转化为json字符串返回给浏览器了(甚至有时候返回不了结果,也不报错,后台执行了,但前台执行不到callback function),但是我们有时候需要根据实际情况返回部分结果,如何对json的结果进行定制输出呢?result提供了一些参数替你解决这个问题,一般情况下用的最多的就是includeProperties参数和excludeNullProperties参数。当然还有其他的方法,如给pojo的属性加json注解。

4.includeProperties参数:输出结果中需要包含的属性值,这里正则表达式和属性名匹配,可以用“,”分割填充多个正则表达式。这个参数直接返回对象的json数据,前台不需要eval转换,<param name="root">result</param>则不同,需要前台进行eval转换

如:输出data对象下面的所有属性总条数。

<resulttype="json">

   <paramname="includeProperties">totalCount,data.*</param>//*表示多值如Map,[]

</result>

5.excludeProperties参数:输出结果需要剔除的属性值,也支持正则表达式匹配属性名,可以用“,”分割填充多个正则表达式,类同includeProperties

6.对一些属性的特殊处理可在action代码中去特殊的序列化,如:

[6.1]默认情况下以get方法开头的都会序列化,如果不想序列化,action中的方法要打上注解
@JSON(serialize=false)

[
6.2]如果在属性get方法上面加@JSON(name="newName"),则返回的json数据中名称是指定的新名称


[
6.3]@JSON(format ="yyyy-MM-dd'T'HH:mm:ss")设置用于格式化输出、解析日期表单域的格式。

[
6.4]@JSON(deserialize=true)设置是否反序列化该属性

注意:为了避免不必要的麻烦,action里面要有有get开头的方法


js获取json值

 //使用JSON对象将服务器响应解析成JSON对象

                    var res = JSON.parse(request.responseText);

                    //遍历JSON对象的每个属性

                    for(var propName in res)

                    {

                        $("show").innerHTML += propName + " --> "

                            + res[propName] + "<br />";

                    }

数组代替数组集合 Map[] users=new Map[100]

,用map代替object Map obj1=new HashMap();

obj1.put("id",val);

obj1.put("name",val);

obj1.put("sex",val);

users[0]=obj1;

users[1]=obj2;...

 

 var users=res["users"];

                    for(var j=0;j<users.length;j++){

alert("id:"+users[j]["id"]+",name:"+users[j]["name"]);

}

 

3
1
分享到:
评论
1 楼 funnyseal 2013-05-14  
好文顶一个、、、

相关推荐

    struts2返回JSON数据的两种方式

    在第二种方式中,Struts2会自动处理返回的`jsonData`属性,并将其转换为JSON格式发送给前端。这种方式更加简洁,无需手动操作`response.getWriter().print()`。 总结,Struts2中返回JSON数据有两种主要方式:一是...

    Struts2返回JSON对象的方法总结完整实例

    如果是作为客户端的HTTP+JSON接口工程,没有JSP等view视图的情况下,使用Jersery框架开发绝对是第一选择。... Struts2返回JSON有两种方式:1.使用Servlet的输出流写入JSON字符串;2.使用Struts2对JSON的扩展。

    struts2+json

    请求的目标是一个Struts2 Action,Action处理完业务逻辑后,通过JSON返回数据。 为了实现这一功能,Action类需要包含将要序列化成JSON的属性,并且需要配置对应的Action Mapping。在struts.xml配置文件中,你可以...

    struts2返回json

    Struts2是一个非常流行的Java Web框架,...以上就是关于Struts2返回JSON数据类型的基本介绍和实现步骤。通过这些步骤,你可以轻松地在Struts2应用中实现从服务器向客户端传递JSON数据,从而提升Web应用的交互性和性能。

    json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar

    这个插件允许开发者在Struts 2中轻松地创建能够返回JSON的Action,使得前端(通常使用JavaScript库如jQuery)可以获取到JSON数据并进行进一步处理。 现在我们来详细讨论这两个库在实际应用中的作用: 1. **json-...

    struts2-json-plugin-2.3.24-API文档-中文版.zip

    赠送jar包:struts2-json-plugin-2.3.24.jar; 赠送原API文档:struts2-json-plugin-2.3.24-javadoc.jar; 赠送源代码:struts2-json-plugin-2.3.24-sources.jar; 赠送Maven依赖信息文件:struts2-json-plugin-...

    struts2与json整合

    该插件包含处理JSON相关的类库,使得Struts2能够识别并处理JSON格式的数据。具体来说,插件中的`struts-plugin.xml`配置文件定义了一个名为`json-default`的包,其中包含了`JSONResult`和`JSONInterceptor`两种结果...

    struts2-json-plugin

    struts2-json-plugin,Struts JSON插件

    struts2-json-plugin源码

    `struts2-json-plugin`是Struts2的一个插件,它使得Struts2能够处理JSON请求和响应,无需额外的配置或库。这个插件不仅包含了源码,还包含了必要的配置文件和类,使得开发者可以深入理解其工作原理并进行自定义扩展...

    struts2返回json数据的方法一 使用json-default

    在客户端,如JavaScript,可以通过AJAX请求获取这个JSON数据,并进行解析和处理。例如,使用jQuery的`$.ajax`方法: ```javascript $.ajax({ url: 'myAction', type: 'POST', dataType: 'json', success: ...

    struts2-json

    Struts2支持JSON的处理,使得开发人员能够轻松地将Java对象转换为JSON格式,然后发送到客户端,或者将JSON数据解析成Java对象。下面我们将深入探讨Struts2集成JSON的相关知识点。 1. **Struts2 JSON插件**: ...

    Struts2+Json+Android简单实现

    Struts2、JSON和Android是三个在Web应用开发中至关重要的技术。本示例将详细介绍如何结合这三者实现一个简单的交互。 首先,Struts2是一个基于MVC(Model-View-Controller)架构的Java Web框架,它简化了创建动态、...

    struts2-json-plugin-2.3.8.jar

    这个插件主要的功能是让Struts2应用程序能够轻松地处理JSON(JavaScript Object Notation)数据格式,使得Web应用可以方便地进行JSON序列化和反序列化,从而实现与前端的Ajax交互。 Struts2是一个基于Model-View-...

    Struts2 ajax json使用介绍

    在后端,我们需要创建一个Struts2 Action类,用于处理Ajax请求并返回JSON数据。例如,创建一个名为`AjaxAction.java`的类: ```java import com.opensymphony.xwork2.ActionSupport; import org.apache.struts2....

    struts2所需的包和Struts2_json所需包

    - `jackson-*.jar` 或 `gson-*.jar`:这两个库提供了JSON对象和Java对象之间的自动转换,Struts2可以与它们集成,使得JSON处理更加便捷。 4. **Servlet容器相关库**:由于Struts2是基于Servlet API的,因此需要`...

    Struts2与JSON

    // 处理返回的JSON数据... }, error: function(error) { console.error('请求失败:', error); } }); }); ``` 5. **使用所需jar包和JS文件**: 确保项目包含以下依赖: - Struts2的核心库(如`struts2-core....

    Struts2 返回json对象

    Struts2 返回 JSON 对象 Struts2 是一个基于 MVC 模式的 Java Web 应用程序框架,它提供了一个强大的机制来处理用户的请求和响应。在 Struts2 中,返回 JSON 对象是通过 JSON 插件来实现的,这个插件提供了一个可以...

    AJAX和struts2传递JSON数组

    在本场景中,我们将探讨如何使用AJAX来传递JSON数组,并在Struts2的Action中接收和处理这些数据。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析...

    Struts2_JSON_Demo

    // 解析并处理返回的JSON数据 var users = data.users; for (var i = 0; i ; i++) { // 在页面上显示用户信息 } }); ``` 5. **模型驱动和JSON**:Struts2支持模型驱动,可以将Action类和请求参数绑定在一起...

Global site tag (gtag.js) - Google Analytics