SpringMVC经典系列-06讲解SpringMVC核心注解---【LinusZhu】
来源:互联网 发布:centos 7.0 64位下载 编辑:程序博客网 时间:2024/04/30 13:44
注意:此文章是个人原创,希望有转载需要的朋友们标明文章出处,如果各位朋友们觉得写的还好,就给个赞哈,你的鼓励是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系linuszhu@163.com,敬请朋友们斧正,谢谢。
在实际的项目开发中,SpringMVC常用的核心注解如下:
1、@Controller
控制层注解,通过@controller标注即可将class定义为一个controller类,为使spring能找到定义为controller的bean,需要在springmvc-servlet.xml配置文件中增加如下定义:
<!-- 如下是对web包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 -->
<context:component-scan base-package="com.spring"/>
实际上,使用@Component同样可以起到@Controller同样的作用。
SpringMVC与Struts1一样,SpringMVC的Controller是Singleton的,这就意味着会被多个请求线程共享,因此我们将控制器类设计成无状态类。
2、@Service
业务逻辑层,就是我们的service或者manager层,可以标注业务逻辑层。
3、@Repository
数据持久层注解,就是我们常说的DAO层,标注Dao层。
注意:以上3个注解都可以使用@Component(组件)替代,它可以在你确定不了具体是哪一层的时候使用。
4、@Resource
用于注入功能的注解,可以从容器中得到你注入过的类的对象。
5、@RequestMapping
如果在类前面定义,则将url和类绑定,如果在方法前面定义,则将url和类的方法绑定,如下所示:
package com.spring.controller;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.sxt.service.UserService;
@Controller
//绑定类
@RequestMapping("/user.do")
public class UserController {
@Resource
private UserService userService;
//绑定方法
@RequestMapping(params="method=reg")
public String reg(String uname) {
System.out.println("HelloController.handleRequest()");
userService.add(uname);
return "index";
}
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
}
6、@RequestParam
用于将指定的请求参数付给方法中形参,示例代码如下:
@RequestMapping(params="method=reg5")
public String reg5(@RequestParam("name")String uname,ModelMap map) {
System.out.println("Controller.reg5()");
System.out.println(uname);
return "index";
}
这样,就会将name参数的值付给形参uname,如果请求参数名称和形参名称保持一致,则不需要这样赋值。
7、@SessionAttributes
将SpringMVC的ModelMap中指定的属性放到session中去,示例代码如下:
@Controller
@RequestMapping("/user.do")
//将ModelMap中属性名字为u、a的再放入session中
@SessionAttributes({"u","a"})
public class UserController {
@RequestMapping(params="method=reg4")
public String reg4(ModelMap map) { System.out.println("Controller.reg4()");
//将u放入ModelMap中去,ModelMap的作用域和request作用域相同
map.addAttribute("u","LinusZhu");
map.addAttribute("a","LinusZhu1");
return "index";
}
}
页面中取值使用EL表达式如下:
<body>
<h1>${requestScope.u}</h1>
<h1>${sessionScope.a}</h1>
</body>
8、@ModelAttribute
这个注解可以跟@SessionAttributes配合在一起用,可以将ModelMap中属性的值通过该注解自动赋给指定变量。
示例代码如下:
package com.spring.controller;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.SessionAttributes;
@Controller
@RequestMapping("/user.do")
@SessionAttributes({"u"})
public class UserController {
@RequestMapping(params="method=reg4")
public String reg4(ModelMap map) {
System.out.println("Controller.reg4()");
map.addAttribute("u","LinusZhu");
return "index";
}
@RequestMapping(params="method=reg5")
//将属性u的值赋给形参uname
public String reg5(@ModelAttribute("u") String uname,ModelMap map) {
System.out.println("Controller.reg5()");
System.out.println(uname);
return "index";
}
}
测试:先调用reg4方法,再调用reg5方法。我们发现控制台打印出来:LinusZhu
- SpringMVC经典系列-06讲解SpringMVC核心注解---【LinusZhu】
- SpringMVC经典系列-07讲解SpringMVC的ModelMap类---【LinusZhu】
- SpringMVC经典系列-08讲解SpringMVC的ModelAndVIew类---【LinusZhu】
- SpringMVC经典系列-01简介SpringMVC---【LinusZhu】
- SpringMVC经典系列-05深入了解SpringMVC的核心原理---【LinusZhu】
- SpringMVC经典系列-12基于SpringMVC的文件上传---【LinusZhu】
- SpringMVC经典系列-13使用SpringMVC处理Ajax请求---【LinusZhu】
- SpringMVC经典系列-14自定义SpringMVC的拦截器---【LinusZhu】
- SpringMVC经典系列-15对SpringMVC的总结---【LinusZhu】
- SpringMVC经典系列-02基于Spring2.5注解的方式进行项目开发---【LinusZhu】
- SpringMVC经典系列-04基于Spring3.1注解的方式进行项目开发---【LinusZhu】
- SpringMVC经典系列-11简单获取request、session对象---【LinusZhu】
- SpringMVC经典系列-09对SpringMVC的Controller层返回值的处理---【LinusZhu】
- SpringMVC经典系列-10详解SpringMVC请求转发和重定向---【LinusZhu】
- SpringMVC经典系列-03基于Spring2.5采用XMl配置的方式进行项目开发---【LinusZhu】
- SpringMVC-核心注解:RequestMapping
- SpringMVC注解讲解(一)
- 基于注解的SpringMVC 讲解
- 表达式求值简便算法
- 获取当前URL、area、controller、action
- JDK5新特性
- webkit.net学习笔记01
- twitter storm源码走读之7 -- trident topology可靠性分析
- SpringMVC经典系列-06讲解SpringMVC核心注解---【LinusZhu】
- Spring MVC 中的基于注解的 Controller
- C#的ArrayList集合的使用
- linux p4使用心得
- mysql5.6主从复制新特性测试
- KMP算法(Python实现)
- python数组查找算法---bisect二分查找插入
- Java之美[从菜鸟到高手演变]之设计模式
- Sysbench参数中文解释