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表单如下:
<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"; }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。