利用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对象.doc

  • 2013年11月14日 12:40
  • 140KB
  • 下载

Struts2返回JSON对象总结

1.导入jsonplugin包    Struts2.1.6:导入jsonplugin-0.34.jar包(下载包)和commons-logging-1.0.4.jar(Struts2 lib下有)...

Struts2返回JSON对象

  • 2013年06月03日 14:23
  • 192KB
  • 下载

Struts2返回JSON对象总结

Struts2返回JSON对象总结  1.导入jsonplugin包   Struts2.1.6:导入jsonplugin-0.34.jar包(下载包)和commons-logging-1.0....

Struts2返回JSON对象的方法总结

Struts2返回JSON对象的方法总结 博客分类: Struts2 Struts2返回JSONJSON对象方法总结Struts2零配置        如果是作为客户端的HTTP...

Struts2返回JSON对象的方法总结

如果是作为客户端的HTTP+JSON接口工程,没有JSP等view视图的情况下,使用Jersery框架开发绝对是第一选择。而在基于Spring3 MVC的架构下,对HTTP+JSON的返回类型也有很好...

jQuery.Post到Struts2的action处理,并返回json对象到前端

之前虽然一直在用jQuery.post函数,将前端页面的请求发送到struts中的action处理,但是用的是公司写好的一套东西,基本都是复制粘贴,反而对基本的post功能没有深入了解。下面简单配置说...
  • iailp47
  • iailp47
  • 2015年07月07日 16:36
  • 1618

Struts2返回JSON对象的方法总结

博客分类: Struts2 Struts2返回JSONJSON对象方法总结Struts2零配置        如果是作为客户端的HTTP+JSON接口工程,没有JSP等view视图的情况...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用struts2返回json对象
举报原因:
原因补充:

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