`
Inmethetiger
  • 浏览: 112062 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

@Controller中的@RequestMapping参数

阅读更多
转载自:http://blog.sina.com.cn/s/blog_6d3c1ec601017q4l.html
下列参数一般都和@RequestMapping配合使用。

A、@CookieValue
org.springframework.web.bind.annotation.CookieValue
public @interface CookieValue
Annotation which indicates that a method parameter should be bound to an HTTP cookie. Supported for annotated handler methods in Servlet and Portlet environments.
这个注释表示一个方法参数绑定到一个HTTP cookie。支持Servlet和Portlet环境。
The method parameter may be declared as type Cookie or as cookie value type (String, int, etc).
这个方法的参数可声明为Cookie类型或String, int等。

A.1、@CookieValue的属性
String value
The name of the cookie to bind to.
绑定的cookie名称。
boolean required
Whether the header is required.
Default is true, leading to an exception being thrown in case the header is missing in the request. Switch this to false if you prefer a null in case of the missing header.
Head是否需要。默认是true,请求中头丢失将抛出一个异常。False,请求中头丢失将返回null。
Alternatively, provide a defaultValue, which implicitly sets this flag to false.
因此,提供一个defaultValue。
String defaultValue
The default value to use as a fallback. Supplying a default value implicitly sets required() to false.
当required为false,请求中头丢失将返回这个值。


B、@PathVariable

Annotation which indicates that a method parameter should be bound to a URI template variable. Supported for RequestMapping annotated handler methods in Servlet environments.
    这个参数指出方法的一个参数绑定到一个URI template变量。在Servlet环境中的被@RequestMapping注释的处理器方法。
B.1、@PathVariable的属性

value
The URI template variable to bind to.
绑定URI template变量。
举例说明
@Controller
public class HelloWorldController {    @RequestMapping("/helloWorld/{userId}")
public String helloWorld(ModelMap model,@PathVariable("userId") String userId) {
       model.addAttribute("attributeName", userId);
       return "helloWorld";
    }
}

当URI template变量和方法的参数名称一样时,可以省略value的定义,@PathVariable达到同样的效果。

C、@RequestBody
Annotation which indicates that a method parameter should be bound to the web request body. Supported for annotated handler methods in Servlet environments.
这个注释它指示一个方法的参数绑定到一个web请求的body。它支持Servlet环境中的注释处理器方法。
举例说明
@Controller
public class HelloWorldController {
    @RequestMapping("/hello.do")   
    public String helloWorld(Model model,@RequestBody String reqBody) {
       model.addAttribute("message", reqBody);
       return "helloWorld";
    }
}

这时这个参数reqBody的值是请求页面的form表单的所有值。

D、@ RequestHeader
Annotation which indicates that a method parameter should be bound to a web request header. Supported for annotated handler methods in Servlet and Portlet environments.
这个注释它指示一个方法的参数绑定到一个web请求的头信息。它支持Servlet和Portlet环境中的注释处理器方法。
D.1、@ RequestHeader的属性
String defaultValue
The default value to use as a fallback.
默认返回值。
Boolean required
Whether the header is required.
是否需要header。
String value
The name of the request header to bind to.
绑定的请求头名称。
举例说明
@Controller
public class HelloWorldController {
    @RequestMapping("/hello.do")   
    public String helloWorld(Model model,@RequestHeader("Accept") String info) {
       model.addAttribute("message", info);
       return "helloWorld";
    }
}

这时这个参数info将获得请求的Accept头信息。

E、@RequestParam
org.springframework.web.bind.annotation.RequestParam
Annotation which indicates that a method parameter should be bound to a web request parameter. Supported for annotated handler methods in Servlet and Portlet environments.
这个参数指出一个方法的参数应绑定到一个web请求的参数。支持Servlet和Portlet环境下注释处理器的方法。
E.1、@RequestParam的属性

E.1.1、value
The name of the request parameter to bind to.
绑定的请求参数的名称。
@RequestParam(value="abc")等同于@RequestParam("abc")
E.1.2、required
Whether the parameter is required.
是否需要参数。
Default is true, leading to an exception thrown in case of the parameter missing in the request. Switch this to false if you prefer a null in case of the parameter missing.
默认为true,若请求中没有参数会导致抛出一个异常。若设置为false,若请求中没有参数就会返回null。
Alternatively, provide a defaultValue, which implicitly sets this flag to false.
在required=false时,最好设置一个defaultValue默认值。
@RequestParam(value = "abc",required=false)

E.1.3、defaultValue
The default value to use as a fallback. Supplying a default value implicitly sets required() to false.
当required=false时,设定默认值。
举例说明
@Controller
@RequestMapping("/a")
public class HelloWorldController {
    @RequestMapping("/b")
    public String helloWorld(Model model,@RequestParam("a") String abc) {
       model.addAttribute("message", abc);
       return "helloWorld";
    }
}


F、@ResponseBody
Annotation which indicates that a method return value should be bound to the web response body. Supported for annotated handler methods in Servlet environments.
这个注释它指示一个方法的返回值应该绑定到一个web响应的body中。它支持Servlet环境中的注释处理器方法。
应用@ResponseBody将会跳过视图处理,而是调用合适HttpMessageConverter,将返回值写入输出流。

举例说明
@Controller
@RequestMapping("/a")
public class HelloWorldController {
    @RequestMapping("/b")
    @ResponseBody
    public String helloWorld() {
       return "helloWorld";
    }
}

或者这样定义
@Controller
public class HelloWorldController {
    @RequestMapping("/a/b")
    public @ResponseBody String helloWorld() {
       return "helloWorld";
    }
}


这时访问/a/b时,不是返回一个view名为helloWorld的视图,而是作出一个响应,其内容为helloWorld。
分享到:
评论

相关推荐

    Spring MVC之@RequestMapping详解

    本文将深入探讨@RequestMapping的使用方式,以及其在处理RESTful API时如何与各种参数绑定注解(@RequestParam、@RequestBody、@RequestHeader、@PathVariable)配合工作,并简要提及HttpMessageConverter的概念。...

    springboot jpa mysql controller演示

    springboot jpa mysql controller 完整demo演示 ... //将数据放置到ModelAndView对象view中,第二个参数可以是任何java类型 view.addObject("name", name); //返回ModelAndView对象view return view; }

    springMVC技术概述

    常用注解:@Controller @RestController(Controller+ResponseBody) @Service @Transactional @Mapper @AutoWired @RequestMapping--路由 @RequestParam--参数绑定(不同名参数或Map<Object,String>) @...

    springmvc注解详解

    @RequestParam 注解用来绑定请求参数,value:参数名,required:是否必须,默认 true,请求中必须包含对应的参数名,如果不存在则抛出异常,不能保证必须有则可以设置为 false。例如: ```java @Controller @...

    springmvc:@Controller @RequestMapping @RequestParam,模型和ModelAndView Spring MVC实践

    在Spring MVC框架中,`@Controller`、`@RequestMapping`、`@RequestParam`以及`ModelAndView`是四个关键的注解,它们对于构建基于Java的Web应用程序至关重要。下面将详细介绍这些概念及其在实际开发中的应用。 `@...

    springmvc之@RequestMapping的demo

    这个方法将从URL的查询参数中获取"name",并将其值插入到返回的字符串中。 5. **路径变量**:使用`@PathVariable`可以从URL路径中提取值,如: ```java @GetMapping("/user/{id}") public User getUser(@...

    Spring注解 - 52注解 - 原稿笔记

    在火狐中显示可能会有问题,大家都是程序员,改个参数就好啦 注解包含: 拦截器 , 过滤器 , 序列化 , @After , @AfterReturning , @AfterThrowing , @annotation , @Around , @Aspect , @Autowired , @Bean , @Before ,...

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

    在Spring MVC框架中,`@RequestMapping`注解是核心组件之一,它用于处理HTTP请求映射,使得控制器类(Controller)中的方法能够与特定的URL路径关联起来。本篇文章将深入探讨`@RequestMapping`的使用、功能以及相关...

    Spring MVC Controller配置方式

    Spring MVC 支持模型数据自动绑定,可以将请求参数自动绑定到 Controller 方法的参数中,也可以将 Controller 返回的数据自动填充到 Model 中。 六、异常处理 通过 @ExceptionHandler 或自定义 ExceptionResolver,...

    SpringBoot之Controller的使用详解

    在本文中,我们将详细介绍SpringBoot之Controller的使用详解,包括@Controller、@RestController、@RequestMapping、@PathVariable、@RequestParam等注解的使用。 一、@Controller和@RestController 在SpringBoot...

    springmvc常用注解标签详解

    在本文中,我们将详细地解释 SpringMVC 中常用的注解标签,包括@Controller、@RequestMapping、@Resource 和@Autowired 等。 1. @Controller @Controller 是 SpringMVC 中最基本的注解之一,该注解用于标记一个类...

    springMVC中 RequestMapping的使用.docx

    - `@RequestMapping(value = "/toLogin", params = {"flag1", "flag2=hello"})`:要求请求中必须包含名为`flag1`的参数,同时必须包含名为`flag2`的参数,且`flag2`的值必须为`hello`。 #### 三、`@RequestMapping...

    SpringMVC中一个Controller多个方法

    在Spring MVC中,Controller类通常使用@Controller注解标识,并且可以包含多个处理请求的方法,这些方法通过@RequestMapping或其变体进行映射。 例如,假设我们有一个名为`UserController`的Controller类,我们可以...

    SpringMVC-2 使用@RequestMapping映射请求

    总结起来,`@RequestMapping`是Spring MVC中实现请求映射的关键工具,它允许开发者灵活地根据URL、请求方法、参数和头信息来映射处理逻辑。而`HiddenHttpMethodFilter`则解决了在非RESTful环境中模拟其他HTTP方法的...

    第四章 Controller接口控制器详解 源代码下载

    在本章中,我们将深入探讨Spring MVC框架中的Controller接口及其控制器的概念。Controller接口是Spring MVC中处理用户请求的核心组件,它定义了业务逻辑与视图层之间的交互方式。通过源代码下载,我们可以更直观地...

    SpringMVC参数收集及乱码处理.docx

    我们可以在 Controller 方法中定义参数,然后使用 @RequestParam 注解来注入请求参数。例如: ```java @Controller public class MyController { @RequestMapping("/login") public String login(String username...

    注解配置SpringMVC

    `@ModelAndView` 在方法返回时创建模型数据并指定视图,而在方法参数中使用`@ModelAttribute` 可以从模型中获取或创建一个对象。 ```java @GetMapping("/edit/{id}") public ModelAndView editUser(@PathVariable ...

    模拟springMVC跳转源码

    在Spring MVC框架中,`@Controller`和`@RequestMapping`是两个非常关键的注解,它们协同工作,处理HTTP请求并返回相应的视图。这里我们将深入探讨这两个注解的工作原理,以及如何通过模拟实现来理解Spring MVC的请求...

    SpringMybatis项目基于@RequestMapping和RequstAttribute实现登录注册

    `@RequestParam`注解则用于从请求参数中获取值。 其次,`RequestAttribute`是Spring MVC提供的一种机制,用于在请求之间存储和检索数据。这通常发生在处理多个相关请求时,如登录和注册流程。例如,当用户尝试登录...

    详解SpringMVC Controller介绍及常用注解

    在 SpringMVC 中,提供了一个非常简便的定义 Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用 @Controller 标记一个类是 Controller,然后使用 @RequestMapping 和 @RequestParam 等一些注解用以...

Global site tag (gtag.js) - Google Analytics