• springmvc有哪几种请求参数的方式呢?


    转自:

    springmvc有哪几种请求参数的方式呢?

    传送参数至后台,是每个系统都必须面对的事实,因为系统就是一个实现人机交互的工具,那么Spring MVC中如何在后台获取参数呢?
    下文将一一道来,如下所示:

    方式一:在Controller的形参中直接写入表单名称用于接收参数,此方式只可用于get提交,如下

        /**
         * 参数写入Controller中
          * @param username
         * @param pwd
         * @return
         */
        @RequestMapping("/createUser")
        public String createUser(String username,String pwd) {
            System.out.println("用户名:"+username);
            System.out.println("密码:"+pwd);
            return "jsp/test";
        }

     访问url http://localhost/springmvTest/test/createUser?username=java265&pwd=888888
    注意事项:
           表单参数名需同Controller中方法的参数名称一致 

    方式二:使用HttpServletRequest接收参数,此方法可接收post和get两种方式

        /**
         * 采用HttpServletRequest接收
          * @param request
         * @return
         */
        @RequestMapping("/createUser2")
        public String createUser2(HttpServletRequest request) {
            String username=request.getParameter("username");
            String pwd=request.getParameter("pwd");
            System.out.println("用户名:"+username); 
           System.out.println("密码:"+pwd); 
           return "jsp/test";
        }

    方式三:、使用一个bean 接收参数,post方式和get方式都可以

    操作步骤
    1.创建一个bean和表单中参数对应
     

    package com.java265.springmvc;
    public class UserModel {
        
        private String username;
        private String pwd;
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getPwd() {
            return pwd;
        }
        public void setPwd(String pwd) {
            this.pwd = pwd;
        }
        
    }

    2.采用bean封装并接收参数
     

        /**
         * 使用bean 接收参数信息
          * @param user
         * @return
         */
        @RequestMapping("/createUser3")
        public String createUser3(UserModel user) {
            System.out.println("用户名:"+user.getUsername());
            System.out.println("密码:"+user.getPassword());
           return "jsp/test";
        }

    方式四:使用@PathVariable获取路径中的参数

        /**
         * 使用@PathVariable获取路径中的参数
          * @param username
         * @param pwd
         * @return
         */
        @RequestMapping(value="/createUser4/{username}/{pwd}",method=RequestMethod.GET)
    public String addUser4(@PathVariable String username,@PathVariable String pwd) {
            System.out.println("用户名:"+username);
            System.out.println("密码:"+pwd);
            return "demo/index";
        }

     访问url http://localhost/springmvTest/test/createUser4/java265/888888
      会将url 按照模板的形式转换为变量,并绑定到userName和pwd变量上 

    方式五:运用@ModelAttribute 注解的方式 获得POST请求中FORM表单数据
    Jsp表单如下:

    用户名:
    密 码:

    Spring MVC Controller如下:

        /**
         * 5、使用@ModelAttribute注解获取POST请求的FORM表单数据
          * @param user
         * @return
         */
        @RequestMapping(value="/createUser5",method=RequestMethod.POST)
        public String createUser5(@ModelAttribute("user") UserModel user) {
            System.out.println("用户名:"+user.getUsername());
            System.out.println("密码:"+user.getPassword());
            return "jsp/test";
        }

    方式六:使用注解@RequestParam绑定请求参数到方法入参

         注意设置属性required的值,当值不存在时,会发生相应的异常信息
       如: 请求username不存在时,我们可通过设置required=false,避免无值传入时报错
              @RequestParam(value="username", required=false) 

        /**
         * 运用注解@RequestParam绑定请求参数到方法入参
          * @param username
         * @param pwd
         * @return
         */
        @RequestMapping(value="/createUser6",method=RequestMethod.GET)
        public String createUser6(@RequestParam("username") String username,@RequestParam("pwd") String pwd) {
            System.out.println("用户名:"+username);
            System.out.println("密码:"+pwd);
            return "jsp/test";
        }
  • 相关阅读:
    Java入门-07-Java学习-JDK下载和安装
    软考高级论文真题“论湖仓一体架构及其应用”
    Sentinel流控规则可以这样玩?
    基于lstm DNN的多变量单变量时间预测项目-完整数据+代码
    Windows Server 2008 共享文件夹
    算法|每日一题|掷骰子等于目标和的方法数|动态规划
    使用veth和bridge模拟容器网络
    【暑期每日一题】洛谷 P8086 『JROI-5』Music
    B站运营,B站作品如何获得更多曝光?
    2.4 信道复用技术
  • 原文地址:https://blog.csdn.net/qq_25073223/article/details/127860112