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

Java-框架王 SpringMVC 发布时间:2021-05-14 05:35:28 阅读数:12320 1

传送参数至后台,是每个系统都必须面对的事实,因为系统就是一个实现人机交互的工具,那么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表单如下:

<form action ="<%=request.getContextPath()%>/demo/createUser5" method="post"> 
     用户名: <input type="text" name="username"/><br/>
     密  码:  <input type="password" name="pwd"/><br/>
     <input type="submit" value="提交"/> 
     <input type="reset" value="重置"/> 
</form> 

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";
    }
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/SpringMVC/2021-05-14/432.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者