博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring注解
阅读量:6070 次
发布时间:2019-06-20

本文共 2331 字,大约阅读时间需要 7 分钟。

1.注解

  • @Controller控制器定义

    和Struts1一样,Spring的Controller是Singleton的。这就意味着会被多个请求线程共享。因此,我们将控制器设计成无状态类。

    在spring 3.0中,通过@controller标注即可将class定义为一个controller类。为使spring能找到定义为controller的bean,需要在spring-context配置文件中增加如下定义:

   注:实际上,使用@component,也可以起到@Controller同样的作用。 

  • @RequestMapping

  在类前面定义,则将url和类绑定。

      在方法前面定义,则将url和类的方法绑定,如下所示:

1 package com.sxt.web; 2  3 import javax.annotation.Resource; 4 import org.springframework.stereotype.Controller; 5 import org.springframework.web.bind.annotation.RequestMapping; 6 import com.sxt.service.UserService; 7  8 @Controller 9 @RequestMapping("/user.do")10 public class UserController  {11 12     @Resource13     private UserService userService;14     15     //http://localhost:8080/springmvc02/user.do?method=reg&uname=zzzz16     @RequestMapping(params="method=reg") 17     public String reg(String uname) {18         System.out.println("HelloController.handleRequest()");19         userService.add(uname); 20         return "index";21     }22     23     public UserService getUserService() {24         return userService;25     }26     public void setUserService(UserService userService) {27         this.userService = userService;28     }31 }
  • @RequestParam 

    一般用于将指定的请求参数付给方法中形参。示例代码如下:

1 @RequestMapping(params="method=reg5")2     public String reg5(@RequestParam("name")String uname,ModelMap map) { 3         System.out.println("HelloController.handleRequest()");4         System.out.println(uname); 5         return "index";6     }

  这样,就会将name参数的值付给uname。当然,如果请求参数名称和形参名称保持一致,则不需要这种写法。

  • @SessionAttributes

      将ModelMap中指定的属性放到session中。示例代码如下:

1 @Controller 2 @RequestMapping("/user.do") 3 @SessionAttributes({"u","a"})   //将ModelMap中属性名字为u、a的再放入session中。这样,request和session中都有了。 4 public class UserController  { 5     @RequestMapping(params="method=reg4") 6     public String reg4(ModelMap map) {          System.out.println("HelloController.handleRequest()"); 7         map.addAttribute("u","uuuu");  //将u放入request作用域中,这样转发页面也可以取到这个数据。 8         return "index"; 9     }10 }
1 2    

**********${requestScope.u.uname}

3

**********${sessionScope.u.uname}

4

  注:名字为”user”的属性再结合使用注解@SessionAttributes可能会报错。

  • @ModelAttribute

      这个注解可以跟@SessionAttributes配合在一起用。可以将ModelMap中属性的值通过该注解自动赋给指定变量。

    示例代码如下:

 
View Code

 

本文转自Ryan.Miao博客园博客,原文链接:http://www.cnblogs.com/woshimrf/p/4811233.html,如需转载请自行联系原作者

你可能感兴趣的文章
ABP源码分析三十一:ABP.AutoMapper
查看>>
fragment和fragmentactivity解析
查看>>
MySql数据库字段排序规则不一致产生的一个问题
查看>>
python模块 mysql-python安装(在ubuntu系统下)
查看>>
深入理解JavaScript系列(结局篇)
查看>>
集锦.txt
查看>>
linux配置防火墙详细步骤(iptables命令使用方法)
查看>>
项目中导入导出两个关联的库
查看>>
linux命令之tail
查看>>
C#匹配中文字符串的4种正则表达式分享
查看>>
转:android git开源项目列表
查看>>
LINUX 中的 TCP/IP协议 参数详解
查看>>
String 与StringBuffer的区别与使用
查看>>
nginx-upload-module模块实现文件断点续传
查看>>
Android studio动态调试smali
查看>>
mount
查看>>
如何为Linux安装Go语言
查看>>
server r2 系统更新文件清理
查看>>
WINFORM写入COOKIE
查看>>
Eclipse在线集成maven M2eclipse插件
查看>>