-
springmvc中@PathVariable和@RequestParam的区别0
我的url;
http://localhost:8080/Springmvc/user/page.do?pageSize=3&pageNow=2
在controller中这么写:
@RequestMapping(value="/page.do/{pageSize}/{pageNow}")
public String page(@PathVariable int pageSize,@PathVariable int pageNow){}
这个好像有问题。求解2014年5月25日 10:13
3个答案 按时间排序 按投票排序
-
采纳的答案
http://localhost:8080/Springmvc/user/page.do?pageSize=3&pageNow=2
你可以把这地址分开理解,其中问号前半部分:http://localhost:8080/Springmvc/user/page.do 这个就是路径,是你的请求url,而如果这个路径上有数据匹配,用的就是@PathVariable 如
@RequestMapping(value="/page{pageNo}.do")
public String page(@PathVariable int pageNo){}
【注意:看下这地方的@RequestMapping的地址,对照我上面说的路径】
而问号的后面部分就是请求参数部分,是要向请求路径提交的参数信息,用的就是@RequestParam ,对于这种参数,如果你要用的话,代码应该如下:
@RequestMapping(value="/page.do")
public String page(@RequestParam int pageSize,@RequestParam int pageNow){}
【注意:这个代码的RequestMapping地址只需要/page.do就行】
其实你只要把什么叫请求路径,什么叫请求参数分清楚,也就能理解@PathVariable和@RequestParam
我再举个例子,就拿你这个问题在iteye上的地址为例,http://www.iteye.com/problems/101566 这个如果对应sprimgmvc里面,想获取问题编号101566,因为这个地址直接就是请求路径,是一个url,所以代码中用的应该是@PathVariable,如下:
@RequestMapping(value="/problems/{problemId}")
public String showProblem(@PathVariable int problemId){}2014年5月26日 10:29
-
顾名思义, @PathVariable和@RequestParam,分别是从路径里面去获取变量,也就是把路径当做变量,后者是从请求里面获取参数。
从你的请求来看:
/Springmvc/user/page.do?pageSize=3&pageNow=2
pageSize和pageNow应该是属于参数而不是路径,所以应该添加@RequestParam的注解。
如果做成如下URL,则可以使用@PathVariable
/Springmvc/user/page/2/3.do
但这样的话语义就不明确的,所以一般来说分页参数都用参数传递。2014年5月25日 11:39
-
两者的作用都是将request里的参数的值绑定到contorl里的方法参数里的,区别在于,url不同
@PathVariable的url是这样的:http://host:port/.../path/参数值
@RequestMapping("/bookings/{booking}")
public String getBooking(@PathVariable Long booking) {
}
而@RequestParam的url是这样的:http://host:port/.../path?参数名=参数值
@RequestMapping(method = RequestMethod.GET)
public String setupForm(@RequestParam("petId") int petId, ModelMap model) {
Pet pet = this.clinic.loadPet(petId);
model.addAttribute("pet", pet);
return "petForm";
}2014年5月25日 11:07
相关推荐
例如,你可以在一个方法中同时使用`@PathVariable`和`@RequestParam`来处理包含动态路径和请求参数的请求: ```java @GetMapping("/users/{userId}/books/{bookId}") public Book getUserBook(@PathVariable(...
`@PathVariable`注解分别将这两个部分的值注入到对应的`userId`和`roleId`参数中。 - `getProduct` 方法: ```java @RequestMapping(value="/product/{productId}",method = RequestMethod.GET) public String ...
6. **模型属性绑定**:`@ModelAttribute`可以将请求参数或路径变量绑定到方法参数的模型对象中,便于数据校验和业务处理。 在`springmvc_helloworld`项目中,你可能会看到以下步骤: 1. 配置Spring MVC:在`web....
本文将深入探讨如何使用`@PathVariable`来处理URL中的动态参数,以及如何解决在Spring MVC中可能出现的乱码问题。 首先,`@PathVariable`是Spring MVC提供的一个注解,用于获取URL路径中的变量值。当我们在控制器...
在现代Java Web开发中,SpringMVC作为一个强大的轻量级框架,极大地简化了Web应用程序的构建。其中,注解配置是SpringMVC的一个核心特性,它允许开发者通过在类和方法上添加注解来替代传统的XML配置,从而实现更加...
在SpringMVC框架中,实现REST风格的接口可以让我们的API更加简洁,易于理解和使用。本笔记将深入探讨如何在SpringMVC中创建RESTful的API。 1. **REST原则** - 统一接口:REST接口应具有统一的格式,通常使用HTTP...
在上面的代码中,我们使用 @PathVariable 注解来获取路径中传递的 id 和 str 参数。 2. 使用 @ModelAttribute 注解获取 POST 请求的 FORM 表单数据 在 SPRING MVC 中,可以使用 @ModelAttribute 注解获取 POST ...
本示例将深入探讨`@RequestParam`、`@CookieValue`、`@PathVariable`和`@ModelAttribute`这四个注解在参数绑定中的应用。 首先,`@RequestParam`注解用于从HTTP请求的查询参数或POST请求体中获取数据。例如,当用户...
**@PathVariable, @RequestParam 和 @ModelAttribute** 在处理请求参数时,SpringMVC提供了几个注解。`@PathVariable`用于获取URL模板变量的值,如: ```java @RequestMapping("/user/{id}") public String ...
在SpringMVC中,核心组件包括DispatcherServlet、Controller、Model、View和ViewResolver。DispatcherServlet是入口点,它负责接收所有HTTP请求,并根据请求信息调度相应的处理器。Controller是业务逻辑的载体,通常...
springmvc接收数据的几种方式,根据前端传递的数据类型判断用怎样的方式去接收。 @PathVariable、@RequestParam 和 @RequestBody 的使用场景。在不同情况下如何接收,以及他们之间的区别。
`@PathVariable` 用于从请求的 URI 模板中提取变量值。当定义了一个带有占位符 `{paramId}` 的路由如 `/owners/{ownerId}/pets/{petId}`,`@PathVariable` 可以将这些占位符的值绑定到控制器方法的参数上。例如: ...
Spring MVC提供了一些核心组件,如`DispatcherServlet`(负责分发请求)、`ModelAndView`(用于处理模型和视图)、`@Controller`和`@RequestMapping`(映射HTTP请求),以及`@PathVariable`、`@RequestParam`和`@...
本文档将深入解析 Spring MVC 中的核心注解,帮助开发者更好地理解和使用这些注解进行高效开发。 ### 1. `@Controller` `@Controller` 注解是 Spring MVC 中的关键注解,用于标记一个类作为 MVC 应用中的控制器。...
以上代码展示了如何使用`@PathVariable`获取URL路径中的变量,以及`@RequestBody`从请求体中获取JSON或其他格式的数据。 关于`HiddenHttpMethodFilter`,这是一个Spring MVC提供的过滤器,用于处理浏览器不支持PUT...
以上是对SpringMVC中注解的概述,实际开发中还有许多其他注解,如`@SessionAttribute`、`@CookieValue`、`@RequestParam`等,它们共同构成了SpringMVC强大的注解驱动机制。理解并熟练运用这些注解,能让你在...
在本示例中,我们将深入探讨SpringMVC中的一些关键注解,这些注解在开发过程中起着至关重要的作用。 1. `@Controller`: 这是Spring MVC中的核心注解,用于标记一个类作为控制器。当Spring扫描到这个注解时,会将...
@RequestParam用于获取请求参数,@PathVariable用于处理RESTful URL中的占位符,@RequestBody用于将请求体内容映射为对象,@SessionAttributes则将数据存储在HTTP Session中。 8. **Data Binding和Validation**:...
本篇文章将详细探讨 SpringMVC 在实现数据的增加、删除、修改(CRUD)操作中的核心概念和技术。 **1. SpringMVC 架构概述** SpringMVC 采用前端控制器(DispatcherServlet)设计模式,负责接收请求并分发到相应的...