zoukankan      html  css  js  c++  java
  • SpringMVC controller中业务方法的参数、返回值

    业务方法的参数

    业务方法的参数类型、参数个数是任意的,根据需要使用。

    常见的参数类型:

    • HttpServletRequest、HttpServletResponse、HttpSession   

         获取Servlet原生的API

    • Model 、ModelMap   

         向视图传递数据,会自动将Model、ModelMap中的数据传给视图。

    • 简单数据类型 、实体类

         接收表单传递的数据


    常见的返回值类型

    • ModeAndView 

         视图名+数据

    • String   

          返回视图名,会与视图解析器中的前缀、后缀拼接起来,组成完整的视图名。

       可以和@ResponseBody配合使用,直接向浏览器输出字符串。

    • void 

         有时候接收到请求后,做一些操作就OK了,不必返回视图来响应,这时可以把返回值类型写成void。

       如果想转发、重定向、向视图传递数据,可以传入参数HttpServletRequest、HttpServletResponse。

       需要注意的是,使用HttpServletRequest、HttpServletResponse进行转发、重定向时,不会使用视图解析器,需要写完整的视图名。


    示例   返回视图名

    比如登录成功,返回某个视图名,转发到指定的页面。

        @RequestMapping("/login")
        public String login(){
            //....
            return "index";
        }
    
        @RequestMapping("/logout")
        public String logout(){
            //....
            return "index";
        }
    
        @RequestMapping("/upload")
        public String upload(){
            //....
            return "success";
        }

    示例  使用Model向视图传递数据

        @RequestMapping("/handler")
        public String handler(Model model){
            User user = new User();
            user.setUsername("chy");
            user.setPassword("abcd");
            
            model.addAttribute("user", user);
            return "user_info";
        }

    在视图中可通过${key}的方式获取对应的value。

    Model中可储存多个数据,使用多个setAttribute()即可,数据的类型可以不相同(实质是使用Map储存数据)。


    示例   直接输出到浏览器

    方式一:

        @RequestMapping("/user")
        @ResponseBody
        public String handler(){
            return "<h2>hello</h2>";
        }

    把字符串添加到响应体中返回给浏览器。浏览器会解析里面的html标签。

    方式二:

        @RequestMapping("/user")
        public void handler(HttpServletResponse response) throws IOException {
            response.getWriter().print("<h1>hello</h1>");
        }

    注意print()才是输出到浏览器页面上,write()是向浏览器写数据,浏览器会把write()的内容保存到文件中(下载)。

  • 相关阅读:
    UVA 818 Cutting Chains 切断圆环链 (暴力dfs)
    UVA 211 The Domino Effect 多米诺效应 (回溯)
    UVA225 Golygons 黄金图形(dfs+回溯)
    UVA208 Firetruck 消防车(并查集,dfs)
    UVA11212 EditingaBook ( IDA*搜索)
    UVA 140 Brandwidth 带宽 (dfs回溯)
    uva 1601 poj 3523 Morning after holloween 万圣节后的早晨 (经典搜索,双向bfs+预处理优化+状态压缩位运算)
    UVA10410 TreeReconstruction 树重建 (dfs,bfs序的一些性质,以及用栈处理递归 )
    cdoj 414 八数码 (双向bfs+康拓展开,A*)
    UVA 246 10-20-30 10-20-30游戏 模拟+STL双端队列deque
  • 原文地址:https://www.cnblogs.com/chy18883701161/p/12248358.html
Copyright © 2011-2022 走看看