Springmvc Controller接口代码示例

作者:龚细军 时间:2023-11-28 10:13:25 

Spring MVC

Controller控制器,是MVC中的部分C,为什么是部分呢?因为此处的控制器主要负责功能处理部分:

收集、验证请求参数并绑定到命令对象;

将命令对象交给业务对象,由业务对象处理并返回模型数据;

返回ModelAndView(Model部分是业务对象返回的模型数据,视图部分为逻辑视图名)。

1. 继承该接口 Controller接口,重写对应方法,或者采用注解Controller,自定义映射文件


@Controller
@RequestMapping("/flight")
public class ControlFlight
/*implements Controller*/
{
}

需要注意的是:

SimpleUrlHandlerMapping决定使用哪一个控制器。

其中对于prexf-servlet-.xml文件中使重定向方式:

1.第一种ModelAndView方式。


<!--基于URL映射器-->
   <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
     <property name="mappings">
       <props>

<prop key="start1.do">ControlFlight</prop>
         <prop key="buy.do">ControlFlight</prop>
         <prop key="flight.do">ControlFlight</prop>
         <prop key="result.do">ControlFlight</prop>
         <!--<prop key="start.do">loginController</prop>-->
       </props>
     </property>
   </bean>

<!-- <bean id="loginController" class="org.springframework.web.servlet.mvc.ParameterizableViewController">
     <property name="viewName" value="buy"/>
   </bean>-->

<bean id="ControlFlight" class="com.qunar.flight.control.ControlFlight"/>

<!--ViewResolver映射-->
 <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
   <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
   <property name="prefix" value="/WEB-INF/flight/"/>
   <property name="suffix" value=".jsp"/>
   <property name="order" value="1"/>
 </bean>

之后进入Controller中进行任务分派:


@RequestMapping(value = "/start.do", method = RequestMethod.GET)
  public ModelAndView BuyAirTicket() {
return new ModelAndView("buy");
}

2 第二种采用


<!--基于URL映射器-->
   <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
     <property name="mappings">
       <props>

<prop key="start.do">loginController</prop>
       </props>
     </property>
   </bean>

<bean id="loginController" class="org.springframework.web.servlet.mvc.ParameterizableViewController">
     <property name="viewName" value="buy"/>
   </bean>

然后和下面的部分代码实现URL拼接


<!--ViewResolver映射-->
 <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
   <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
   <property name="prefix" value="/WEB-INF/flight/"/>
   <property name="suffix" value=".jsp"/>
   <property name="order" value="1"/>
 </bean>

还有另一种方法:

就是直接使用这个命令,但是前提条件是,请求URI的前缀(过滤掉.vm,.htm等)和转发的一样,则直接可以使用


<bean id="loginController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>

3 继承AbstractControlle 接口,并实现相应的方法,次方法和Controller相同,但是对于如果想封装表单请求,可以直接使用CommandController,-->AbstractCommandController(3.0以上版本废弃)

4. 注解@RequestMapping("/path") -->在类级别上定义注解时,那么再用此方法注解方法method时,那么method下的路径是与类路径相对。

@PathVariable 该注释是用来指明URL路径里面取参数,这个注解可以多个使用,下面时使用一种的代码片段


@RequestMapping("/flight/{name}")
 public ModelAndView toAdd(@PathVariable("name") String name){

ModelAndView mav = new ModelAndView("buy");
   return mav;
 }

总结

SpringMVC接收复杂集合对象(参数)代码示例

SpringMVC * 实现监听session是否过期详解

SpringMVC开发restful API之用户查询代码详解

如有不足之处,欢迎留言指出。

来源:https://www.cnblogs.com/gongxijun/p/5338104.html

标签:springmvc,Controller接口
0
投稿

猜你喜欢

  • 仿ios状态栏颜色和标题栏颜色一致的实例代码

    2023-08-20 02:17:45
  • C语言实现模拟银行系统

    2022-01-17 08:40:27
  • C#如何自动识别文件的编码

    2022-10-08 01:41:43
  • android 修改launcher行数和列数的方法

    2021-10-02 14:19:37
  • C#对JSON与对象的序列化与反序列化

    2022-09-07 12:05:08
  • Ubuntu16.04 LTS 下安装 Android Studio 2.2.2 的详细步骤

    2022-08-11 09:59:22
  • Java事务管理学习之Spring和Hibernate详解

    2023-04-11 00:01:25
  • Android虚拟机与类加载机制详情

    2022-12-16 20:09:03
  • 详解JAVA中的OPTIONAL

    2022-08-22 17:09:04
  • Java项目开发中实现分页的三种方式总结

    2021-08-25 21:36:36
  • Flutter加载图片流程之ImageCache源码示例解析

    2023-07-04 01:56:23
  • ClassLoader类加载源码解析

    2023-11-25 18:17:09
  • springboot+thymeleaf 文件上传功能的实现代码

    2023-11-25 05:08:59
  • SpringMVC拦截器创建配置及执行顺序

    2023-06-06 20:41:16
  • C# PropertyInfo类案例详解

    2021-12-11 16:47:45
  • Mybatis模糊查询及自动映射实现详解

    2021-10-29 12:05:40
  • Java的关键字与保留字小结

    2021-05-30 10:20:50
  • java实现导出Excel的功能

    2022-07-17 15:57:28
  • C语言中魔性的float浮点数精度问题

    2022-08-12 08:59:26
  • 使用java编程从0到1实现一个简单计算器

    2023-12-06 04:47:53
  • asp之家 软件编程 m.aspxhome.com