利用struts2返回json对象

利用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"}]}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值