`
zengshaotao
  • 浏览: 787469 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JSON中result的root属性

 
阅读更多

 

struts2.1.8以后,加入了json的plugin插件包,使用时仅需把插件包(struts2-json-plugin-2.2.1.1.jar)放入到项目中的WEB-INF/lib下面就可以。这里重点解释返回结果result中的root参数的含义,相对于其他参数,例如includeProperties, excludeProperties,excludeNullProperties等,比较难以理解。
  (1)struts.xml 配置:
  <struts>
  <constant name="struts.i18n.encoding" value="UTF-8" />
  <package name="default" namespace="/" extends="json-default">
  <action name="jsontest" class="com.test.action.JsonJqueryStruts2Action">
  <result name="regInfo" type="json">
  <param name="root">userInfo</param>
  <!-- <param name="includeProperties">userInfo.userId,userInfo.userName</param> -->
  <param name="includeProperties">userId,userName</param>
  <param name="excludeNullProperties">true</param>
  </result>
  </package>
  </struts>
  (2)Action类:类中有一个String类型的属性message,以及一个bean叫UserInfo
  public class JsonJqueryStruts2Action extends ActionSupport {
  private String message; //使用json返回单个值
  private UserInfo userInfo; //使用json返回对象
  ... ...
  (3)表单:form中必须与Action类中的属性名字大小写完全对应,不然会找不到该字段
  <form>
  用户ID:<input name="userInfo.userId" type="text"/><br/>
  用户名:<input name="userInfo.userName" type="text"/><br/>
  ... ...
  (4)json.js文件的ajax方法:
  //向服务器发送表达数据
  $("#regRe").click(function(){
  //把表单的数据进行序列化
  var params = $("form").serialize();
对于中文,注意乱码的处理,前面已经有文章说过了。
  //使用jQuery中的$.ajax({});Ajax方法
  $.ajax({
  url:"jsontest!regUserInfo.action",
  type:"POST",
  data:params,
  dataType:"json",
  success:function(data){
  //清空显示层中的数据
  $("#message").html("");
  //为显示层添加获取到的数据
  //获取对象的数据用data.userInfo.属性
  //$("#message").append("<div><font color='red'>用户ID:"+data.userInfo.userId+"</font></div>")
  //.append("<div><font color='red'>用户名:"+data.userInfo.userName+"</font></div>")
  $("#message").append("<div><font color='greed'>111:"+data.userId+"</font></div>");
  $("#message").append("<div><font color='greed'>222:"+data.userName+"</font></div>");
  if( typeof(data.message)!='undefined' ){
  $("#message").append("<div><font color='greed'>结果:"+data.message+"</font></div>");
  }else{
  $("#message").append("<div><font color='greed'>结果是message没定义!"+data.message+"</font></div>");
  }
  ... ...
  以上是jquery+json+struts2的主要核心配置和代码,请注意struts2配置中指定了result的name="root",所谓root的含义,是指返回的json数据的根为root中指定的bean类,例如此处为userInfo,如果没有指定root属性,则默认使用Action作为返回的json数据的根,区别如下:
  result中使用了root参数后返回的json数据:
  {"userInfo":[
  {"userId":"Patrick", "userName":"123456"}
  ]}
  result中没设置root参数返回Action中的json数据:
  {"data":[
  {"userInfo":[ {"userId":"Patrick", "userName":"123456"} ] },
  {"message":"testMesssageData"}
  ]}
  所以我们要注意,如果设置了root属性之后,<param includeProperties></param>中就应该直接使用userId,userName而非userInfo.userId,userIndo.userName了。
  此外,json.js代码中还展示了遇到类似message等属性返回后是undefined的情况可以使用typeof()!='undefined'进行判断
分享到:
评论

相关推荐

    web项目中json传值

    这里的关键是`&lt;param name="includeProperties"&gt;result&lt;/param&gt;`,它指定了要包含在JSON响应中的属性名称。最终客户端接收到的JSON数据可能类似于`{"result":"ok"}`或`{"result":"no"}`。 ##### 2. JSON数组返回 ...

    C#读取修改Json文件

    在C#编程中,处理JSON(JavaScript Object Notation)文件是一项常见的任务,因为JSON是一种轻量级的数据交换格式,广泛用于API数据传输和配置文件存储。本篇文章将深入探讨如何在C#中读取和修改JSON文件,以及相关...

    cJSON库(json格式字符串进行转化)

    在C语言环境中,处理JSON(JavaScript Object Notation)数据是一项常见的任务。JSON作为一种轻量级的数据交换格式,广泛应用于网络服务、配置文件和数据存储等领域。cJSON库则为C程序员提供了一种高效且易用的方式...

    XML数据生成Json格式代码

    XML(Extensible Markup Language)和JSON(JavaScript Object Notation)是两种...总之,XML到JSON的转换是数据交换中的常见操作,通过合适的编程语言库和算法,我们可以轻松实现这一转换,以适应不同应用场景的需求。

    dojo与json应用

    2. **配置文件中增加JSON支持**:在项目配置文件(如XML配置文件)中增加对JSON的支持,以便能够正确地解析并显示来自后端的JSON数据。例如,在Struts2项目中,可以在`struts.xml`文件中增加以下配置: ```xml ...

    struts2使用json

    6. **其他参数与注解**:除了上述参数,`result`类型还可以配置其他参数,比如`root`参数用于指定返回的JSON对象的根属性,或者使用注解在Pojo类的属性上,以控制其在JSON序列化和反序列化中的行为。 7. **JSON安全...

    struts2 action 返回json方法(一)源码

    如果需要控制哪些属性被包含在JSON中,或者需要额外的JSON配置,可以在Action类上使用注解`@Results`和`@Result`。例如,只返回`message`属性: ```java @Results({ @Result(name="success", type="json", ...

    struts2必备包+json包.rar

    这个插件添加了对JSON的内置支持,允许你在Action类中直接创建一个Java对象,并通过配置或者注解来指定哪些属性应被转换为JSON。这样,前端的JavaScript可以方便地解析这些数据,进一步展示或者进行其他操作。 **...

    Struts2与JSON

    在Struts2中,我们可以通过Action类返回一个JSON结果类型,这样Struts2会自动将Action的属性转化为JSON格式并返回给客户端。客户端通常使用JavaScript库如jQuery来接收并处理这些数据。 在描述中提到的"以JQuery...

    Struts2返回JSON对象.doc

    在配置中,`&lt;param name="root"&gt;`用于指定返回的JSON对象的根节点,这里的`message`、`userInfo`和`userInfosList`分别对应Action中的属性。 现在,当客户端通过Ajax请求这些Action时,Struts2会自动将对应的Action...

    Struts2处理json简介及注意事项

    这里`root`参数指定将Action中的`data`属性作为JSON响应的根对象。 5. **前端处理**:在前端,可以使用JQuery的Ajax函数来发送请求并处理JSON响应。例如: ```javascript $.ajax({ url: 'myAction.json', type: ...

    myeclipse8下STRUTS(自带JSON插件)的JSON传值例子.rar

    这里的`root`参数指定了返回的对象属性,前端可以通过`response.message`获取数据。 5. **前端请求**:在客户端,使用JavaScript通过AJAX发起一个请求,如jQuery的`$.ajax`: ```javascript $.ajax({ url: '/...

    struts2框架json传递后台数据到echarts

    在这个例子中,我们可能需要配置一个JSON Result,使得Action可以返回JSON格式的数据。 2. **JSON Result**:Struts2提供了JSON插件,该插件允许Action直接返回JSON对象。要在struts.xml配置文件中,为Action添加一...

    struts2使用json注意事项

    最后,需要注意的是,当使用`&lt;param name="root"&gt;result&lt;/param&gt;`时,返回的JSON字符串需要在客户端通过`eval()`函数进行转换,才能解析成JavaScript对象。而当直接配置`includeProperties`时,返回的JSON数据可以...

    集合转JSOn

    ### 集合转JSON:Java中的实现方法与示例 在Java开发中,经常需要将数据转换为JSON格式,以便于在网络传输或与前端进行交互。本文将详细介绍如何使用Java将集合转换成JSON格式,并提供相关的代码示例。 #### 一、...

    struts2+json

    Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中广泛使用,而JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据传输。当我们在Struts2框架中整合SSH...

    json接口实例

    本文将深入探讨一个具体的JSON接口实例,该实例展示了如何在金蝶云创系统中使用WebAPI进行数据保存操作。此示例基于金蝶云创提供的核心库(如`Kingdee.BOS.Core.DynamicForm`等),并通过调用特定的服务来实现数据的...

    struts2+json+ajax整合例子(导入即可运行,附带详细教程)

    这里的`AjaxAction`类会执行相应的业务逻辑,并将结果封装到名为`result`的属性中。 2. **创建AjaxAction**:在Java后端,`AjaxAction`需要实现业务逻辑并返回JSON数据。例如,它可能从数据库获取数据,然后将数据...

    Struts 2中启用json ajax支持

    如果需要自定义JSON输出,例如排除某些属性或添加额外的字段,可以在配置中指定`root`、`includeProperties`和`excludeProperties`等属性。例如: ```xml &lt;result type="json"&gt; &lt;param name="root"&gt;...

    struts2+json的使用

    在Struts2中集成JSON,可以方便地将服务器端处理的结果以JSON格式传递给前端,简化数据传输并提高应用性能。 一、Struts2与JSON集成的必要性 在传统的Web开发中,服务器通常返回HTML页面来更新客户端视图。然而,...

Global site tag (gtag.js) - Google Analytics