java-web-common

java-web-common

Json组件

目标和用途

  • 规范Json接口格式
  • Controller中一律返回Java object,组件将自动转换数据格式,满足Json接口格式
  • 统一处理Json接口中出现的异常,controller中不再需要try-catch.Spring只有针对页面请求的SimpleMappingExceptionResolver异常解决方案,并没有针对使用@ResponseBody的方法异常处理

如何使用

  • 在Spring配置文件中增加:<context:component-scan base-package="ren.wenchao.web.common, your-controller-packages" />
  • 不需要配置<mvn:annotation-driven/>
  • 在需要返回Json的Controller的方法上标注:@JsonResponseBody 注解,默认是V2版本。可以参考TestController.java文件

示例

示例1

  @RequestMapping(value = "/testJsonResponceBodyV2ReturnMap")
@JsonResponseBody(version = JsonResponseBody.Version.V2)
public Map testJsonResponceBodyV2ReturnMap() {
HashMap<Object, Object> hashMap = Maps.newHashMap();
hashMap.put("key", "value");
return hashMap;
}

返回:

{
"code":0,
"msg":"",
"data":{
"key":"value"
}
}

示例2

    @RequestMapping(value = "/testJsonResponceBodyV1WithException")
@JsonResponseBody(version = JsonResponseBody.Version.V1)
public List<String> testJsonResponceBodyV1WithException() {
throw new RuntimeException("some exception");
}

返回:

{
"ret":false,
"msg":"some exception"
}

更多示例请参考:TestController.java

CSV组件

目标和用途

  • 提供一个统一的CSV文件下载功能,各个系统就不需要重复编写了
  • 简化「cvs下载功能」的实现

如何使用

  • 假设你的业务model为Payload,有可能你最终需要的csv的列和业务model Payload的属性不完全一致,

    因此你需要创建一个SomeCSVPayload(名字随意)来实现BaseCSVPayload接口,并制定csv的列头等信息
  • 在对应的Controller方法上增加@CSVResponceBody(fileName = "output", payloadClass = SomeCSVPayload.class),如下:
	@RequestMapping(value = "/testCSVResponceBody")
@CSVResponceBody(fileName = "output", payloadClass = SomeCSVPayload.class)
public SomeCSVPayload testCSVResponceBody() {
return new SomeCSVPayload();
}

示例使用请查看TestController.java中的testCSVResponceBody方法

Excel组件

暂时没打算支持Excel下载,因为Excel需要区分版本,不同版本的限制也有些不同,而CSV比较通用,因此目前只支持csv

统一的Json组件和csv下载组件的更多相关文章

  1. SNF开发平台WinForm之六-上传下载组件使用-SNF快速开发平台3.3-Spring.Net.Framework

    6.1运行效果: 6.2开发实现: 1.先在要使用的项目进行引用,SNF.WinForm.Attachments.dll文件. 2.在工具箱内新建选项卡->选择项,浏览找到文件SNF.WinFo ...

  2. js将json数据以csv格式下载

    摘要: 最近有一个非项目的小需求,就是将项目开发分工文件化,方便后期管理维护.但是开发时,分工安排都是以json格式记录的,所以就做了一个将json数据以csv格式下载到本地. 代码: <!DO ...

  3. commons-fileupload组件和commons-io组件的详细下载

    commons-fileupload组件和commons-io组件的详细下载 1. commons-fileupload组件的下载 下载地址:http://commons.apache.org/fil ...

  4. 开源免费且稳定实用的.NET PDF打印组件itextSharp(.NET组件介绍之八)

    在这个.NET组件的介绍系列中,受到了很多园友的支持,一些园友(如:数据之巅. [秦时明月]等等这些大神 )也给我提出了对应的建议,我正在努力去改正,有不足之处还望大家多多包涵.在传播一些简单的知识的 ...

  5. 免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)

    前面介绍了六种.NET组件,其中有一种组件是写文件的压缩和解压,现在介绍另一种文件的解压缩组件SharpZipLib.在这个组件介绍系列中,只为简单的介绍组件的背景和简单的应用,读者在阅读时可以结合官 ...

  6. 免费高效实用的.NET操作Excel组件NPOI(.NET组件介绍之六)

    很多的软件项目几乎都包含着对文档的操作,前面已经介绍过两款操作文档的组件,现在介绍一款文档操作的组件NPOI. NPOI可以生成没有安装在您的服务器上的Microsoft Office套件的Excel ...

  7. 一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)

    在目前的软件项目中,都会较多的使用到对文档的操作,用于记录和统计相关业务信息.由于系统自身提供了对文档的相关操作,所以在一定程度上极大的简化了软件使用者的工作量. 在.NET项目中如果用户提出了相关文 ...

  8. [js开源组件开发]table表格组件

    table表格组件 表格的渲染组件,demo请点击http://lovewebgames.com/jsmodule/table.html,git源码请点击https://github.com/tian ...

  9. Android组件系列----Android Service组件深入解析

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

随机推荐

  1. git教程

    http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

  2. querySelector系列方法相比 getElementsBy 系列方法有什么区别?

    querySelector 和  querySelectorAll 相比下面这些方法有什么区别? getElementsByTagName getElementsByClassName getElem ...

  3. java日历显示年份、月份

    import java.util.Scanner;class CalendarMain{     //主函数入口    public static void main(String[] args)   ...

  4. 记录一次Quartz2D学习(七)

    (六)内主要讲述了图片的裁剪 本次主要讲交互 7.交互 7.1  通过外部刷新内部的显示效果 初始化的时候设定好初始值,调用setNeedsDisplay方法来重新绘制 - (instancetype ...

  5. 前端开发---ppt展示页面评论区支持动态交互效果

    1. 工程地址:https://github.com/digitalClass/web_page 网站发布地址: http://115.28.30.25:8029/ 2. 用到的技术主要还是jquer ...

  6. [问题]apparmor 问题导致mysql切换datadir目录失败

    问题: 在mysql切换datadir后,mysql服务无法启动.出现错误说plugin表无法读取,需要用mysql_upgrade创建.但是其实不是这个问题. 原因: apparmor 会限制程序对 ...

  7. 在Ubuntu X64上编译Hadoop

    在之前的文章中介绍了如何直接在Ubuntu中安装Hadoop.但是对于64位的Ubuntu来说,官方给出的Hadoop包是32位的,运行时会得到警告: WARN util.NativeCodeLoad ...

  8. 4.MySQL 主主(m-m) 同步生产库标准同步操作实施流程

    通过MySQL参数配置使用主主前提: 1.表的主键自增. ################################################################# #m1-m ...

  9. Linux环境搭建-在虚拟机中安装Centos7.0

    最近在空闲时间学习Linux环境中各种服务的安装与配置,都属于入门级别的,这里把所有的学习过程记录下来,和大家一起分享. 我的电脑系统是win7,所以我需要在win7上安装一个虚拟机-VMware,然 ...

  10. Jmeter实现登录bugfree、新建bug、解决bug脚本(抓包工具实现)

    环境 Chrome jmeter3.1 fiddler4 win7 32位 Linux CentOs6.4 bugfree3.0.1 链接:http://pan.baidu.com/s/1gfHpbp ...