spring注解
来源:互联网 发布:加工中心钻孔手动编程 编辑:程序博客网 时间:2024/06/01 23:06
1.注解View Code
@Controller控制器定义
和Struts1一样,Spring的Controller是Singleton的。这就意味着会被多个请求线程共享。因此,我们将控制器设计成无状态类。
在spring 3.0中,通过@controller标注即可将class定义为一个controller类。为使spring能找到定义为controller的bean,需要在spring-context配置文件中增加如下定义:
<context:component-scan base-package="com.sxt.web"/>
注:实际上,使用@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 <body>2 <h1>**********${requestScope.u.uname}</h1>3 <h1>**********${sessionScope.u.uname}</h1>4 </body>
注:名字为”user”的属性再结合使用注解@SessionAttributes可能会报错。
@ModelAttribute
这个注解可以跟@SessionAttributes配合在一起用。可以将ModelMap中属性的值通过该注解自动赋给指定变量。
示例代码如下:
1 package com.sxt.web; 2 import javax.annotation.Resource; 3 import org.springframework.stereotype.Controller; 4 import org.springframework.ui.ModelMap; 5 import org.springframework.web.bind.annotation.ModelAttribute; 6 import org.springframework.web.bind.annotation.RequestMapping; 7 import org.springframework.web.bind.annotation.SessionAttributes; 8 @Controller 9 @RequestMapping("/user.do")10 @SessionAttributes({"u","a"}) 11 public class UserController {12 13 @RequestMapping(params="method=reg4")14 public String reg4(ModelMap map) {15 System.out.println("HelloController.handleRequest()");16 map.addAttribute("u","尚学堂高淇");17 return "index";18 }19 20 @RequestMapping(params="method=reg5")21 public String reg5(@ModelAttribute("u")String uname ,ModelMap map) { 22 System.out.println("HelloController.handleRequest()");23 System.out.println(uname); 24 return "index";25 }26 27 }
0 0
- spring注解--组合注解
- Spring注解
- Spring注解
- Spring注解
- Spring注解
- Spring注解
- Spring 注解
- Spring注解
- Spring注解
- Spring注解
- spring 注解
- spring 注解
- spring注解
- Spring 注解
- Spring 注解
- spring 注解
- spring 注解
- spring 注解
- Linux安装配置tomcat
- excel日期格式转换为文本格式
- resin4 发布war包
- x64程序配置
- MySQL数据库MyISAM和InnoDB存储引擎的比较
- spring注解
- java中String的相等比较
- JAVA中的关键字
- java中map插入相同的key
- CSS布局 ——从display,position, float属性谈起
- 中介者模式——对象行为型模式
- web项目中,视图层中关于相对路径和绝对路径
- Python Web 开发学习 - 学习笔记(4)- Python的编码规则
- eclipse中断点调试debug