`
YBianLi
  • 浏览: 3396 次
社区版块
存档分类
最新评论

springmvc的@RequestMapping、@PathVariable、@RequestParam

阅读更多
springmvc的@RequestMapping、@PathVariable、@RequestParam
    
@RequestMapping("/somepath/{userName}")
public String register(@PathVariable(value = "userName") String userName) {
ModelAndView mav = new ModelAndView();
return "user/createSuccess";
}


在springmvc注解的@RequestMapping("/somepath/{userName}")如何处理默认值的情况,比如我在发送请求的时候,userName有时候是没有的,所以导到了不能匹配这个action
http://localhost:8080/spc/movie/somepath/就不能匹配上面的请求:
http://localhost:8080/spc/movie/somepath/tom而这个才可以匹配。


@PathVariable 会将url中的参数解析到对应的方法参数上,需要在@RequestMapping()指定匹配模式
@RequestMapping("somepath/{userName}")
这时你访问地址"somepath/Tom"就能把"Tom"解析到方法参数userName上


@RequestParam用于将请求参数区数据映射到功能处理方法的参数上
public String requestparam2(@RequestParam("username") String username)
请求中包含username参数(如/requestparam1?username=zhang),则自动传入。

接下来我们看一下@RequestParam注解主要有哪些参数:

value:参数名字,即入参的请求参数名字,如username表示请求的参数区中的名字为username的参数的值将传入;

required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报404错误码;

defaultValue:默认值,表示如果请求中没有同名参数时的默认值,默认值可以是SpEL表达式,如“#{systemProperties['java.vm.version']}”。

public String requestparam4(@RequestParam(value="username",required=false) String username)
表示请求中可以没有名字为username的参数,如果没有默认为null,此处需要注意如下几点:


     原子类型:必须有值,否则抛出异常,如果允许空值请使用包装类代替。
     Boolean包装类型类型:默认Boolean.FALSE,其他引用类型默认为null。


public String requestparam5(@RequestParam(value="username", required=true, defaultValue="zhang") String username)
表示如果请求中没有名字为username的参数,默认值为“zhang”。


如果请求中有多个同名的应该如何接收呢?如给用户授权时,可能授予多个权限,首先看下如下代码:
public String requestparam7(@RequestParam(value="role") String roleList)如果请求参数类似于url?role=admin&rule=user,则实际roleList参数入参的数据为“admin,user”,即多个数据之间使用“,”分割;我们应该使用如下方式来接收多个请求参数:
public String requestparam7(@RequestParam(value="role") String[] roleList) 

public String requestparam8(@RequestParam(value="list") List<String> list)  
分享到:
评论

相关推荐

    SpringMVC@RequestMapping(重点)@RequestParam@PathVariable示例

    在Spring MVC框架中,`@RequestMapping`、`@RequestParam`和`@PathVariable`是三个非常重要的注解,它们用于处理HTTP请求并绑定请求参数到控制器方法的参数上。接下来,我们将详细探讨这三个注解的工作原理以及如何...

    springmvc之@RequestMapping的demo

    本教程将通过一个简单的`springmvc_helloworld`项目来深入探讨`@RequestMapping`的使用。 首先,Spring MVC是一个基于Spring框架的轻量级MVC(Model-View-Controller)设计模式实现。它简化了Java Web应用的开发,...

    Spring MVC--2.@RequestMapping 映射请求

    `@RequestParam`、`@PathVariable`、`@RequestBody`和`@ModelAttribute`等注解与`@RequestMapping`配合,用于从请求中获取数据。 - `@RequestParam`用于获取请求参数,如GET请求的查询参数或POST请求表单的数据。 - ...

    SpringMVC-2 使用@RequestMapping映射请求

    本文将深入探讨`@RequestMapping`的用法以及与RESTful风格和`HiddenHttpMethodFilter`相关的知识点。 首先,`@RequestMapping`的基本用法是通过指定一个或多个请求路径来映射控制器方法。例如: ```java @...

    springmvc注解详解

    SpringMVC 注解详解 SpringMVC 是一个基于Java的Web应用程序框架,使用了Model-View-Controller(MVC)模式来分离应用程序的逻辑。SpringMVC提供了许多注解来简化配置和开发过程。下面将详细介绍SpringMVC的注解。 ...

    Spring MVC之@RequestMapping注解详解

    此外,@RequestMapping还可以与其他注解如@RequestParam、@RequestBody、@PathVariable、@RequestHeader等结合使用,以实现更精细的请求处理。例如,@RequestParam用于从请求参数中获取值,@RequestBody用于从请求体...

    springmvc-demo04-请求细节说明.zip

    2. **路径变量**: 使用`{}`包围的变量在路径中表示路径变量,例如`@RequestMapping("/user/{id}")`,这里的`{id}`就是路径变量,可以在方法参数中通过`@PathVariable`注解获取其值。 3. **请求参数**: 如果需要从...

    springmvc 其他引用资源(reference)

    - 方法参数:可以注入请求参数、路径变量、模型数据等,如 @RequestParam、@PathVariable、@ModelAttribute。 4. **数据绑定**: - 自动类型转换:Spring MVC 提供自动将请求参数转换为方法参数的能力。 - 数据...

    基于注解的springMVC简单的例子

    **@PathVariable, @RequestParam 和 @ModelAttribute** 在处理请求参数时,SpringMVC提供了几个注解。`@PathVariable`用于获取URL模板变量的值,如: ```java @RequestMapping("/user/{id}") public String ...

    注解配置SpringMVC

    **SpringMVC注解配置详解** 在现代Java Web开发中,SpringMVC作为一个强大的轻量级框架,极大地简化了Web应用程序的构建。其中,注解配置是SpringMVC的一个核心特性,它允许开发者通过在类和方法上添加注解来替代...

    SpringMVC注解开发的详解.doc

    除了基本的`@Controller`和`@RequestMapping`,SpringMVC还提供了许多其他注解来增强控制器的功能,如`@RequestParam`用于获取请求参数,`@PathVariable`用于获取URL路径变量,`@RequestBody`用于将请求体转换为Java...

    springmvc-demo02-注解方式.zip

    在"springmvc-demo02-注解方式.zip"这个压缩包中,我们重点关注的是使用注解进行 Spring MVC 的配置。这种配置方式相比传统的 XML 配置更加简洁且直观,有助于提升开发效率。 1. **注解概述**: - 在 Spring MVC ...

    SpringMVC-Annotation

    例如,`@RequestMapping("/user/{id}")`中的`{id}`可以使用`@PathVariable("id")`来获取并绑定到方法参数中。 7. **@RequestParam**: 如果需要从HTTP请求的查询参数中获取值,可以使用`@RequestParam`。例如,`@...

    SPRING MVC 的请求参数获取的几种方法

    @RequestMapping(value = "/requestParam", method = RequestMethod.GET) public String setupForm(@RequestParam("a") String a, ModelMap model) { System.out.println(a); return "helloWorld"; } ``` 在上面的...

    springmvc19_day01_02.zip

    3. **@RequestParam与@PathVariable** - `@RequestParam`用于从请求参数中获取值,指定参数名即可。例如,`@RequestParam("username") String username`将获取名为"username"的请求参数。 - `@PathVariable`用于...

    SpringMVC入门很简单之URL映射规则

    URL映射规则在SpringMVC中主要通过`@RequestMapping`注解来实现。这个注解可以应用在类级别或方法级别,提供了多种方式来定义URL路径。 1. 类级别的`@RequestMapping`:此注解应用于控制器类的顶部,表示类中的所有...

    springMVC接收参数的几种注解.pdf

    public void findPet(@PathVariable String ownerId, @PathVariable String petId, Model model) { // ... } ``` 如果参数名与 URI 模板中的变量名不一致,可以使用 `@PathVariable("name")` 指定变量名。 2. ...

    SpringMVC九大常用注解

    - **使用注解标记的参数**: 如@PathVariable、@RequestParam等。 - **@ModelAttribute标记的参数**。 - **模型对象**: 如Model、ModelMap等。 - **实体类**: 用于接收上传参数。 - **MultipartFile**: 接收上传文件...

    Springmvc请求处理方法参数

    public String handleRequest(@RequestParam("param1") String value1, @RequestParam(value = "param2", required = false) Integer value2) { // ... } ``` 在这个例子中,`value1`是必需的请求参数,而`value2`...

Global site tag (gtag.js) - Google Analytics