SpringBoot内部方法之间跳转

时间:2021-05-24 00:40:45

从controller的一个方法跳转到另一个方法中可以通过重定向实现,重定向具体语法:redirect:要访问的网址

具体请看下面示例:

@Controller
@RequestMapping("/user")
public class UserController {
    @Resource
    private UserService userService;

    @GetMapping("/list")
    public ModelAndView list(ModelAndView mav, Integer pageNum, Integer pageSize) {
        //……
        mav.setViewName("user/list");

        return mav;
    }

    /**
     * 具体修改用户信息
     * @param user
     * @return
     */
    @PostMapping("/update1")
    public String update1(User user) {
        userService.updateUserSensitiveById(user);
        //使用重定向再次打开列表页面
        return "redirect:/user/list";
    }
//控制器类的注解不能使用@RestController,要用@Controller。因为@RestController内含@ResponseBody,解析返回的是json串,就不再是跳转页面了

    @PostMapping("/update2")
    public void update2(User user, HttpServletResponse response) {
        userService.updateUserSensitiveById(user);
        //使用重定向再次打开列表页面
        try {
            response.sendRedirect("/wego/user/list"); //重定向
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    //此时控制器类注解可以使用@RestController,也可以使用@Controller
}