SpringMVC返回值类型及响应数据类型

返回值是String、void、ModelAndView类型

    /**
     * 返回值是字符串类型
     *
     * @param model
     * @return
     */
    @RequestMapping("/testString")
    public String testString(Model model) {
        System.out.println("testString方法执行了");
        User user = new User();
        user.setUsername("张三");
        user.setPassword("123456");
        user.setAge(20);
        model.addAttribute("user", user);
        //指定逻辑视图的名称,根据视图解析器为物理视图的地址
        //跳转到某个页面
        return "success";
    }

    /**
     * 返回值是void
     * 如果控制器的方法返回值编写成void,执行程序报404的异常,默认查找JSP页面没有找到
     * 默认会跳转到@RequestMapping(value="/initUpdate") initUpdate的页面
     *
     * @param request
     * @param response
     * @throws ServletException
     * @throws IOException
     */
    @RequestMapping("/testVoid")
    public void testVoid(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("testVoid方法执行了");

        //1.转发
        //request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request, response);

        //2.重定向
        //response.sendRedirect(request.getContextPath() + "/index.jsp");

        //解决中文乱码
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");

        //直接进行响应
        response.getWriter().write("你好");

        return;
    }

    /**
     * 返回值是ModelAndView
     * ModelAndView对象是Spring提供的一个对象,可以用来调整具体的JSP视图
     *
     * @return
     */
    @RequestMapping("/testModelAndView")
    public ModelAndView testModelAndView() {
        //创建ModelAndView对象
        ModelAndView mv = new ModelAndView();
        User user = new User();
        user.setUsername("李四");
        user.setPassword("123456");
        user.setAge(20);

        System.out.println("testModelAndView方法执行了");


        //将User对象存入mv,User对象会同时存入request对象中
        mv.addObject("user", user);
        //设置跳转到哪个页面
        mv.setViewName("success");
        return mv;
    }

    /**
     * 返回值中使用关键字进行转发或重定向
     *
     * @return
     */
    @RequestMapping("/testForwardOrRedirect")
    public String testForwardOrRedirect() {
        //使用关键字进行转发和重定向的时候不能再使用视图解析器对象,需自己补全路径
        //转发
        //return "forward:/WEB-INF/pages/success.jsp";
        //重定向
        return "redirect:/index.jsp";
    }

响应JSON数据

jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title
    
    






Controller
	@RequestMapping("/testAjax")
    public @ResponseBody
    User testAjax(@RequestBody User user) {
        //客户端发送ajax请求,将json字符串封装到User中
        System.out.println(user);

        //返回一个新的User
        user.setUsername("lisi");
        user.setPassword("abcd");
        user.setAge(12);

        return user;
    }

你可能感兴趣的:(ssm)