spring MVC笔记2—用注入和注解解决一个controller多个方法

来源:互联网 发布:保罗10年季后赛数据 编辑:程序博客网 时间:2024/06/07 17:22

一、  实现一个Controller多个方法

           1、controller继承MutliActionController

                 publicclass SpringControllerextends MultiActionController{

                 }

                   

           2、在spring_mvc.xml配置一个多请求的bean

                <beanid="parameNameResolver"class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">

                         <propertyname="paramName"value="userCotroller"/>

                </bean>

                注:这个bean有一个属性paramName,它的作用是相当以一个传递参数。比如要访问SpringController中的add()方法,那这里我们的

                传递参数就是?userCotroller=add。而已该属性的value值是随意的。

               

          3、SpringController交给spring容器管理

                <beanname="/springController"class="controller.SpringController">

                         <propertyname="methodNameResolver"ref="parameNameResolver"/>

                </bean>

               这里,name是为访问该类是设置访问路径。而且为SpringController注入一个paramName  Bean,这个bean是继承了

                MutliActionController后自带的属性 。它映射向多请求的bean

 

         4、在SpringController类中添加方法

               publicclass SpringControllerextends MultiActionController{

               

                       public ModelAndView add(HttpServletRequest request,HttpServletResponse response){

                               ModelAndView mv = new ModelAndView();

                               mv.addObject("message","this is a add method");

                               mv.setViewName("/helloWorld");

                               return mv;

                        }

                        

                         public ModelAndView delete(HttpServletRequest request,HttpServletResponse response){

                                 ModelAndView mv =new ModelAndView();

                                mv.addObject("message","this is a delete method");

                                mv.setViewName("/helloWorld");

                                 return mv;

                         }

                }

                这方法很简单,编写structAction方法差不多,但注意的是方法中要有HttpServlerRequest,和HttpServlerResponse(这个方法也可以

                没有)参数。

               

          5、测试:

                调用add方法:http://localhost:8080/springMVC/springController?userCotroller=add

                调用delete方法:http://localhost:8080/springMVC/springController?userCotroller=delete

 

                PSspring_mvc.xml

                

二、用注解实现

        1、添加spring_mvc.xml命名空间contextmvc

              

              这里我用的是spring3.2,但配置mvc命名空间的时间,只能用mvc-3.1.xsd(不知道原因)

             

        2、在配置文件中配置spring的扫描机制

             <context:component-scanbase-package="controller"/>

              base-package表示要扫描哪些包,如果有多个包的话,用逗号分开。配置完扫描机制后,在SpringController类中添加@Component

              添加这个注解后,spring扫描机制会把该类交给spring容器管理。同时我们可以删去之前我们为该类配置的bean

 

        3、开启spring mvc的注解

              <mvc:annotation-driven/>

              开启这个注解后,我们就可以删掉之前配置的多个请求的bean。开启后,spring mvc自动我们实现多配置功能。

             

        4、修改SpringController

              @Component

              @RequestMapping(value="/springController")

              publicclass SpringControllerextends MultiActionController{

   

                 @RequestMapping(value="/add", method=RequestMethod.POST)

                 public ModelAndView add(){

                      ModelAndView mv = new ModelAndView();

                      mv.addObject("message","this is a add method");

                      mv.setViewName("/helloWorld");

                      return mv;

                 }

                 @RequestMapping(value="/delete")

                 public ModelAndView delete(){

                      ModelAndView mv = new ModelAndView();

                      mv.addObject("message","this is a delete method");

                       mv.setViewName("/helloWorld");

                      return mv;

                 }

             }

            这里用@RequesrMapping的注解来标示要访问的路径,其属性value表示访问路径,method表示这个方法只能有哪些提交方法可以访

             问,默认什么提交方法都可以访问。在这些方法了,可以没有HttpServlerRequest,和HttpServlerResponse参数。但有时需要用到这两

             个参数,所以我认为还是加进去两个参数比较好。比如说,我们不用ModelAndView作为参数返回(直接返回字符串作为逻辑视图

             return/helloWorld”;)。那么我们要返回从业务处理后的数据,就必须用到HttpServlerRequest传参。因为我认为以ModelAndView

             为返回值比较方便,所以就直接用ModelAndView返回

 

       5、测试:

             调用add方法:http://localhost:8080/springMVC/springController/add

             调用delete方法:http://localhost:8080/springMVC/springController/delete

             此时可以看到,我们的访问方式与上面例子不一样,这里是不带参数的。

             PSspring_mvc.xml

                

 

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 拼多多人数不够怎么办 玩cf想吐怎么办 玩手机头晕恶心怎么办 玩手机头疼恶心怎么办 看手机想吐怎么办 英雄联盟取名后怎么办 王者荣耀改名重复怎么办 刺激战场改名重复怎么办 省钱快报忘记密码怎么办 手机直播网速卡怎么办 触手tv直播黑屏怎么办 酷狗id密码忘记怎么办 打游戏网络不稳定怎么办 电脑打字法没了怎么办 家庭版密钥专业版系统怎么办 win7应用程序不能启动怎么办 win7用户密码忘记了怎么办 win7用户密码忘了怎么办 windows开不了机怎么办 网卡被卸载了怎么办 win7注销黑屏了怎么办 w7密码忘了怎么办 笔记本电脑键盘进水了怎么办 笔记本键盘进水了怎么办 笔记本进水键盘失灵怎么办 win7进不了系统怎么办 电脑显示屏两边黑屏怎么办 win8关机关不了怎么办 win10没激活黑屏怎么办 忘了产品密钥怎么办 小马易贷逾期怎么办 10系统未激活怎么办 win10账户被停用怎么办 win7激活码无效怎么办 windows显示不是正版怎么办 优酷上传错误怎么办 盗版系统会黑屏怎么办 安装了盗版系统怎么办 电脑鼠标不好用怎么办 自己组装电脑系统怎么办 ie双击没反应怎么办