spring 获取 返回的值,进行修改

来源:互联网 发布:37少年群侠传进阶数据 编辑:程序博客网 时间:2024/05/22 13:02
因为项目的需要,要对反会的值进行处理,我使用的 spring  
@ControllerAdvice 注解进行处理
以前的接口有一部分是返回string,所以要进行兼容
package com.threeti.danfoss.base.interceptor;import javax.servlet.http.HttpServletRequest;import org.springframework.core.MethodParameter;import org.springframework.http.MediaType;import org.springframework.http.converter.HttpMessageConverter;import org.springframework.http.server.ServerHttpRequest;import org.springframework.http.server.ServerHttpResponse;import org.springframework.http.server.ServletServerHttpRequest;import org.springframework.web.bind.annotation.ControllerAdvice;import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;import org.springframework.web.servlet.support.RequestContext;import com.threeti.danfoss.base.entity.XaResult;@ControllerAdvice(basePackages ={"com.threeti.danfoss.base.controller","com.threeti.danfoss.business.controller"})public class MyResponseBodyAdvice implements ResponseBodyAdvice<Object> {@Overridepublic boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {//获取当前处理请求的controller的方法//String methodName=returnType.getMethod().getName(); /*// 不拦截/不需要处理返回值 的方法String method= "loginCheck"; //如登录//不拦截if(method.equals(methodName)){return false;}*/ return true;}/*@Overridepublic T beforeBodyWrite(T body, MethodParameter returnType, MediaType selectedContentType,Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request,ServerHttpResponse response) {// TODO Auto-generated method stubreturn null;}*/@Overridepublic Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType,Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request,ServerHttpResponse response) {if(body instanceof XaResult){XaResult xr = (XaResult) body;String message = xr.getMessage();//获取messageServletServerHttpRequest req = (ServletServerHttpRequest) request;HttpServletRequest httpReq = req.getServletRequest();RequestContext myreq = new RequestContext(httpReq);try{if(xr.getMsgParams() == null){message = myreq.getMessage(message);}else{message = myreq.getMessage(message,xr.getMsgParams());}}catch(Exception e){message=myreq.getMessage("defined");}xr.setMessage(message);return xr;}else{return String.valueOf(body);}}}
因为做的 接口大部分是用定义的对象 XaResult 返回
@ResponseBody@RequestMapping(value="findProductCodeByStation",method=RequestMethod.POST)public XaResult<List<ProductCode>> findProductCodeByStation(@RequestParam(value = "station") String station,HttpServletRequest request) throws BusinessException{//Long userId = WebUitl.getCmsLoginedUserId(request);return productCodeService.findProductCodeByStation(station);}



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 如果孩子打妈妈怎么办 孩子英语成绩不好怎么办 小孩说话发音不准怎么办 小孩gk发音不准怎么办 大学无英语基础怎么办 孩子应用题理解不透怎么办 嫉妒一个人好痛苦怎么办 爱嫉妒别人怎么办心理 总有人嫉妒我怎么办 从小嫉妒闺蜜怎么办 怕闺蜜比我好怎么办 孩子不会做应用题怎么办 当你嫉妒别人怎么办 单位社保发票丢失怎么办 单位医保发票丢失怎么办 图书明细没有给怎么办 拼音拼不到一起怎么办 孩子不会拼拼音怎么办 小孩子不会拼拼音怎么办 小孩拼音发音不准怎么办 孩子声调不会标怎么办 孩子拼音发音不准怎么办 孩子学拼音不会怎么办? 孩子不会拼生字怎么办? 对数字不敏感怎么办 孩子说话不算数怎么办 儿童做事不认真怎么办 幼儿园小朋友爱打人怎么办 遇到熊孩子家长怎么办 小孩嘴烂了怎么办 孩子杯宠坏了怎么办 小孩子老爱打人怎么办 小孩偏执的性格怎么办 孩子上学爱打人怎么办 宝宝爱动手打人怎么办 幼儿爱打人教师怎么办 中班幼儿爱打人怎么办 幼儿园小班小朋友打人老师怎么办 2岁小朋友打人怎么办 幼儿爱乱讲话怎么办 幼儿园小孩打架老师怎么办