Struts2返回json格式数据代码实例

 更新时间:2020年04月07日 11:31:08   作者:Chsoul''S Blog  
这篇文章主要介绍了Struts2返回json格式数据代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

最近由于工作原因,没时间更新,开始吧~~

关于json的返回需要用到一个工具包来将书转换为json格式,在此用到的jar包为:

 import net.sf.json.JSONArray;  //将数据转换为JSON数组
 import net.sf.json.JSONObject;  //将数据转换为JSON对象

dao层的代码

public class ProInfomaDao extends HibernateDaoSupport {
 private Logger logger = Logger.getLogger(ProInfomaDao.class);
  /**
   * 查询所有数据
   * @return
   */
  @SuppressWarnings("unchecked")
  public List<BanknameDto> selBankList() {
    String sql = "SELECT DISTINCT ENAME FROM PM_PROINFO";            //填写对应的SQL语句
    List<String> queryList = getSession().createSQLQuery(sql).list();
    List<BanknameDto> bankList = new ArrayList<BanknameDto>();
    queryList.add(0, "--请选择--");
    BanknameDto bankDto = null;
    if(queryList.size() == 0){
      logger.info("查不到相关信息!");
    }else{
      for(int i = 0;i < queryList.size();i++){
        bankDto = new BanknameDto();
        if(i == 0){
          bankDto.setId(String.valueOf(i+1));
          bankDto.setText(queryList.get(i));
          bankDto.setSelected("true");
        }else{
          bankDto.setId(String.valueOf(i+1));
          bankDto.setText(queryList.get(i));
        }
        bankList.add(bankDto);
      }
    }
    return bankList;                    //此处用到hibernate来查询数据,返回结果为一个[demo1,demo2,demo3]的List集合
  }
}

service层代码

public class ProInfomaService {
  private ProInfomaDao proInfomaDao;
  public void setProInfomaDao(ProInfomaDao proInfomaDao) {
    this.proInfomaDao = proInfomaDao;
  }
  /**
   * 查询数据
   * @return
   */
  public List<BanknameDto> selBankList(){
    return proInfomaDao.selBankList();
  }
}

web层

public class ProInfomaAction extends ActionSupport implements ServletRequestAware{
  private static final long serialVersionUID = 1L;
  private ProInfomaService proInfomaService;
  private Map<String, Object> resultMap = new HashMap<String, Object>();  
  private JSONObject dataroot;                  
  private JSONArray bankroot;                  //此处要返回的属性名称,以bankroot为例,要与struts中
  private JSONArray projroot;                  //<param name="root">bankroot</param>且提供get set方法
  private HttpServletRequest request;

  /**
   * 查询银行名称
   * @return
   */
  public String selBankList() {
    List<BanknameDto> selBank = proInfomaService.selBankList();
    bankroot = JSONArray.fromObject(selBank);
    return SUCCESS;
  }

  public JSONArray getBankroot() {
    return bankroot;
  }

  public void setBankroot(JSONArray bankroot) {
    this.bankroot = bankroot;
  }
  @Override
  public void setServletRequest(HttpServletRequest request) {
    this.request = request;
  }
}

struts2中action的配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
  <package name="proInfo" namespace="/" extends="json-default">
   <!--此处返回json只可以用json-default result结果集可以改变返回参数的名称 -->
    <action name="query" class="noticeAction" method="selBankList">
      <result name="success" type="json">
      </result>
      <result name="returnMap" type="json">
        <param name="root">bankroot</param>              
      </result>
    </action>
</struts>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java使用synchronized修饰方法来同步线程的实例演示

    Java使用synchronized修饰方法来同步线程的实例演示

    synchronized下的方法控制多线程程序中的线程同步非常方便,这里就来看一下Java使用synchronized修饰方法来同步线程的实例演示,需要的朋友可以参考下
    2016-06-06
  • SpringBoot集成Kaptcha验证码的详细过程

    SpringBoot集成Kaptcha验证码的详细过程

    Kaptcha是一个强大而灵活的Java验证码生成库,通过合理的配置和使用,它可以有效地提高web应用的安全性,防止自动化程序的滥用,这篇文章主要介绍了SpringBoot集成Kaptcha验证码,需要的朋友可以参考下
    2024-07-07
  • Spring Aop常见注解与执行顺序详解

    Spring Aop常见注解与执行顺序详解

    这篇文章主要给大家介绍了关于Spring Aop常见注解与执行顺序的相关资料,文中通过图文以及实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-02-02
  • Java多线程 ReentrantLock互斥锁详解

    Java多线程 ReentrantLock互斥锁详解

    这篇文章主要介绍了Java多线程 ReentrantLock互斥锁详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Java 利用栈来反转链表和排序的操作

    Java 利用栈来反转链表和排序的操作

    这篇文章主要介绍了Java 利用栈来反转链表和排序的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Java设计模式中的代理设计模式详细解析

    Java设计模式中的代理设计模式详细解析

    这篇文章主要介绍了Java设计模式中的代理设计模式详细解析,代理模式,重要的在于代理二字,何为代理,我们可以联想到生活中的例子,比如秘书、中介这类职业,我们可以委托中介去帮我们完成某些事情,而我们自己只需要关注我们必须完成的事情,需要的朋友可以参考下
    2023-12-12
  • 通过简单方法实现spring boot web项目

    通过简单方法实现spring boot web项目

    这篇文章主要介绍了通过简单方法实现spring boot web项目,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 实战讲解Maven安装及基本使用详解

    实战讲解Maven安装及基本使用详解

    这篇文章主要介绍了实战讲解Maven安装及基本使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • java程序运行时内存分配详解

    java程序运行时内存分配详解

    这篇文章主要介绍了java程序运行时内存分配详解 ,需要的朋友可以参考下
    2016-07-07
  • java实现简单年龄计算器

    java实现简单年龄计算器

    这篇文章主要为大家详细介绍了java实现简单年龄计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05

最新评论