Java Spring Controller 获取请求参数的几种方法详解
这里有新鲜出炉的 Java 设计模式, 程序狗速度看过来!
Java 程序设计语言
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言, 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台 (即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se)) 的总称
这篇文章主要介绍了 Java Spring Controller 获取请求参数的几种方法详解的相关资料, 这里提供了 6 种方法, 需要的朋友可以参考下
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";
- }
来源: http://www.phperz.com/article/18/0210/359267.html