zoukankan      html  css  js  c++  java
  • Spring Controller 获取请求参数的几种方法

     1、直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交。若"Content-Type"="application/x-www-form-urlencoded",可用post提交

           url形式:http://localhost:8080/SSMDemo/demo/addUser1?username=lixiaoxi&password=111111 提交的参数需要和Controller方法中的入参名称一致。

       /**
         * 1.直接把表单的参数写在Controller相应的方法的形参中
          * @param username
         * @param password
         * @return
         */
        @RequestMapping("/addUser1")
        public String addUser1(String username,String password) {
            System.out.println("username is:"+username);
            System.out.println("password is:"+password);
            return "demo/index";
        }

    2、通过HttpServletRequest接收,post方式和get方式都可以。
        /**
         * 2、通过HttpServletRequest接收
          * @param request
         * @return
         */
        @RequestMapping("/addUser2")
        public String addUser2(HttpServletRequest request) {
            String username=request.getParameter("username");
            String password=request.getParameter("password");
            System.out.println("username is:"+username);
            System.out.println("password is:"+password);
            return "demo/index";
        }
    3、通过一个bean来接收,post方式和get方式都可以。
      /**
         * 3、通过一个bean来接收
          * @param user
         * @return
         */
        @RequestMapping("/addUser3")
        public String addUser3(UserModel user) {
            System.out.println("username is:"+user.getUsername());
            System.out.println("password is:"+user.getPassword());
            return "demo/index";
        }
    4、使用@ModelAttribute注解获取POST请求的FORM表单数据
      /**
         * 4、使用@ModelAttribute注解获取POST请求的FORM表单数据
          * @param user
         * @return
         */
        @RequestMapping(value="/addUser5",method=RequestMethod.POST)
        public String addUser5(@ModelAttribute("user") UserModel user) {
            System.out.println("username is:"+user.getUsername());
            System.out.println("password is:"+user.getPassword());
            return "demo/index";
        }
    5、用注解@RequestParam绑定请求参数到方法入参
      当请求参数username不存在时会有异常发生,可以通过设置属性required=false解决,例如: @RequestParam(value="username", required=false)
      **** 若"Content-Type"="application/x-www-form-urlencoded",post get都可以
      **** 若
    "Content-Type"="application/application/json",只适用get
       /**
         * 5、用注解@RequestParam绑定请求参数到方法入参
          * @param username
         * @param password
         * @return
         */
        @RequestMapping(value="/addUser6",method=RequestMethod.GET)
        public String addUser6(@RequestParam("username") String username,@RequestParam("password") String password) {
            System.out.println("username is:"+username);
            System.out.println("password is:"+password);
            return "demo/index";
        }
    6、用request.getQueryString() 获取spring MVC get请求的参数,只适用get请求
      @RequestMapping(value="/addUser6",method=RequestMethod.GET)
        public String addUser6(HttpServletRequest request) { 
        System.out.println("username is:"+request.getQueryString());
        return "demo/index"; 
      }
     
  • 相关阅读:
    OpenJDK源码研究笔记(十二):JDBC中的元数据,数据库元数据(DatabaseMetaData),参数元数据(ParameterMetaData),结果集元数据(ResultSetMetaDa
    Java实现 LeetCode 257 二叉树的所有路径
    Java实现 LeetCode 257 二叉树的所有路径
    Java实现 LeetCode 257 二叉树的所有路径
    Java实现 LeetCode 242 有效的字母异位词
    Java实现 LeetCode 242 有效的字母异位词
    Java实现 LeetCode 242 有效的字母异位词
    Java实现 LeetCode 241 为运算表达式设计优先级
    Java实现 LeetCode 241 为运算表达式设计优先级
    Java实现 LeetCode 241 为运算表达式设计优先级
  • 原文地址:https://www.cnblogs.com/gjack/p/8900603.html
Copyright © 2011-2022 走看看