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

SpringMVC注解说明

阅读更多

SpringMVC注解说明

@controller

通过@controller标注即可将class定义为一个controller类。

 

@RequestMapping

value 表示需要匹配的url的格式。
method 表示所需处理请求的http 协议(如get,post,put,delete等),可选值为RequestMethod这个enum的值。
params 格式为”paramname=paramvalue” 或 “paramname!=paramvalue”。 表示参数必须等于某值,或者不等于才进入此映射方法。不填写的时候表明不限制
headers 用来限定对应的reqeust请求的headers中必须包括的内容,例如headers={"Connection=keep-alive"}, 表示请求头中的connection的值必须为keep-alive。

 

 

 

 

 

 

 

@RequestParam

value 对应表单name空间的值
required 是否允许为空
defaultValue 默认值

 

 

@PathVariable

获得地址栏中传的参数 例如:

@RequestMapping(value="/{groupId}.do")  
public void detail(@PathVariable long groupId){  
    groupRepository.selectOne(groupId);  
}  
@RequestMapping(value="/{groupId}.do")
public void detail(@PathVariable long groupId){
	groupRepository.selectOne(groupId);
}
       

 

@RequestBody

在参数之前加入@RequestBody注解。用来将指定的客户端发送过来的请求参数的数据格式转换成java实体

@RequestMapping(value = "/xxxxx.do")  
public void create(@RequestBody() String host){  
    System.out.println("-----------" + host);  
}  
@RequestMapping(value = "/xxxxx.do")
public void create(@RequestBody() String host){
	System.out.println("-----------" + host);
}
       

@RequestHeader

 

在参数之前加入@RequestHeader注解。用来将指定的请求头信息影射为方法的参数。

@RequestMapping(value = "/xxxxx.do")  
public void create(@RequestHeader() MultiValueMap<String, String> host){  
    System.out.println("-----------" + host);  
}  

 

	@RequestMapping(value = "/xxxxx.do")
	public void create(@RequestHeader() MultiValueMap<String, String> host){
		System.out.println("-----------" + host);
	}

 

@ResponseBody

如果这个方法定义了@ResponseBody注解。那么会把返回值转换成这个数据格式,输出给客户端

@RequestMapping(value = "/xxx.do")  
@ResponseBody  
public MultiValueMap<String, String> create(@RequestHeader() MultiValueMap<String, String> hosts) throws Exception {  
    return hosts;  
}  
@RequestMapping(value = "/xxx.do")
@ResponseBody
public MultiValueMap<String, String> create(@RequestHeader() MultiValueMap<String, String> hosts) throws Exception {
	return hosts;
}
 @ResponseStatus
    返回一个指定的http response状态码。
@ResponseStatus(reason="no reason",value=HttpStatus.BAD_REQUEST)  
@RequestMapping("/responsestatus")  
public void responseStatusTest(){  
    
}  
@ResponseStatus(reason="no reason",value=HttpStatus.BAD_REQUEST)
@RequestMapping("/responsestatus")
public void responseStatusTest(){
      
}

       

 

@SessionAttributes

写在类级别的注解,定义一个session attributes,属性名字为SessionAttributes指定。可以指定多个(数组),也同时可以指定类型。

@Controller  
@SessionAttributes( { "user" })  
@RequestMapping("/test")  
public class ControllerTest {  
  @RequestMapping("/session")  
  @ResponseBody  
  public String sessionIn(@ModelAttribute("user") User user) {  
  return "index";  
  }   
}  
@Controller
@SessionAttributes( { "user" })
@RequestMapping("/test")
public class ControllerTest {
  @RequestMapping("/session")
  @ResponseBody
  public String sessionIn(@ModelAttribute("user") User user) {
  return "index";
  } 
}

       

@CookieValue
@RequestMapping("/cookie")  
@ResponseBody  
public String cookie(@CookieValue("JSESSIONID") String sessionId) {  
	return sessionId;  
}  
@RequestMapping("/cookie")
@ResponseBody
public String cookie(@CookieValue("JSESSIONID") String sessionId) {
	return sessionId;
}
       

 

@InitBinder

在controller中注册一个customer protperty editor以解析request中的参数并通过date bind机制与handler method中的参数做绑定。

@InitBinder  
public void initBinder(WebDataBinder binder) {  
   SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");  
   dateFormat.setLenient(false);  
   binder.registerCustomEditor(Date.class, new CustomDateEditor(  
          dateFormat, false));  
}  
@InitBinder
public void initBinder(WebDataBinder binder) {
       SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
       dateFormat.setLenient(false);
       binder.registerCustomEditor(Date.class, new CustomDateEditor(
              dateFormat, false));
}

@RequestMapping("/databind1")  

public ModelAndView databind1(Date date) {  

   …     

}  

       
 
   @RequestMapping("/databind1")
    public ModelAndView databind1(Date date) {
      …   
   }


访问url http://localhost:8080/springmvc/databind1.action?date=2000-01-02
通过initbinder中注册的customeDateEditor类型,自动将2000-01-02转换为日期类型

 

 

@ExceptionHandler

