springMVC (four): springMVC response data binding

1, returning void

Use direct response response, such as:

    /**
     * 返回类型为void
     * @param request
     * @param response
     * @throws Exception
     */
    @RequestMapping("/testVoid")
    public void testVoid(HttpServletRequest request, HttpServletResponse response) throws Exception {
        // 设置中文乱码
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        // 直接会进行响应
        response.getWriter().print("你好");
        return;
    }

2, the return value String

2.1, the tie set to request data

@RequestMapping("/login4.do")
public String login4(AdminParam 		ap,HttpServletRequest req) {
	System.out.println("login4()");
	String adminCode = ap.getAdminCode();
	//将数据绑定到request对象上
	req.setAttribute("adminCode", adminCode);
	return "index";
}

2.2 Binding Data to Model

    /**
     * 返回类型为String
     * @param model
     * @return
     */
    @RequestMapping("/testString")
    public String testString(Model model){
        UserInfo userInfo = new UserInfo();
        userInfo.setUsername("张三");
        userInfo.setPassword("123");
        userInfo.setDate(new Date());
        model.addAttribute("userInfo",userInfo);
        return "success";
    }

2.3 Binding Data to ModelMap

//DispatcherServlet从ModelMap对象获取数据,然后将这些数据绑定到request.
@RequestMapping("/login6.do")
public String login6(AdminParam ap,ModelMap mm) {
	System.out.println("login6()");
	String adminCode = ap.getAdminCode();
	mm.addAttribute("adminCode",adminCode);
	return "index";
}

2.4, the data tied to the session set

@RequestMapping("/login7.do")
public String login7(AdminParam ap,HttpSession session) {
	System.out.println("login7()");
	String adminCode = ap.getAdminCode();
	//将数据绑定到session
	session.setAttribute("adminCode", 		adminCode);
	return "index";
}

3, the return value ModelAndView

    /**
     * 返回类型为ModelAndView
     * @return
     */
    @RequestMapping("/testModelAndView")
    public ModelAndView testModelAndView(){
        ModelAndView mv = new ModelAndView();
        UserInfo userInfo = new UserInfo();
        userInfo.setUsername("李四");
        userInfo.setPassword("456");
        userInfo.setDate(new Date());

        // 把userInfo对象存储到mv对象中,也会把userInfo对象存入到request对象
        mv.addObject("userInfo",userInfo);

        // 跳转到哪个页面
        mv.setViewName("success");
        return mv;
    }

4, redirection

4.1, the return value is void

    /**
     * 重定向
     * @param request
     * @param response
     * @throws Exception
     */
    @RequestMapping("/testRedirect")
    public void testRedirect(HttpServletRequest request, HttpServletResponse response) throws Exception {
        // 重定向
        response.sendRedirect(request.getContextPath()+"/index.jsp");
        return;
    }

4.2, the return value is String

    /**
     * 使用关键字的方式进行重定向
     * @return
     */
    @RequestMapping("/testForwardOrRedirect")
    public String testForwardOrRedirect(HttpServletRequest request){
        UserInfo userInfo = new UserInfo();
        userInfo.setUsername("张三");
        userInfo.setPassword("123");
        userInfo.setDate(new Date());
        request.setAttribute("userInfo",userInfo);

        // 重定向
        return "redirect:/index.jsp";
    }

4.3, the return value ModelAndView

    /**
     * 使用RedirectView重定向
     * @return
     */
    @RequestMapping("/testRedirect1")
    public ModelAndView testRedirect1(HttpServletRequest request){
        UserInfo userInfo = new UserInfo();
        userInfo.setUsername("张三");
        userInfo.setPassword("123");
        userInfo.setDate(new Date());
        request.setAttribute("userInfo",userInfo);

        RedirectView rv = new RedirectView(request.getContextPath() + "/index.jsp");
        ModelAndView mav = new ModelAndView(rv);
        return mav;
    }

5, forward

5.1, returning void

    /**
     * 转发
     * @param request
     * @param response
     * @throws Exception
     */
    @RequestMapping("/testForward")
    public void testForward(HttpServletRequest request, HttpServletResponse response) throws Exception {
        UserInfo userInfo = new UserInfo();
        userInfo.setUsername("张三");
        userInfo.setPassword("123");
        userInfo.setDate(new Date());
        request.setAttribute("userInfo",userInfo);
        // 编写请求转发的程序
        request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request,response);
        return;
    }

5.2, the return value is String

    /**
     * 使用关键字的方式进行转发
     * @return
     */
    @RequestMapping("/testForwardOrRedirect")
    public String testForwardOrRedirect(HttpServletRequest request){
        UserInfo userInfo = new UserInfo();
        userInfo.setUsername("张三");
        userInfo.setPassword("123");
        userInfo.setDate(new Date());
        request.setAttribute("userInfo",userInfo);
        // 请求的转发
        return "forward:/WEB-INF/pages/success.jsp";
    }

6, in response to data json

    /**
     * 模拟异步请求响应
     * RequestBody注解:将json的字符串转换成JavaBean的对象
     * ResponseBody注解:将JavaBean对象转换成json字符串
     */
    @RequestMapping("/testAjax")
    public @ResponseBody UserInfo testAjax(@RequestBody UserInfo userInfo){
        // 客户端发送ajax的请求,传的是json字符串,后端把json字符串封装到userInfo对象中
        System.out.println(userInfo);
        userInfo.setUsername("haha");
        userInfo.setPassword("123");
        return userInfo;
    }

 

Published 134 original articles · won praise 10 · views 7343

Guess you like

Origin blog.csdn.net/yu1755128147/article/details/103901721