所用技术: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中通过注解实现返回JSON数据的功能。 首先,让我们理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Web应用中...
在本文中,我们将探讨两种在Struts2框架中返回JSON数据的方法。...二是利用Struts2的内置JSON插件,通过返回特定的属性和结果类型自动处理JSON。每种方法都有其适用场景,可以根据项目需求选择合适的方式。
在Struts2中,返回JSON(JavaScript Object Notation)数据类型是一种常见的需求,尤其是在开发AJAX或者前后端分离的应用时。JSON是一种轻量级的数据交换格式,它允许服务器向客户端发送结构化的数据,而无需解析...
如果是作为客户端的...本人碰到需要用开发基于Struts2的HTTP+JSON返回类型接口就是基于既定框架结构下进行的。 Struts2返回JSON有两种方式:1.使用Servlet的输出流写入JSON字符串;2.使用Struts2对JSON的扩展。
在这个例子中,`testJson`方法处理请求后返回一个包含"message"键的Map,当配置了JSON结果类型时,Struts2会自动将其转化为JSON格式,并返回给客户端。 在实际的"Maven-web项目 Struts2 Struts注解"中,`Strut2-...
当客户端请求`/myAction`时,Struts2会执行`execute()`方法,然后返回一个包含`message`属性的JSON对象。默认情况下,Struts2会把所有非`null`的Action或值栈属性转换成JSON。 5. **自定义JSON输出** 如果需要...
当Action执行完毕后,可以返回一个JSON结果类型,Struts2会自动将Action的属性转换为JSON格式并返回给前端。 接着,我们讨论AJAX。AJAX是一种在不重新加载整个网页的情况下,能够更新部分网页的技术。在本资源中,...
1. 配置Struts2:在struts.xml配置文件中,为Action添加一个JSON结果类型,这样Struts2将会返回JSON响应。 2. 接收JSON数据:在Action类的setter方法中,使用@Param注解接收JSON参数。 3. 处理业务逻辑:在Action中...
在Android开发中,与服务器进行数据交互是常见的...而`Struts2_JSON_Demo`可能是一个Struts2的项目,实现了返回JSON数据的Action。通过这两个示例,你可以更直观地学习和理解Android与Struts2之间JSON数据交换的过程。
同时,还可以通过配置Struts2的`struts.json.includeProperties`属性来控制哪些字段应该包含在JSON响应中。 在实际项目中,你可能还需要考虑一些其他因素,例如处理JSONP(JSON with Padding)请求,处理日期和时间...
2. **Action类的JSON配置**:在Action类中,我们需要添加一个返回JSON结果的方法,并通过注解或配置文件指定该方法返回JSON类型。例如,使用注解`@Result(name="json", type="json")`。 3. **暴露数据到JSON**:...
在本教程中,我们将深入探讨如何使用Struts2的注解特性、返回页面以及返回JSON数据。 **基于注解的配置** Struts2允许开发者使用注解来替代传统的XML配置文件,简化应用的配置过程。例如,我们可以使用`@Action`...
在Struts2的配置文件(通常是struts.xml)中,需要为Action配置一个返回JSON结果的类型。例如: ```xml <package name="default" namespace="/" extends="struts-default"> ...
Struts2框架支持JSR-250和JSR-303等标准注解,同时也提供了一些自定义注解来增强功能。例如,`@Action`注解用于标记一个方法为Struts2的动作,这个方法将在用户请求时被调用。`@Results`注解用于定义多个可能的结果...
jsp通过Ajax无刷新获取Action返回的模拟数据,然后通过struts2转化成json数据返回页面....这里面Map,List,对象等等,一些常用的操作都有。主要的代码在Action和 json.js里面。适合新手入门
`struts2-json-plugin-2.1.8.1.jar` 则是Struts 2框架的一个插件,主要用于增强Struts 2对JSON的支持。Struts 2是一款非常流行的MVC(Model-View-Controller)框架,用于构建企业级的Java Web应用程序。这个插件允许...
`struts2-json-plugin`添加了JSON结果类型,当Action返回此类型时,会将结果转换为JSON格式。 2. **JSONResult类**:这是实现JSON结果类型的核心类,它继承自`com.opensymphony.xwork2.Result`接口。在执行过程中,...
在Struts2中,生成JSON响应主要通过使用Struts2的JSON插件来实现。首先,确保你的项目已经集成了Struts2的JSON插件。这通常涉及到在`struts.xml`配置文件中添加相应的配置: ```xml <constant name="struts.enable....
在Struts2的配置文件(struts.xml或struts.properties)中,需要为Action添加一个`@ResultType`注解或结果类型配置,指定为`json`。这样,当Action执行完成后,会返回JSON格式的数据。 3. **JSON Value Stack**: ...