@RequestMapping("/exception")  
 public void ExceptionTest() throws Exception{  
    throw new Exception("i don't know");  
 }    
 @ExceptionHandler  
 public String handleException(Exception e,HttpServletRequest request){  
    System.out.println(e.getMessage());  
    return "helloworld";  
 }  
  
   @RequestMapping("/exception")
    public void ExceptionTest() throws Exception{
       throw new Exception("i don't know");
    }  
    @ExceptionHandler
    public String handleException(Exception e,HttpServletRequest request){
       System.out.println(e.getMessage());
       return "helloworld";
    }
       

 

 

本文部分收集于其他博文。如有不全请大家补充,如有错误请指正。

分享到:
评论

相关推荐

    注解和注释以及Spring和SpringMVC常用的注解.rtf

    注解和注释以及Spring和SpringMVC常用的注解 1.两者区别 注解 :参与代码编译,以@开头的。它是给应用程序看的,单独使用注解毫无意义,一定要跟工具一起使用,这个所谓的工具实际就是能读懂注解的应用程序  注释 :...

    springmvc常用注解标签详解

    ### SpringMVC常用注解详解 #### 1. @Controller 注解 - **定义与作用**:`@Controller` 是一个用于标记一个类为 SpringMVC 控制器的注解。它表明该类的主要职责是处理来自 DispatcherServlet 的 HTTP 请求,并...

    spring+mybatis+springmvc 全注解框架

    【标题】"spring+mybatis+springmvc 全注解框架"揭示了这是一个基于Java的Web开发框架,其中集成了Spring、MyBatis和SpringMVC这三个关键组件。Spring是全面的企业级应用框架,提供了依赖注入(DI)和面向切面编程...

    springMVC详解以及注解说明

    ### SpringMVC详解及注解说明 #### 一、引言 随着软件开发技术的不断发展,基于注解(Annotation)的配置方式越来越受到开发者们的青睐。Spring框架自2.5版本开始,便提供了完全基于注解配置Bean的能力,极大地简化...

    SpringMVC九大常用注解

    ### SpringMVC九大常用注解详解 #### 一、@Controller **定义**: `@Controller` 注解是用来标记一个类作为控制器(Controller)组件,在Spring MVC框架中扮演着请求处理者的角色。 **作用**: 通过这个注解,可以将...

    springMVC详解以及注解说明 中文WORD版.rar

    基于注释(Annotation)的配置有越来越流行的趋势,Spring 2.5 顺应这种趋势,提供了完全基于注释配置 Bean、装配 Bean 的功能,您可以使用基于注释的 Spring IoC 替换原来基于 XML 的配置。本文通过实例详细讲述了 ...

    SpringMVC-配置文档

    SpringMVC-配置文档以及其中的说明。 包含使用注解、扫描带注解的包 、使用注解方式配置springMVC的映射器和适配器

    springmvc+jdbctemplate+mysql(采用注解方式)

    这篇详细的说明将深入探讨这些技术以及如何使用注解方式将它们整合在一起。 **SpringMVC** SpringMVC是Spring框架的一个模块,专为创建基于Java的Web应用程序而设计。它提供了模型-视图-控制器(MVC)架构,帮助...

    非常好的springMVC注解实例

    无论是文件配置还是代码编写,可以说是很规范的了,对于想用sprimg注解模式大家框架的人员来说,该实例是个不错的选择,而且作者还会定期更新一些新的功能和架构方面的知识,里面还是说明文档,可见是非常用心了

    RabbitMQ与SpringMVC集成

    4. 定义消息监听器:可以创建`@RabbitListener`注解的方法来接收消息,也可以通过`SimpleMessageListenerContainer`配置监听队列。 5. 发送和消费消息:在业务代码中,通过`RabbitTemplate`发送消息到指定的交换机,...

    springMVC使用注解方式进行页面跳转

    本文将深入探讨如何利用注解来实现页面跳转,并结合具体的示例代码进行说明。 #### 一、Spring MVC框架简介 Spring MVC是Spring Framework的一部分,它是一个基于Java的MVC(Model-View-Controller)设计模式实现...

    springmvc学习第一天

    #### 五、SpringMVC注解开发 SpringMVC提供了丰富的注解来简化开发过程,主要包括: 1. **常用注解**:如`@Controller`、`@RequestMapping`等,用于标记控制器类和方法。 2. **参数绑定**:SpringMVC支持多种类型的...

    这一次搞懂SpringMVC原理说明

    6. **ExceptionHandler**: SpringMVC允许我们定义全局或特定异常的处理器,通过`@ExceptionHandler`注解,我们可以优雅地处理未捕获的异常,返回错误信息或者重定向到错误页面。 7. **ConversionService**: 负责将...

    annotation-springMVC.rar_springmvc_springmvc API chm

    《SpringMVC注解详解与应用》 SpringMVC作为Java Web开发中广泛使用的轻量级框架,极大地简化了Web应用程序的构建。其中,注解的使用是SpringMVC的一大特色,它使得代码更加简洁、易读,同时也提高了开发效率。下面...

Global site tag (gtag.js) - Google Analytics