文档章节

SpringMVC 同一个方法返回Json与HTML数据的小trick

Quan全
 Quan全
发布于 2017/04/06 15:49
字数 341
阅读 60
收藏 0
点赞 0
评论 0

项目改造过程中,发现有一个类,在出错情况下就返回Json数据,在正常情况下就返回HTML页面,在返回Json数据情况是直接往response的writer中写入了返回值,然后方法返回null,示例:

@RequestMapping("demo")
public String demo(){
    if(error){
		String json = "{code:\""+code+"\",msg:\""+message+"\"}";
		response.getWriter().write(content);
        response.getWriter().flush();
		return null;
	}
	return "jstl_view_name";
}

SpringMVC在返回null时默认使用URL的路径来寻找jsp,导致返回的数据既包含Json又包含HTML

 

第一个在脑海中冒出来的解决办法就是更改SpringMVC view resolver的默认行为,使得在返回null的时候不解析,不过这个方案很快就否决了,因为不清楚其他方法有没有直接使用SpringMVC的这种默认行为来解析视图的,更改隐患很大。

 

想了很久,想出了一个trick方案,新建一个jstl_view_name_real.jsp,内容与jstl_view_name的一样,将jstl_view_name里面的内容清空,这样虽然SpringMVC会解析,但是内容为空,返回的数据就是正常的Json数据了。修改后代码

@RequestMapping("demo")
public String demo(){
    if(error){
		String json = "{code:\""+code+"\",msg:\""+message+"\"}";
		response.getWriter().write(content);
        response.getWriter().flush();
		return null;
	}
	return "jstl_view_name_real";
}

 

© 著作权归作者所有

共有 人打赏支持
Quan全
粉丝 1
博文 44
码字总数 36295
作品 0
海淀
高级程序员
spring-data-elasticsearch 基本案例详解(三)

『 风云说:能分享自己职位的知识的领导是个好领导。 』 运行环境:JDK 7 或 8,Maven 3.0+ 技术栈:SpringBoot 1.5+, Spring Data Elasticsearch 1.5+ ,ElasticSearch 2.3.2 本文提纲 一、...

夜黑人模糊灬 ⋅ 05/13 ⋅ 0

Activiti集成Modeler(使用Jfinal)(不用SpringMvc,不用Spring)

整合好的代码在这里 https://gitee.com/glorylion/JFinalOA Modeler是在线流程编辑器 Diagram Viewer是流程跟踪的插件 最近学习使用Activiti. 网上的还有咖啡兔子的基本都是基于Spring的方法...

丶Lion ⋅ 2016/06/13 ⋅ 52

Spring 接口支持返回多种格式

原文出处:xiagn 1. 简介 本文介绍使用SpringMVC的后端服务如何通过配置来支持多种返回值类型(xml,json,html,excel) 这里的代码使用的是springboot,下载地址:https://github.com/xiagn825...

xiagn ⋅ 2017/12/19 ⋅ 0

Junit测试Controller(MockMVC使用),传输@RequestBody数据解决办法

一、单元测试的目的   简单来说就是在我们增加或者改动一些代码以后对所有逻辑的一个检测,尤其是在我们后期修改后(不论是增加新功能,修改bug),都可以做到重新测试的工作。以减少我们在...

文文1 ⋅ 06/01 ⋅ 0

SpringMvc的使用

目录结构 一、SpringMvc相关知识 11、SpringMvc的大体认识 ? 12、什么是MVC ? 13、SpringMvc内部是怎么样工作的? 二、环境以及第三方技术的说明 三、我们进入正题,下边通过一个个实例来介...

丈量大地 ⋅ 2015/11/26 ⋅ 4

JAVA学习笔记22——SpingMVC框架第二章

JAVA学习笔记22——SpingMVC框架第二章 Harries Blog™2017-12-210 阅读 ACESpringAppbeancatActionAjax 昨天讲解了 SpringMVC 的入门,今天来讲讲进阶一点的知识,话不多说,请看下文。 今天...

Harries Blog™ ⋅ 2017/12/21 ⋅ 0

springMVC初认识

本文为转载学习 原文链接:http://jinnianshilongnian.iteye.com/blog/1594806 Spring Web MVC处理请求的流程 具体执行步骤如下: 1、首先用户发送请求————>前端控制器,前端控制器根据请...

heroShane ⋅ 2014/01/25 ⋅ 0

springMVC笔记系列(22)——Json各类操作在springMVC中的实现

Json使得更多的开发可以在单页面完成,大大改变了如今人们的开发方式,使得前端和后端的分离更加彻底。Json是一种轻量级的数据交换格式。Json与XML格式一样具有良好的结构,但格式更为简洁。...

HappyBKs ⋅ 2016/07/07 ⋅ 0

Ajax与SpringMVC

Ajax:Asynchronous JavaScript and XML 异步的JavaScript和XML技术 Ajax应用:侧重与局部刷新/局部交互 XMLHttpRequest对象(内置在浏览器中,js对象) ---------------------------------------...

Romanceling ⋅ 2016/06/12 ⋅ 0

SpringMVC简单构造restful, 并返回json

文章要要点: 快速搭建构造restful的StringMvc GET, POST , PUT , DELETE的各种调用 同一资源 多种表述 (ContentNegotiatingViewResolver解析器),既可以返回对象给JSP, 也可以返回JSON 快速搭...

未眠 ⋅ 2014/12/04 ⋅ 24

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

Spring 依赖注入(DI)

1、Setter方法注入: 通过设置方法注入依赖。这种方法既简单又常用。 类中定义set()方法: public class HelloWorldOutput{ HelloWorld helloWorld; public void setHelloWorld...

霍淇滨 ⋅ 昨天 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 昨天 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部