当前位置: 首页 > news >正文

优秀网站开发商宁德古田建设局网站

优秀网站开发商,宁德古田建设局网站,客户管理软件app,网站建设方案实施1.返回值解析器介绍 返回值解析器用于解析Hanlder执行方法后的返回结果,例如将方法上标注有@ResponseBody注解的返回值解析成JSON、将方法返回的字符串作为视图名等 SpringMVC中默认的返回值解析器见RequestMappingHandlerAdapter#getDefaultReturnValueHandlers private L…1.返回值解析器介绍 返回值解析器用于解析Hanlder执行方法后的返回结果,例如将方法上标注有@ResponseBody注解的返回值解析成JSON、将方法返回的字符串作为视图名等 SpringMVC中默认的返回值解析器见RequestMappingHandlerAdapter#getDefaultReturnValueHandlers private ListHandlerMethodReturnValueHandler getDefaultReturnValueHandlers() {ListHandlerMethodReturnValueHandler handlers = new ArrayList(20);handlers.add(new ModelAndViewMethodReturnValueHandler());handlers.add(new ModelMethodProcessor());handlers.add(new ViewMethodReturnValueHandler());handlers.add(new ResponseBodyEmitterReturnValueHandler(getMessageConverters(),this.reactiveAdapterRegistry, this.taskExecutor, this.contentNegotiationManager));handlers.add(new StreamingResponseBodyReturnValueHandler());handlers.add(new HttpEntityMethodProcessor(getMessageConverters(),this.contentNegotiationManager, this.requestResponseBodyAdvice));handlers.add(new HttpHeadersReturnValueHandler());handlers.add(new CallableMethodReturnValueHandler());handlers.add(new DeferredResultMethodReturnValueHandler());handlers.add(new AsyncTaskMethodReturnValueHandler(this.beanFactory));handlers.add(new ModelAttributeMethodProcessor(false));handlers.add(new RequestResponseBodyMethodProcessor(getMessageConverters(),this.contentNegotiationManager, this.requestResponseBodyAdvice));handlers.add(new ViewNameMethodReturnValueHandler());handlers.add(new MapMethodProcessor());// 添加自定义的返回值解析器if (getCustomReturnValueHandlers() != null) {handlers.addAll(getCustomReturnValueHandlers());}// 兜底的解析器if (!CollectionUtils.isEmpty(getModelAndViewResolvers())) {handlers.add(new ModelAndViewResolverMethodReturnValueHandler(getModelAndViewResolvers()));}else {handlers.add(new ModelAttributeMethodProcessor(true));}return handlers; } 这些返回值解析器会被封装到HandlerMethodReturnValueHandlerComposite中,处理返回值时,会按照加入的顺序依次判断每个返回值解析器能否解析此任务,如果其中某个解析器能够解析此参数,则返回解析结果 2.自定义返回值解析器 在某些场景下,我们可以自定义返回值解析器,将响应的返回值转成我们希望的格式,假如我们想要将响应转换为yml格式,这时我们可以自定义注解,然后再自定义返回值解析器实现HandlerMethodReturnValueHandler接口,示例如下: 1)创建自定义注解@Yml及自定义返回值处理器YmlReturnResolver实现HandlerMethodReturnValueHandler接口 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface Yml { }public class YmlReturnResolver implements HandlerMethodReturnValueHandler {// 判断返回值解析器是否支持@Overridepublic boolean supportsReturnType(MethodParameter methodParameter) {Yml yml = methodParameter.getMethodAnnotation(Yml.class);return yml != null;}@Overridepublic void handleReturnValue(Object o, MethodParameter methodParameter, ModelAndViewContainer modelAndViewContainer,NativeWebRequest nativeWebRequest) throws Exception {// 将返回值转换为yamlString str = new Yaml().dump(o);// 设置响应内容HttpServletResponse response = nativeWebRequest.getNativeResponse(HttpServletResponse.class);response.setContentType("text/plain;charset=utf-8");response.getWriter().print(str);// 设置请求已处理完毕modelAndViewContainer.setRequestHandled(true);} } 2)配置类中加入自定义返回值解析器 @Configuration @ComponentScan public class WebConfig {@Beanpublic ServletWebServerFactory servletWebServerFactory() {return new TomcatServletWebServerFactory();}@Beanpublic DispatcherServlet dispatcherServlet() {return new DispatcherServlet();}@Beanpublic DispatcherServletRegistrationBean servletRegistrationBean(DispatcherServlet dispatcherServlet) {DispatcherServletRegistrationBean dispatcherServletRegistrationBean = new DispatcherServletRegistrationBean(dispatcherServlet, "/");dispatcherServletRegistrationBean.setLoadOnStartup(1);return dispatcherServletRegistrationBean;}@Beanpublic MyRequestMappingHandlerAdapter requestMappingHandlerAdapter() {MyRequestMappingHandlerAdapter handlerAdapter = new MyRequestMappingHandlerAdapter();// 添加自定义返回值解析器handlerAdapter.setCustomReturnValueHandlers(Arrays.asList(new YmlReturnResolver()));return handlerAdapter;} } 3)创建控制器类及实体类 @Controller public class Controller01 {@GetMapping("/test")@Ymlpublic User test() {
http://www.yayakq.cn/news/1029/

相关文章:

  • 新手建站工具有做软件的网站有哪些
  • 怎么给领导做网站分析深圳创业补贴怎么申请
  • 个人asp网站模板下载信息流优化师培训
  • 万户网络网站顾问北京网站建设 爱牛
  • 小百姓这个网站谁做的丽水品牌网站设计
  • 在建设银行网站上还贷seo优化关键词是什么意思
  • 陕西咸阳做网站的公司网站建设模块下载
  • 网站开发设计哪家好安康网站建设公司报价
  • 百度免费推广有哪些方式谷歌seo优化
  • 谷歌seo网站推广app开发公司上市
  • 什么网站上可以做国际贸易wordpress主题定制
  • 小学网站模板源码网站开发到上线的流程
  • 门户网站英文版建设夸克建站系统源码下载
  • 征求网站建设网站建设基本资料
  • 中国十大门户网站数据分析网站开发
  • 做网站排名工业设计网站外网
  • 网站后台管理系统模块wordpress 管理界面
  • 网站站外引流怎么做网站平面模板
  • 现在用什么做网站手机app下载安卓版
  • 母婴网站建设前期规划腾讯微博做网站外链步骤
  • 网站模板怎么上传wordpress编辑器自动标签
  • 公司建的站加油违法吗电商网站图片
  • 白银区住房和城乡建设局网站郑州网红打卡地
  • 物业网站模板信息门户平台
  • 做推文网站长沙信息网
  • 公司网站建站公司厦门排名推广
  • 万荣网站seo广州网站商城建设
  • 山东建站商城怎么做网站流量竞品分析
  • 手机网站推荐导航页在印度做视频网站
  • 怎麽做网站河南智慧团建官网