`
caizi12
  • 浏览: 177339 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2注解 返回json类型,同时返回父类的属性

 
阅读更多

所用技术:struts2+jsonplugin+jquery+flexigrid

在struts2中,通常情况下action直接继承的是ActionSupport,有时为了项目的需要,可能要写一个BaseAction类来继承ActionSupport,让所有的action来继承BaseAction

@ParentPackage("jshop")
public class BaseActiton extends ActionSupport {
               ..........
                private String test;
	public String getTest() {
		return test;
	}

	public void setTest(String test) {
		this.test = test;
	}
}

 

public class ProuctsAction extends BaseActiton {   private String query;
	private String qtype;
	private List rows;
	private int rp;
	private int page = 1;
	private int total = 0;
	private boolean slogin;
	private boolean sucflag;
	private String sortname;
	private String sortorder;
.............
}           

添加BaseAction的初衷是项目用到了flexigrid,flexigrid接收json格式的数据,所以action中的查询方法要返回json类型,而flexigrid又有很多自己的一些参数需要接收并返回,如下:

           private String query;
	private String qtype;
	private List rows;
	private int rp;
	private int page = 1;
	private int total = 0;
	private boolean slogin;
	private boolean sucflag;
	private String sortname;
	private String sortorder;

 

 如果在每个action中都单独写这些flexigrid所需要用的属性,还有对应的get set方法,显而易见每个action中会有很多这样重复的代码,为此我们需要把这些属性提炼出来,添加到BaseAction。

  改造完毕,在页面点查询的时候flexigrid的相关属性可以正常获取,但是返回到前台的时候用firebug查看返回的json格式,这些属性却丢失了,查阅相关struts2资料看到这样一个属性:

<result type=”json”>
<param name=”ignoreHierarchy”>false</param>
</result

 ignoreHierarchy 参数:表示是否忽略等级,也就是继承关系,比如:ProuctsAction继承于 BaseAction,那么

ProuctsAction中返回的 json 字符串默认是不会包含父类 BaseAction 的属性值,ignoreHierarchy 值默认为 true,

设置为 false 后会将父类和子类的属性一起返回。

 

由于用的注解,经过测试这样修改为:

@Action(value = "findAll", results = { @Result(name = "json", type = "json",
                                                            params={"ignoreHierarchy","false"}) })
	public String findAll() {	
                   ..... 
                  return "json";
	}

 

 再用firebug查看返回的json,父类中的属性已经存在。

分享到:
评论

相关推荐

    Struts2使用Annotation返回Json

    本篇文章将深入探讨如何在Struts2中通过注解实现返回JSON数据的功能。 首先,让我们理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Web应用中...

    struts2返回JSON数据的两种方式

    在本文中,我们将探讨两种在Struts2框架中返回JSON数据的方法。...二是利用Struts2的内置JSON插件,通过返回特定的属性和结果类型自动处理JSON。每种方法都有其适用场景,可以根据项目需求选择合适的方式。

    struts2返回json

    在Struts2中,返回JSON(JavaScript Object Notation)数据类型是一种常见的需求,尤其是在开发AJAX或者前后端分离的应用时。JSON是一种轻量级的数据交换格式,它允许服务器向客户端发送结构化的数据,而无需解析...

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

    如果是作为客户端的...本人碰到需要用开发基于Struts2的HTTP+JSON返回类型接口就是基于既定框架结构下进行的。 Struts2返回JSON有两种方式:1.使用Servlet的输出流写入JSON字符串;2.使用Struts2对JSON的扩展。

    maven-web项目 Struts2 Struts注解 Struts2返回json

    在这个例子中,`testJson`方法处理请求后返回一个包含"message"键的Map,当配置了JSON结果类型时,Struts2会自动将其转化为JSON格式,并返回给客户端。 在实际的"Maven-web项目 Struts2 Struts注解"中,`Strut2-...

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

    当客户端请求`/myAction`时,Struts2会执行`execute()`方法,然后返回一个包含`message`属性的JSON对象。默认情况下,Struts2会把所有非`null`的Action或值栈属性转换成JSON。 5. **自定义JSON输出** 如果需要...

    struts2+json

    当Action执行完毕后,可以返回一个JSON结果类型,Struts2会自动将Action的属性转换为JSON格式并返回给前端。 接着,我们讨论AJAX。AJAX是一种在不重新加载整个网页的情况下,能够更新部分网页的技术。在本资源中,...

    AJAX 想Struts2后台传送Json数据并向前台返回Json格式的数据

    1. 配置Struts2:在struts.xml配置文件中,为Action添加一个JSON结果类型,这样Struts2将会返回JSON响应。 2. 接收JSON数据:在Action类的setter方法中,使用@Param注解接收JSON参数。 3. 处理业务逻辑:在Action中...

    android接收json例子struts2Action返回json格式数据

    在Android开发中,与服务器进行数据交互是常见的...而`Struts2_JSON_Demo`可能是一个Struts2的项目,实现了返回JSON数据的Action。通过这两个示例,你可以更直观地学习和理解Android与Struts2之间JSON数据交换的过程。

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

    同时,还可以通过配置Struts2的`struts.json.includeProperties`属性来控制哪些字段应该包含在JSON响应中。 在实际项目中,你可能还需要考虑一些其他因素,例如处理JSONP(JSON with Padding)请求,处理日期和时间...

    struts2--json包

    2. **Action类的JSON配置**:在Action类中,我们需要添加一个返回JSON结果的方法,并通过注解或配置文件指定该方法返回JSON类型。例如,使用注解`@Result(name="json", type="json")`。 3. **暴露数据到JSON**:...

    struts-2.5.14.1 基本框架 基于注解 返回页面 返回json数据

    在本教程中,我们将深入探讨如何使用Struts2的注解特性、返回页面以及返回JSON数据。 **基于注解的配置** Struts2允许开发者使用注解来替代传统的XML配置文件,简化应用的配置过程。例如,我们可以使用`@Action`...

    struts2使用json返回对象和列表(案例)

    在Struts2的配置文件(通常是struts.xml)中,需要为Action配置一个返回JSON结果的类型。例如: ```xml &lt;package name="default" namespace="/" extends="struts-default"&gt; ...

    struts2注解登陆

    Struts2框架支持JSR-250和JSR-303等标准注解,同时也提供了一些自定义注解来增强功能。例如,`@Action`注解用于标记一个方法为Struts2的动作,这个方法将在用户请求时被调用。`@Results`注解用于定义多个可能的结果...

    struts2的方式返回json到jsp页面 List,Map,Object,对象各种操作都有....MyEclipse的,导入直接看效果。

    jsp通过Ajax无刷新获取Action返回的模拟数据,然后通过struts2转化成json数据返回页面....这里面Map,List,对象等等,一些常用的操作都有。主要的代码在Action和 json.js里面。适合新手入门

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

    `struts2-json-plugin-2.1.8.1.jar` 则是Struts 2框架的一个插件,主要用于增强Struts 2对JSON的支持。Struts 2是一款非常流行的MVC(Model-View-Controller)框架,用于构建企业级的Java Web应用程序。这个插件允许...

    struts2-json-plugin源码

    `struts2-json-plugin`添加了JSON结果类型,当Action返回此类型时,会将结果转换为JSON格式。 2. **JSONResult类**:这是实现JSON结果类型的核心类,它继承自`com.opensymphony.xwork2.Result`接口。在执行过程中,...

    struts2.3.20生成返回json 浏览器解析json

    在Struts2中,生成JSON响应主要通过使用Struts2的JSON插件来实现。首先,确保你的项目已经集成了Struts2的JSON插件。这通常涉及到在`struts.xml`配置文件中添加相应的配置: ```xml &lt;constant name="struts.enable....

    struts2-json

    在Struts2的配置文件(struts.xml或struts.properties)中,需要为Action添加一个`@ResultType`注解或结果类型配置,指定为`json`。这样,当Action执行完成后,会返回JSON格式的数据。 3. **JSON Value Stack**: ...

Global site tag (gtag.js) - Google Analytics