Spring MVC接收param参数(直接接收、注解接收、集合接收、实体接收)

Spring MVC是一个强大的模块,它提供了一种声明式的方式来接收HTTP请求中的参数。这些参数可以是查询字符串参数、表单数据或是路径中的参数。Spring MVC 提供了多种方式来处理这些参数,让开发人员可以根据不同的需求选择最合适的方法。以下是Spring MVC接收参数的几种典型方式:

1. 直接接收参数

最简单的接收参数的方式就是直接在控制器方法的参数中声明它。Spring MVC会自动根据参数名从请求中提取相应的值并注入到方法中。

@RequestMapping("/greeting")
public String greeting(@RequestParam(name="name", required=false, defaultValue="World") String name, Model model) {
    model.addAttribute("name", name);
    return "greeting";
}

上面的例子展示了如何通过 @RequestParam注解从查询参数中获取 name值,如果没有提供 name参数,则默认使用"World"。

2. 注解接收参数

@PathVariable和 @RequestBody是处理REST风格URL和请求体数据的两个常用注解。

  • @PathVariable 示例:
@RequestMapping(value = "/user/{userId}", method = RequestMethod.GET)
public String getUserById(@PathVariable("userId") String userId, Model model) {
    model.addAttribute("userId", userId);
    return "user";
}

这个例子展示了如何从URL路径中提取参数。

  • @RequestBody 示例:
@RequestMapping(value = "/user", method = RequestMethod.POST)
public String addUser(@RequestBody User user, BindingResult result, Model model) {
    model.addAttribute("user", user);
    return "user";
}

这里展示了如何接收JSON或XML格式的请求体并自动将其反序列化为Java对象。

3. 集合接收参数

Spring MVC允许直接将参数映射到Java集合类型,比如List和Map。

  • 接收到 List 示例:
@RequestMapping(value = "/users", method = RequestMethod.GET)
public String listUsers(@RequestParam List<String> userIds, Model model) {
    model.addAttribute("userIds", userIds);
    return "users";
}
  • 接收到 Map 示例:
@RequestMapping(value = "/user/info", method = RequestMethod.GET)
public String userInfo(@RequestParam Map<String, String> userInfo, Model model) {
    model.addAttribute("userInfo", userInfo);
    return "userInfo";
}

4. 实体接收参数

实体接收参数利用了Spring的数据绑定功能,可以直接将请求参数绑定到一个Java Bean上,非常适合处理表单提交的场景。

@RequestMapping(value = "/register", method = RequestMethod.POST)
public String registerUser(User user, Model model) {
    model.addAttribute("user", user);
    return "userProfile";
}

在这个例子中,Spring MVC 可以根据请求参数名称和 User实体的属性名自动匹配和填充数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值