Spring mvc系列四之 注解介绍

本文详细介绍了如何在SpringMVC中配置使用注解,包括@Controller、@RequestMapping及常用注解@RequestMapping的多种用法。

关于怎样在spring mvc中配置使用注解请看我上一篇文章:Spring mvc系列三之 开启注解,

首先用@Controller("userController")标志一个类为控制器,@Controller负责一个bean注册到spring上下文中,bean的ID默认是类名首字母小写,也可以自己定义,下面我显示的把名字定义为userController.

Java代码 收藏代码
  1. packagegd.hz.springmvc.controller;
  2. importorg.springframework.stereotype.Controller;
  3. @Controller("userController")
  4. publicclassUserController{
  5. }

@RequestMapping,用来定义访问的URL,可以定义在类上也可以定义在方法上.把它定义在类方法上,类下面的所有方法访问路径都要它之下.看下面的例子:

Java代码 收藏代码
  1. packagegd.hz.springmvc.controller;
  2. importorg.springframework.stereotype.Controller;
  3. importorg.springframework.web.servlet.ModelAndView;
  4. importorg.springframework.web.bind.annotation.RequestMapping;
  5. @Controller("userController")
  6. @RequestMapping("user")
  7. publicclassUserController{
  8. //当有两个以上的配置时value不可以省略,url路径可以省去"/"
  9. @RequestMapping("addUser")
  10. publicModelAndViewaddUser()
  11. {
  12. Stringstr="Springmvc您好啊!!--->addUser";
  13. returnnewModelAndView("hello");
  14. }
  15. }

我们在UserController 上使用了@RequestMapping("user"),在方法上使用了@RequestMapping("addUser")这样的话,我们访问这个方法的URL为:http://localhost/项目名称/user/addUser,并返回一个名为hello的视图

下面是注解@RequestMapping的一些常用用法,其中当有配置有二个属性时,value不可省略.另外"result" , str ,是返回数据,我的下一章会介绍.

Java代码 收藏代码
  1. packagegd.hz.springmvc.controller;
  2. importjavax.servlet.http.HttpServletRequest;
  3. importorg.springframework.stereotype.Controller;
  4. importorg.springframework.web.bind.annotation.PathVariable;
  5. importorg.springframework.web.bind.annotation.RequestMapping;
  6. importorg.springframework.web.bind.annotation.RequestMethod;
  7. importorg.springframework.web.bind.annotation.RequestParam;
  8. importorg.springframework.web.servlet.ModelAndView;
  9. @Controller("userController")
  10. @RequestMapping("user")
  11. publicclassUserController{
  12. //method=RequestMethod.POST
  13. @RequestMapping(value="addUser/tow",method=RequestMethod.GET)
  14. publicModelAndViewaddUser2()
  15. {
  16. Stringstr="Springmvc您好啊!!--->addUser2";
  17. returnnewModelAndView("hello","result",str);
  18. }
  19. //URL为user/addUser/thread
  20. @RequestMapping("addUser/thread")
  21. publicModelAndViewaddUser3()
  22. {
  23. Stringstr="Springmvc您好啊!!--->addUser3";
  24. returnnewModelAndView("hello","result",str);
  25. }
  26. //访问文件二级路径URL为user/addUser/thread返回定义目录下的test目录的Hello.jsp文件
  27. @RequestMapping("addUser/six")
  28. publicStringaddUser6(HttpServletRequestrequest)
  29. {
  30. Stringstr="Springmvc您好啊!!--->addUser6";
  31. request.setAttribute("result",str);
  32. return"test/hello";
  33. }
  34. }

@RequestParam:

required :参数是否必须,boolean类型,可选项,默认为true

value: 传递的参数名称,String类型,可选项,如果有值,对应到设置方法的参数
defaultValue:String类型,参数没有传递时为参数默认指定的值

默认情况下,当从表单或者以GET传来的参数跟Controller中的方法中的参数名不一样时就要使用此注解:

Java代码 收藏代码
  1. @RequestMapping("/addUser/eight")
  2. publicvoidaddUser8(intid,@RequestParam("name")Stringusername){
  3. //这样做进行URL请求访问这个方法的时候,就会先从request中获取参数id的值赋给参数变量id,
  4. //从request中获取参数name的值赋给参数变量username
  5. }

@PathVariable:可以利用请求路径传值,当指定名称跟变量名不一样时需要指定名字,如下.

Java代码 收藏代码
  1. @RequestMapping("addUser/{seven}")
  2. publicStringaddUser7(@PathVariable("seven")Stringname,HttpServletRequestrequest)
  3. {
  4. request.setAttribute("result",name);
  5. return"test/hello";
  6. }

{seven}当url传来什么他就是什么,但是当接收它的变量名不一样时需要用@PathVariable指定.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值