关键点:

  1. json数据格式
  2. 获取json数据
  3. 输出json
  4. 分页

#json数据格式#

datagrid:

{"total":1,"rows":[{"name":"小李"}]}

combobox:

[{"value":"001","text":"小李"},{"value":"002","text":"小红"}]

其他:

#获取json数据#

参考 使用Map List 封装json数据

#输出json#

方式一:PrintWriter
public String getJsonData(){

        Map<String,Object> data = new HashMap<String,Object>();
List<Map<String,Object>> personList = new ArrayList<Map<String,Object>>();
Map<String,Object> person = new HashMap<String,Object>(); person.put("name", "小李");
personList.add(person); data.put("total", personList.size());
data.put("rows", personList); HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter out;
try {
out = response.getWriter();
out.println(JSONObject.fromObject(data));
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}

PrintWriter

方式二:stream

片段一

InputStream inputStream;

    public InputStream getInputStream() {
return inputStream;
} public void setInputStream(InputStream inputStream) {
this.inputStream = inputStream;
} public String getJsonData(){ Map<String,Object> data = new HashMap<String,Object>();
List<Map<String,Object>> personList = new ArrayList<Map<String,Object>>();
Map<String,Object> person = new HashMap<String,Object>(); person.put("name", "小李");
personList.add(person); data.put("total", personList.size());
data.put("rows", personList);
inputStream = new ByteArrayInputStream(JSONObject.fromObject(data).toString().getBytes());
return "inputStream";
}

.java 片段

片段二

<result type="stream" name="inputStream">
<param name="bufferSize">1024*1024</param>
<param name="inputName">inputStream</param>
</result>

struts.xml 片段

方式三:json

片段一

<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-json-plugin</artifactId>
<version>2.3.15.3</version>
</dependency>

pom.xml 片段

片段二

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="pages" namespace="/pages" extends="struts-default,json-default">
<global-results>
<result name="json" type="json" >
<param name="root">jsonObject</param>
</result>
</global-results>
</package>
</struts>

struts-view.xml

片段三

// 返回 JSON
Object jsonObject; // 页面跳转
static final String JSON = "json"; public Object getJsonObject() {
return jsonObject;
}
public void setJsonObject(Object jsonObject) {
this.jsonObject = jsonObject;
}

.java 片段

本实现方式需要引入struts2-json-plugin

  • struts.xml 需继承json-default

#分页#

见smse

struts2 集成 easyui的更多相关文章

  1. struts2 集成webservice 的方法

    由于项目需求的需要,要在原来用Struts2的框架之上集成webservice,因为之前单单做webservice的时候没有多大问题,使用 Spring 和 Xfire就可以轻松地发布服务,但是,当和 ...

  2. Spring,Struts2,MyBatis,Activiti,Maven,H2,Tomcat集成(二)——Struts2集成

    1. pom.xml文件添struts2依赖jar包: <!-- 与Struts2集成必须使用 --> <dependency> <groupId>org.spri ...

  3. Spring与Struts2集成开发

    Struts2和Spring都是不错的开源框架,Spring与Struts2集成开发,把二者结合在一起使用,开发效果更佳,效率杠杠的.下面介绍一下如何将Spring与Struts2集成在一起开发.分七 ...

  4. Vue 集成easyUI

    原 Vue 集成easyUI https://blog.csdn.net/m0_37948170/article/details/84960320   参考vue官网用cli创建了Vue项目之后: n ...

  5. SSM集成Easyui框架及多模块开发的认识

    首先我们需要建立好一个emaven项目,并且在pom.xml中导入响应的jar包, <?xml version="1.0" encoding="UTF-8" ...

  6. struts2+jquery+easyui+datagrid+j…

    一.概述 struts2提供了针对json的插件支持.常规来讲我们将如何将对象数组转成json对象在客户端直接调用呢?尤其和jquery的easyui插件配合使用,这个可能会有很多的问题需要我们解决. ...

  7. struts2集成javamail发邮件(带附件)实践记录

    一.代码预览 这两天在做struts2上的邮件发送.以前的项目有用到spring,用spring提供的邮件支持类很方便可以完成这个功能,但是现在只用struts2的话,就碰到了一系列的问题. 代码是从 ...

  8. Struts2与easyui分页查询

    easyui里面分页查询:在easyui框架里面已经进行一些分装,所以我们只要进行后台分页查询即可 web.xml和struts.xml文件的配置的就不需要我多说了,和分页前代码一样,不需要更改: 需 ...

  9. vuecli3集成easyui

    思路是这样的,首先要将jquery设置成全局,然后就可以正常使用easyUI了. jquery安装命令: npm install --save jquery jquery-easyui安装命令: np ...

随机推荐

  1. UISlide

    UISlide属性   1.   minimumValue  : 当值可以改变时,滑块可以滑动到最小位置的值,默认为0.0 _slider.minimumValue = 10.0; 2.   maxi ...

  2. 解决android sdk manage打开闪退的解决方法

    在打开android sdk mangage.exe的时候,一闪而过,在eclipse中出现如下提示: [2015-07-20 13:42:23 - SDK Manager] [SDK Manager ...

  3. ecshop init.php文件分析(转)

    <?php /** * ECSHOP 前台公用文件 */ //防止非法调用 defined-判断常量是否已定义,如果没返回false if (!defined('IN_ECS')) { die( ...

  4. iOS 5.0 后UIViewController新增:willMoveToParentViewController和didMoveToParentViewCon

    在iOS 5.0以前,我们在一个UIViewController中这样组织相关的UIView   在以前,一个UIViewController的View可能有很多小的子view.这些子view很多时候 ...

  5. IP碎片原理:攻击和防护

    为了加深理解IP协议和一些DoS攻击手段大家有必要看看以下内容,也许对你理解这个概念有所帮助.先来看看IP碎片是如何产生的吧.         一.IP碎片是如何产生的       链路层具有最大传输 ...

  6. c++ vector 释放内存

    1.释放单个指针 关于Vector中存放指针的问题,在进行清空的时候比较安全的一种做法是:    std::vector<ClassName *> ClassNameVec;    ... ...

  7. Linux/Unix shell 监控Oracle告警日志(monitor alter log file)

    使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,AWR report的自动邮件等.本文给出Linu ...

  8. 【转】Github轻松上手4-常用的git命令

    转自:http://blog.sina.com.cn/s/blog_4b55f6860100zzih.html 附上一些git的常见命令: •    git remote add origin git ...

  9. Python的sched模块

    我们经常需要定时的执行某个任务,在Linux下我们有强大的crontab,但是在Python这个粒度(定时执行函数),如何处理呢?除了第三方的模块外,标准库为我们提供了sched模块和Timer类. ...

  10. js match regex

    需要返回成数组元素的要放在括号里头 var arr = /input-([0-9]*)-([0-9]*)/.exec(id); var all = arr[0]; var row = arr[1]; ...