return无法实现跳转请求,且只会在界面上输出return中的内容。Controller类与RestController类的区别

return “forward:/success”; return “redirect:/success”;无法跳转请求,且只会在界面上输出return中的内容,

1.Controller类与RestController类的区别

Controller类中,跳转有效

@Controller
public class ParameterTest {
    
	@RequestMapping("/params")
    public String testParams( HttpServletRequest request){
        
        
        request.setAttribute("msg","成功了....");//@RequestAttribute("msg")获取
       request.setAttribute("code",200);
        return "forward:/success";
    }
    
    @RequestBody
    @RequestMapping("/success")
    public String success(@RequestAttribute(value = "msg" ,required=false) String msg,@RequestAttribute(value = "code",required=false)Integer code,HttpServletRequest request){
        Map<String,Object> map = new HashMap<>();
        map.put("msg",msg);
        map.put("code",code);
        return map;
    }
}

RestController类中,跳转无效

@RestController
public class ParameterTest {
    
}

@RestController注解相当于@ResponseBody + @Controller合在一起的作用。

1)使用@Controller 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面.

所以 return “forward:/success”; return “redirect:/success”;只有在Controller类中才能正常使用。但是在Controller类中的方法要返回json数据,则此方法需要@RequestBody注解

2)如果只是使用@RestController注解,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。即return “forward:/success”; return “redirect:/success”;只会在界面中输出forward:/success或redirect:/success。但是在@RestController注解下的Controller类中的方法返回json数据不再需要@ResponseBody注解。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值