响应中产生结果

  • @ResponseBody - 产生响应文本
  • @ModelAndView - 利用模板引擎渲染输出
  1. @ResponseBody
    • 直接产生响应体数据。过程不涉及任何视图
    • 可产生标准的字符串/JSON/XML等格式数据
    • 被StringHttpMessageConverter所影响
@PostMapping("/p1")
    @ResponseBody
    public String postMapping1(User user , String username ,@DateTimeFormat(pattern = "yyyy-MM-dd") Date createTime){
        System.out.println(user.getUsername() + ":" + user.getPassword());
        return "<h1>这是Post响应</h1>";
    }
  1. @ModelAndView
    • ModelAndView对象是指模型(数据)和视图(界面)对象
    • 通过ModelAndView可将包含数据对象与模板引擎进行绑定
    • SpringMVC中默认的view是jsp,也可以配置其他模板引擎。
      使用:在controller层写方法返回值必须是ModelAndView,然后方法中创建ModelAndView对象,setViewName设置访问的jsp页面路径
      controller层
      @GetMapping("/view")
      public ModelAndView showView(Integer userId){
      //        ModelAndView mav = new ModelAndView("redirect:/view.jsp");
        ModelAndView mav = new ModelAndView();
        mav.setViewName("/um/view.jsp");
        User user = new User();
        if(userId == 1){
            user.setUsername("lily");
        }else if(userId == 2){
            user.setUsername("smith");
        }else if(userId == 3){
            user.setUsername("lina");
        }
        mav.addObject("u" , user);
        return mav;
      }
      view层:jsp页面
      <html>
      <head>
      <title>Title</title>
      </head>
      <body>
      <h1>I'm view page</h1>
      <hr>
      <h3>Username:${u.username}</h3>
      </body>
      </html>