怎么在Springmvc中实现一个控制器接口?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
<强> Spring MVC 强>
控制器控制器,是MVC中的部分C,为什么是部分呢?因为此处的控制器主要负责功能处理部分:
收集,验证请求参数并绑定到命令对象,
将命令对象交给业务对象,由业务对象处理并返回模型数据;
返回ModelAndView(模型部分是业务对象返回的模型数据,视图部分为逻辑视图名)。
1。继承该接口控制器接口,重写对应方法,或者采用注解控制器、自定义映射文件
@ Controller @RequestMapping (“/flight") public class  ControlFlight *//* implements 控制器 { }
需要注意的是:
SimpleUrlHandlerMapping决定使用哪一个控制器。
其中对于prexf-servlet . xml文件中使重定向方式:
<强> 1。第一种ModelAndView方式。强>
& lt; !——基于URL映射器——比; ,,,& lt; bean 类=皁rg.springframework.web.servlet.handler.SimpleUrlHandlerMapping"比; ,,,,,& lt; property name=癿appings"比; ,,,,,,,& lt; props> ,,,,,,,,,& lt; prop 关键=皊tart1.do"祝辞ControlFlight ,,,,,,,,,& lt; prop 关键=癰uy.do"祝辞ControlFlight ,,,,,,,,,& lt; prop 关键=癴light.do"祝辞ControlFlight ,,,,,,,,,& lt; prop 关键=皉esult.do"祝辞ControlFlight ,,,,,,,,,& lt; !——& lt; prop 关键=皊tart.do"祝辞loginController——比; ,,,,,,,& lt;/props> ,,,,,& lt;/property> ,,,& lt;/bean> ,,& lt; !——, & lt; bean id=發oginController",类=皁rg.springframework.web.servlet.mvc.ParameterizableViewController"比; ,,,,,& lt; property name=皏iewName",值=https://www.yisu.com/zixun/"买入"/> 豆> - -><属性名=" viewClass " value=" org.springframework.web.servlet.view.JstlView "/> <属性名="前缀“value="/web - inf/飞行/"/> <属性名="后缀" value=" . jsp "/> <属性名="秩序" value=" 1 "/> 豆>
之后进入控制器中进行任务分派:
@RequestMapping (=value “/start.do",, method =, RequestMethod.GET) ,,public ModelAndView  BuyAirTicket (), { return new  ModelAndView (“buy"); }
<强> 2第二种采用强>
& lt; !——基于URL映射器——比; ,,,& lt; bean 类=皁rg.springframework.web.servlet.handler.SimpleUrlHandlerMapping"比; ,,,,,& lt; property name=癿appings"比; ,,,,,,,& lt; props> ,,,,,,,,,& lt; prop 关键=皊tart.do"祝辞loginController ,,,,,,,& lt;/props> ,,,,,& lt;/property> ,,,& lt;/bean> ,,,& lt; bean id=發oginController",类=皁rg.springframework.web.servlet.mvc.ParameterizableViewController"比; ,,,,,& lt; property name=皏iewName",值=https://www.yisu.com/zixun/"买入"/> 豆>
然后和下面的部分代码实现URL拼接
& lt; !——ViewResolver映射——比; & lt;才能bean 类=皁rg.springframework.web.servlet.view.UrlBasedViewResolver"比; ,,,& lt; property name=皏iewClass",价值=https://www.yisu.com/zixun/" org.springframework.web.servlet.view.JstlView "/> <属性名="前缀“value="/web - inf/飞行/"/> <属性名="后缀" value=" . jsp "/> <属性名="秩序" value=" 1 "/> 豆>
还有另一种方法:
就是直接使用这个命令,但是前提条件是,请求URI的前缀(过滤掉. vm, . htm等)和转发的一样,则直接可以使用
& lt; bean id=發oginController",类=皁rg.springframework.web.servlet.mvc.UrlFilenameViewController"/祝辞
3继承AbstractControlle接口,并实现相应的方法,次方法和控制器相同,但是对于如果想封装表单请求,可以直接使用CommandController,——在AbstractCommandController(3.0以上版本废弃)
4。注解@RequestMapping (“/path")——在在类级别上定义注解时,那么再用此方法注解方法方法时,那么方法下的路径是与类路径相对。
@PathVariable该注释是用来指明URL路径里面取参数,这个注解可以多个使用,下面时使用一种的代码片段