springboot 之 在Controller如何接收参数呢?

转自:

springboot 之 在Controller如何接收参数呢?

下文笔者将讲述Controller中接收url路径中的参数、表单、问号后面参数、body中的JSON信息

使用@PathVariable
直接使用String定义变量
使用HttpServletRequest接收request对象,然后获取其中的变量
使用requestbody注解获取json内容
使用model接收参数信息

例:

package com.java265.controller;
 
import com.java265.domain.User;
import org.springframework.web.bind.annotation.*;
 
import javax.servlet.http.HttpServletRequest;
import java.util.List;
 
@RestController
public class ControllerTest3 {
 
    //----------------------方法1、获取路径中的值----------------------------
    /**
     * URL:http://localhost:8081/addUser0/zhangsan
     *
     * @param username
     * @return
     */
    @GetMapping("/addUser0/{username}")
    public String addUser0(@PathVariable String username) {
        System.out.println("username : " + username);
        return "success";
    }
 
    //----------------------方法2、获取路径中的参数----------------------------
    /**
     * URL:http://localhost:8081/addUser1?username=zhangsan
     *
     * @param username
     * @return
     */
    @GetMapping("/addUser1")
    public String addUser1(String username) {
        System.out.println("username : " + username);
        return "success";
    }
 
    //----------------------方法3、通过bean接收HTTP提交的对象----------------------------
    /**
     * URL:http://localhost:8081/addUser2?username=zhangsan&age=88
     *
     * @param user
     * @return
     */
    @GetMapping("/addUser2")
    public String addUser2(User user) {
        System.out.println("user ... " + user);
        return "success";
    }
 
    //----------------------方法4、通过HttpServletRequest接收参数----------------------------
    /**
     * URL:http://localhost:8081/addUser3?username=zhangsan
     *
     * @param request
     * @return
     */
    @GetMapping("/addUser3")
    public String addUser3(HttpServletRequest request) {
        System.out.println("username ... " + request.getParameter("username"));
        return "success3";
    }
 
    //----------------------方法5、用@RequestParam绑定入参----------------------------
    /**
     * 通过@RequestParam注解绑定入参 
     * URL:http://localhost:8081/addUser1?username=zhangsan
     *
     * @param username
     * @return
     */
    @GetMapping("/addUser4")
    public String addUser4(@RequestParam String username) {
        System.out.println("username : " + username);
        return "success4";
    }
 
    //----------------------方法6、用@RequestBody接收JSON数据----------------------------
    /**
     * URL:http://localhost:8081/addUser5
     * BODY:
     * [
     * {
     * "username": "zhangsan",
     * "age": "26"
     * },
     * {
     * "username": "lisi",
     * "age": "18"
     * }
     * ]
     * <p>
     * 通过@RequestBody接收JSON入参,同时需要设置http的header中Content-Type属性值为[application/json;charset=UTF-8]
     *
     * @param userList
     * @return
     */
    @PostMapping("/addUser5")
    public String addUser5(@RequestBody List<User> userList) {
        System.out.println("userList : " + userList);
        return "success5";
    }
 
    //----------------------方法7、用@ModelAttribute注解获取参数----------------------------
    /**
     * URL:http://localhost:8081/addUser6?username=zhangsan&age=18
     * <p>
     * 通过@ModelAttribute注解,从Model、Form或者URL请求参数中获取属性值,上面的URL演示从URL参数中取值
     *
     * @param user
     * @return
     */
    @PostMapping("/addUser6")
    public String addUser6(@ModelAttribute("user") User user) {
        System.out.println("user ... " + user);
        return "success6";
    }
 
    /**
     * URL:http://localhost:8081/addUser7
     * <p>
     * 通过@ModelAttribute注解,从Model、Form或者URL请求参数中获取属性值,上面的URL演示从Model中取值
     *
     * @param user
     * @return
     */
    @PostMapping("/addUser7")
    public String addUser7(@ModelAttribute("user") User user) {
        System.out.println("user7 ... " + user);
        return "success7";
    }

	//Get获取参数信息
    @ModelAttribute("user")
    public User addAccount() {
        return new User("zhangsan",8888);
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值