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;
}
}
这方法很简单,编写struct的Action方法差不多,但注意的是方法中要有HttpServlerRequest,和HttpServlerResponse(这个方法也可以
没有)参数。
5、测试:
调用add方法:http://localhost:8080/springMVC/springController?userCotroller=add
调用delete方法:http://localhost:8080/springMVC/springController?userCotroller=delete
PS:spring_mvc.xml
二、用注解实现
1、添加spring_mvc.xml命名空间context、mvc
这里我用的是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
此时可以看到,我们的访问方式与上面例子不一样,这里是不带参数的。
PS:spring_mvc.xml
- spring MVC笔记2—用注入和注解解决一个controller多个方法
- spring mvc一个Controller响应多个请求
- spring mvc在注解开发下表单提交到不了Controller方法的解决手段
- Spring MVC之controller注解
- Spring MVC 常用注解@Controller和@RequestMapping简介
- Spring MVC注解方式service和controller的扫描顺序
- spring-mvc注解方式注入
- Spring MVC中Controller如何区分一个Form中包含的多个Submit按钮
- Spring MVC 注解下Controller 的AOP
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- Spring MVC中基于注解的Controller
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- Spring MVC 中的基于注解的 Controller
- 中国剩余定理
- 任务栏的图标
- seo整天写文章和发外链是不是太机械了?
- UVA - 401 - Palindromes
- 第一个Grails程序
- spring MVC笔记2—用注入和注解解决一个controller多个方法
- C程序的内存分配
- train订票系统优化最终版
- 硬盘丢失了文件还能找回吗
- 用 EasyBCD 在 Win7/8 中硬盘安装 Ubuntu
- 飞凌OK6410A 多媒体视频编解码 player-qt4 QT视频播放器
- TextView
- 烧写Flash后的DSP程序运行不正常的情况分析
- n-gram模型