Springmvc如何根据请求参数有无callback,返回对应的jsonp或者json字符串

如题,需要获取json请求时需要ajax请求

 getData?callback=jQuery1830020447478396818042_1438937556784&_=1438937556855

返回的JSON字符串也带有callback参数

 jQuery1830020447478396818042_1438937556784(字符串)

现在的问题是,怎样通过拦截器实现,判断请求中有无callback并返回对应的值。

拦截器中使用response.getWriter().write()方法时,总是会报outputstream流已被占用。

1个回答

写一个拦截器,继承HandlerInterceptorAdapter,实现postHandle方法,在那个里面对response的内容进行判断,判断完是不用返回的。

a5530656
a5530656 回复lhl_lqc: 如果用了converter,直接在converter里面write了
3 年多之前 回复
bulusli3
lhl_lqc 回复javabean12345: 那就先在Controller中对modelView设值,然后在postHandle方法里对modelView做修改。
4 年多之前 回复
u013224343
javabean12345 回复lhl_lqc: 但是我的需求是:在原来的json字符串前面和后面加一段字符,这个该怎样办到?
4 年多之前 回复
bulusli3
lhl_lqc 回复javabean12345: 为空时,你就new一个,然后设值或者在Controller中对modelAndView设值。
4 年多之前 回复
u013224343
javabean12345 还是不行,modelandeview本事就是个空的对象,没法获取里面的参数
4 年多之前 回复
bulusli3
lhl_lqc 回复javabean12345: 类似这样,在modelView里面获取或者在里面添加你的数据。public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { if(modelAndView != null){ // modelAndView.addObject("now", new Date()); } }
4 年多之前 回复
u013224343
javabean12345 我用的fastjackson,返回给页面的是json字符串
4 年多之前 回复
u013224343
javabean12345 回复lhl_lqc: 具体怎么实现呢?
4 年多之前 回复
bulusli3
lhl_lqc 回复javabean12345: 你的内容会放在ModelView里面。不需要response write输出。
4 年多之前 回复
u013224343
javabean12345 是啊,我是这么想的,但是无法获取到response里面的内容,也不能通过response.getWriter().write()往外输出(会报outputstream流已被占用错误)
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问