本文共 3044 字,大约阅读时间需要 10 分钟。
produces
的内容是指定返回的媒体类型让浏览器识别
本例演示向控制器提交json数据,返回结果分别为json和xml格式;
从@RestController看出,@RestController是一个元注解,组合了@Controller,@ResponseBody,相当于同时使用了@Controller @ResponseBody
@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Controller@ResponseBodypublic @interface RestController { /** * The value may indicate a suggestion for a logical component name, * to be turned into a Spring bean in case of an autodetected component. * @return the suggested component name, if any * @since 4.0.1 */ String value() default "";}
4.2.2 代码 添加jackson依赖 jackson-dataformat-xml依赖jackson-bind,这样我们能同时返回xml和json com.fasterxml.jackson.dataformat jackson-dataformat-xml 2.5.3 若只需返回json数据(大多数项目都是这样),将上面依赖更换为 com.fasterxml.jackson.core jackson-databind 2.5.3 传值对象 package com.wisely.web;public class DemoObj { private Long id; private String name; //此处一定要有空构造,不然会有400 bad request,主要是jackson将json参数转换为对象需要 public DemoObj() { super(); } public DemoObj(Long id, String name) { super(); this.id = id; this.name = name; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }} . DemoMVCConfig注册静态资源 // 静态资源映射 @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/js/**").addResourceLocations("/js/"); } 控制器 package com.wisely.web;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/api")public class RESTController { @RequestMapping(value = "/getjson",produces={ "application/json;charset=UTF-8"}) public DemoObj getjson(@RequestBody DemoObj obj){ return new DemoObj(obj.getId()+1, obj.getName()+"yy"); } @RequestMapping(value = "/getxml",produces={ "application/xml;charset=UTF-8"}) public DemoObj getxml(@RequestBody DemoObj obj){ return new DemoObj(obj.getId()+1, obj.getName()+"yy"); }} 页面代码 "> 结果
转载地址:http://sjcpi.baihongyu.com/