1.使用 String 作为请求处理方法的返回值类型是比较通用的方法,这样返回的逻辑视图名不会和请求 URL 绑定,具有很大的灵活性,而模型数据又可以通过 ModelMap 控制。 2.使用void,map,Model 时,返回对应的逻辑视图名称真实url为:prefix前缀+视图名称 +suffix后缀组成。 3.使用String,ModelAndView返回视图名称可以不受请求...
public class UserController { @RequestMapping("addUser") public String addUser(UserParam userParam) { if (StringUtils.isEmpty(userParam.getUserName())) { return "用户名不能为空"; } if (StringUtils.isEmpty(userParam.getPhone())) { return "手机号不能为空"; } if (userParam.getPhone()....
public String test1(){ return "test"; } } 执行结果如下: 3.3 如果Controller类的返回值没有String类型的,仅有上面这个类就够了。如果有String类型的返回值,就有可能遇到类型不匹配的问题。HttpMessageConverter是根据Controller的原始返回值类型进行处理的,而我们在ResponseAdvisor中改变了返回值的类型。如果HttpMess...
@ResponseBodypublicString getParamsDifferent(@RequestParam("name") String name) {return"getParamsDifferent method do " +name; } } 二、返回值 @RestController注解,相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,...
@OverridepublicObject beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {if(bodyinstanceofString){//如果Controller直接返回String的话,SpringBoot是直接返回,故我们需要手动转换成json。returnob...
所以呢我们需要对代码进行优化,目标就是不要每个接口都手工制定ResultData返回值。 高级实现方式 要优化这段代码很简单,我们只需要借助SpringBoot提供的ResponseBodyAdvice即可。 ResponseBodyAdvice的作用:拦截Controller方法的返回值,统一处理返回值/响应体,一般用来统一返回格式,加解密,签名等等。
这段代码一定要加,如果Controller直接返回String的话,SpringBoot是直接返回,故我们需要手动转换成json。 经过上面的处理我们就再也不需要通过ResultData.success()来进行转换了,直接返回原始数据格式,SpringBoot自动帮我们实现包装类的封装。 此时我们调用接口返回的数据结果为: ...
写一个Controller来尝试一下: @RestControllerpublicclassHelloController{@GetMapping("/hello")publicStringhello(){return"hello world!";}} 请求这个端点得到结果: {"code":200,"msg":"success","data":"hello world!"} 说明我们的配置是成功的,同时可以在相应头中看到: ...
spring mvc在返回数据时,如果用了 @RestController,会尝试将controller方法的返回类型直接转换成response ...
private String message; private String code; private Object data; } @RequestMapping("/foo") public ResponseData foo() { // 或者使用工具类返回,根据业务设置值 return new ResponseData(); } 除了上述方法,可以对返回值进行统一处理,不需要对所有controller都使用一个返回值,controller只需要返回原始值,处理...