利用struts2返回json对象

原创 2012年03月29日 19:33:39

利用struts2返回json对象

1、  首先我们要引入包(我们的包全部引自struts-2.3.1.2\lib

struts2-json-plugin-2.3.1.2.jar

json-lib-2.1-jdk15.jar

commons-collections-3.1.jar

commons-beanutils-1.7.0.jar

commons-lang-2.5.jar

commons-logging-1.1.1.jar

ezmorph-1.0.3.jar

7个包是返回json形式的数据必须的,因为json大量引用了Apache commons的包,所以要加入4个,commons包,除了commons的包外,还需要引入一个ezmorph的包。最后要加入struts2必须的6个包。

struts2-core-2.3.1.2.jar

xwork-core-2.3.1.2.jar

ognl-3.0.4.jar

freemarker-2.3.18.jar

commons-fileupload-1.2.2.jar

commons-io-2.0.1.jar

2、  下面我们要来看一下Admins实体类的代码

import java.io.Serializable;

publicclass Admins implements Serializable {

    privatestaticfinallong serialVersionUID = 1L;

    

    private Integer id;

    private String userName;

    private String password;

    private String realName;

    private String sex;

    private String address;

    private String cellPhone;

    private String email;

    private String role;

 

         并且我们要生成set()和get()方法,toString()方法,无参构造器。

 

3、  我们在Action中要实现其作用。

以下是我们的action类。代码如下:

import java.util.List;

import cn.csdn.hr.buy360.domain.Admins;

import cn.csdn.hr.buy360.service.AdminsService;

import cn.csdn.hr.buy360.service.AdminsServiceImpl;

import com.opensymphony.xwork2.ActionSupport;

public class AdminsAction extends ActionSupport{

    private  List<Admins> entities;     //使用json返回list对象

    private Admins admin;//使用json返回对象

    //get方法

    public Admins getAdmin(){

              return admin;

    }

    public List<Admins> getEntities() {

              return entities;

    }

    //返回Admins对象

    public String  execute(){

              AdminsService asi = new AdminsServiceImpl();

              entities = asi.getObjects(Admins.class);

              //admin  = (Admins) asi.findObjectById(Admins.class, 1);

              /*

               *  get方式 entities  admins 

               *     <result type="json">

               *        <param name="root">entities</param>

               *     </result>

               *     

               *  看返回的json数据

               *        ------------------

               *  get方式:entities  admins 

               *      <result type="json">

               *        <param name="root">entities,admins</param>

               *     </result>

               *  -------如果能写返回的结果

               *         如果不能写就没有结果

               *   get方式:entities  admins 

               *      <result type="json">

               *        <param name="includeProperties">entities</param>

               *     </result> 

               *     试试上面的结果

               *     

               *      <result type="json">

               *        <param name="includeProperties">entities\[\d+\]\.realName</param>

               *     </result> 

               *     看结果

               *      <result type="json">

               *        <param name="includeProperties">^entities\[\d+\]\.realName</param>

               *     </result>

               *    ---------

               * */

              return SUCCESS;

    }

}

 

通过action类我们来实现的内容,我们可以对它在struts.xml文件中进行一个一个的测试。

首先我们来测试第一个:

1get方式 entities  admins

                    <result type="json">

                       <param name="root">entities</param>

                    </result>

struts.xml文件中,我们可以这样进行测试:

<struts>

   <package name="admin" extends="json-default" namespace="/csdn">

     <action name="admins" class="cn.csdn.hr.buy360.action.AdminsAction">

        <result type="json">

     <param name="root">entities</param>  <!-- 有提示 -->

</result>

</action>

</package>

</struts>

通过测试这个,我们可以得到我们所需要的效果,它是有提示的。

 

2<param name="root">entities,admin</param>

struts.xml文件中配置这个,我们所得到的结果是没有提示的,它返回的是

{"address":null,"cellPhone":null,"email":null,"id":1,"password":"ssssssss1","realName":"sss1","role":null,"sex":null,"userName":"redarmy1"}

 

3<param name="includeProperties">entities</param>

配置好这个后,得到的结果是:没有提示,返回 {"entities":[]}

 

4<param name="includeProperties">entities\[\d+\]\.realName</param>

得到的效果:

没有提示,{"entities":[{"realName":"sss1"},{"realName":"sss2"},{"realName":"sss3"},{"realName":"sss4"},{"realName":"sss5"},{"realName":"sss6"},{"realName":"sss7"},{"realName":"sss8"},{"realName":"sss9"}]}

 

5<param name="includeProperties">^entities\[\d+\]\.realName</param>

得到的结果:没有提示

{"entities":[{"realName":"sss1"},{"realName":"sss2"},{"realName":"sss3"},{"realName":"sss4"},{"realName":"sss5"},{"realName":"sss6"},{"realName":"sss7"},{"realName":"sss8"},{"realName":"sss9"}]}

Struts2返回json的几种方式

在web项目中,我们不一定全部数据都放在值栈zhong
  • a837199685
  • a837199685
  • 2014年06月26日 16:14
  • 3278

struts2 ,action,返回JSON对象

使用struts2返回json的方法如下: 1.配置struts.xml文件 dataMap.*
  • jajavaja
  • jajavaja
  • 2013年01月11日 16:55
  • 17257

struts2中action返回"json"字符串

最近做项目,项目中使用了struts2结合spring。发现页面发送ajax请求到action中时,action的返回值只是一个return "json"(注:值为"json")。而页面中ajax的返...
  • antao592
  • antao592
  • 2016年10月09日 15:40
  • 476

在用struts2框架时在Action中返回json数据

在上一篇搭建了struts2开发环境,之前开发一些小项目都是直接使用的servlet,在servlet中返回json数据很容易:在response对象中打开流直接写入json数据就好了。今天学习str...
  • u013972558
  • u013972558
  • 2016年05月17日 23:28
  • 5850

struts2 注解方式返回json

用了struts2 0配置后,如何返回json? 首先action上,重新定义默认的@ParentPackage,改为@ParentPackage("abstract-struts")  abst...
  • china_bobo
  • china_bobo
  • 2015年12月18日 17:39
  • 3104

Struts2返回JSON对象总结

1.导入jsonplugin包   Struts2.1.6:导入jsonplugin-0.34.jar包(下载包)和commons-logging-1.0.4.jar(Struts2 lib下有...
  • salonzhou
  • salonzhou
  • 2014年07月04日 11:19
  • 3347

Struts2 返回json对象

Strust2 的JSON插件提供了一个可以返回“JSON”结果类型的序列化动作。序列化过程是递归的,这意味着整个对象图,动作类(基类不包括在内)将被序列化(根对象可以使用的“root”属性定制)。如...
  • sqlife_cn
  • sqlife_cn
  • 2012年07月27日 14:55
  • 263

Struts2返回JSON对象

public class JsonAction extends ActionSupport{  //继承ActionSupport类private Map dataMap; get/setDataMa...
  • t_y_c
  • t_y_c
  • 2015年03月04日 08:28
  • 279

struts2向浏览器响应json数据的两种方式

js部分调用方式是一样的:JS代码:function testAjax() { var $userNameInput = $("#ajax_username"); var userN...
  • fucktester
  • fucktester
  • 2017年04月03日 15:28
  • 839

struts2注解返回json串实现方式(序列化对象属性输出)

struts2帮你轻松实现json串,也可以选择序列化对象属性输出
  • qq_31803503
  • qq_31803503
  • 2017年08月07日 21:28
  • 600
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用struts2返回json对象
举报原因:
原因补充:

(最多只允许输入30个字)