1.前言

上篇博客着重说了一下SpringMVC中几种处理映射的方式,这篇博客来说一下SpringMVC中几种经常使用的控制器.

 2.经常使用控制器

2.1 ParameterizableViewController(參数控制器)

<span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"?

>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd "> <!-- 配置文件形式要配置的组建:Controller,handlermapping(有默认规则),viewResolver,interceptor -->
<!-- 视图解析器 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置从项目根文件夹到一端路径 -->
<property name="prefix" value="/WEB-INF/jsp/" />
<!-- 文件后缀名称 -->
<property name="suffix" value=".jsp" />
</bean> <!-- 使用简单url来映射 -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/hello1.do">TestController</prop>
<prop key="/hello1.do">toLogin</prop>
<prop key="/comm.do">command</prop>
<prop key="/form.do">form</prop>
</props>
</property>
</bean>
<!-- 參数控制器,须要配置对应的URL来映射 -->
<bean id="toLogin"
class="org.springframework.web.servlet.mvc.ParameterizableViewController">
<!-- 配置你所要跳转到视图的名称 -->
<!-- 要跳转的视图的名称 -->
<property name="viewName" value="index"></property>
</bean> </beans>
</span>

从上述代码中我们能够发现,參数控制器跟寻常的控制器差点儿相同,可是不能通过控制器名称来訪问到,由于參数控制器是唯一的.

2.2 AbstractCommandController(命令控制器)

<span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd "> <!-- 配置文件形式要配置的组建:Controller,handlermapping(有默认规则),viewResolver,interceptor -->
<!-- 视图解析器 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置从项目根文件夹到一端路径 -->
<property name="prefix" value="/WEB-INF/jsp/" />
<!-- 文件后缀名称 -->
<property name="suffix" value=".jsp" />
</bean> <!-- 使用简单url来映射 -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/hello1.do">TestController</prop>
<prop key="/hello1.do">toLogin</prop>
<prop key="/comm.do">command</prop>
<prop key="/form.do">form</prop>
</props>
</property>
</bean>
<!-- 命令控制器信息,须要指定简单的URL来映射 -->
<bean class="com.url.controller.commController" id="command">
<!-- 指定收集对象的类型 -->
<property name="commandClass" value="com.url.Entity.person"></property>
</bean> </beans>
</span>

接着来创建控制器信息,须要继承AbstractCommandController

<span style="font-size:18px;">package com.url.controller;

import java.util.HashMap;
import java.util.Map; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractCommandController; import com.url.Entity.person; public class commController extends AbstractCommandController { // 通过命令控制器,每次在訪问的时候,都会创建一个新的Person对象
@Override
protected ModelAndView handle(HttpServletRequest arg0,
HttpServletResponse arg1, Object arg2, BindException arg3)
throws Exception {
//使用命令控制器来收集数据而且创建指定的对象
person person=new person();
System.out.println(person);
//把后台的数据和视图封装成ModelAndView
Map<String, Object> map=new HashMap<String, Object>();
map.put("person", person);
return new ModelAndView("index", map);
} }
</span>

3.3 FormController(表单控制器)

通过表单控制器,能够把表单上的数据封装成为一个对象,在控制器中收集到.

<span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd "> <!-- 配置文件形式要配置的组建:Controller,handlermapping(有默认规则),viewResolver,interceptor -->
<!-- 视图解析器 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置从项目根文件夹到一端路径 -->
<property name="prefix" value="/WEB-INF/jsp/" />
<!-- 文件后缀名称 -->
<property name="suffix" value=".jsp" />
</bean> <!-- 使用简单url来映射 -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/hello1.do">TestController</prop>
<prop key="/hello1.do">toLogin</prop>
<prop key="/comm.do">command</prop>
<prop key="/form.do">form</prop>
</props>
</property>
</bean>
<!-- 表单控制器,须要指定对应的URL来映射 -->
<bean class="com.url.controller.FormController" id="form">
<!-- 指定收集对象的类型 -->
<property name="commandClass" value="com.url.Entity.person"></property>
<!-- 表单页面 -->
<property name="formView" value="form"></property>
<!-- 成功后的跳转页面操作 -->
<property name="successView" value="success"></property>
</bean> </beans>
</span>

接着创建控制器

<span style="font-size:18px;">package com.url.controller;

import org.springframework.web.servlet.mvc.SimpleFormController;

import com.url.Entity.person;

/*表单控制器*/
public class FormController extends SimpleFormController { /*通过此方法来收集表单上的数据,并自己主动封装成一个对象*/
protected void doSubmitAction(Object command) throws Exception {
person p=(person)command;
System.out.println(p);
super.doSubmitAction(command);
} }
</span>

3.小结

本篇博客解说了一下SpringMVC中经常使用的控制器,通过控制器能够与View进行对应的传值操作.



SpringMVC实战(三种控制器方式)的更多相关文章

  1. SpringMVC实战(三种映射处理器)

    1.前言 上一篇博客,简单的介绍了一下SpringMVC的基础知识,这篇博客来说一下SpringMVC中的几种映射处理器机制. 2.三种映射处理器 2.1 BeanNameUrlHandlerMapp ...

  2. SpringMVC 三种异常处理方式

    SpringMVC 三种异常处理方式 在 SpringMVC, SpringBoot 处理 web 请求时, 若遇到错误或者异常,返回给用户一个良好的错误信息比 Whitelabel Error Pa ...

  3. 实战三种方式部署 MySQL5.7

    作者:北京运维 常见的 MySQL 安装方式有如下三种: RPM 包方式:这种方式安装适合对数据库要求不太高的场合,安装速度快: 通用二进制包方式:安装速度相较于源码方式快,可以自定义安装目录. 源码 ...

  4. MVC-AOP思想-Filter 三种注册方式

    在ASP.NET MVC框架中,为我们提供了四种类型的Filter类型包括:IAuthorizationFilter.IActionFilter.IResultFilter.IExceptionFil ...

  5. MVC-AOP(面向切面编程)思想-Filter 三种注册方式

    在ASP.NET MVC框架中,为我们提供了四种类型的Filter类型包括:IAuthorizationFilter.IActionFilter.IResultFilter.IExceptionFil ...

  6. 2019年6月14日 Web框架之Django_07 进阶操作(MTV与MVC、多对多表三种创建方式、前后端传输数据编码格式contentType、ajax、自定义分页器)

    摘要 MTV与MVC 多对多表三种创建方式 ajax ,前后端传输数据编码格式contentType 批量插入数据和自定义分页器 一.MVC与MTV MVC(Model View Controller ...

  7. Django多对多表的三种创建方式,MTV与MVC概念

    MTV与MVC MTV模型(django): M:模型层(models.py) T:templates V:views MVC模型: M:模型层(models.py) V:视图层(views.py) ...

  8. 分布式锁的三种实现方式 数据库、redis、zookeeper

    版权声明: https://blog.csdn.net/wuzhiwei549/article/details/80692278 一.为什么要使用分布式锁 我们在开发应用的时候,如果需要对某一个共享变 ...

  9. spring注解之@Import注解的三种使用方式

    目录 1.@Import注解须知 2.@Import的三种用法 3.@Import注解的三种使用方式总结 @ 1.@Import注解须知 1.@Import只能用在类上 ,@Import通过快速导入的 ...

随机推荐

  1. js中常用的对象—String的属性和方法

    今天说一下,js中常用的内置对象——String对象它有以下几个常用的属性:lengthprototype 有以下几个常用的方法:parseInt()转换为数字parseFloat()转换为数字,支持 ...

  2. js中Object.defineProperties 定义一个在原对象可读可写的方法

    function A(){ this.name = 'hellow word'; } Object.defineProperties( A.prototype,{ doSomething2 : { v ...

  3. JS 在HTML页面显示当前日期

    代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <t ...

  4. JS面向对象系列教程 — 对象的基本操作

    面向对象概述  面向对象(Object Oriented)简称OO,它是一种编程思维,用于指导我们如何应对各种复杂的开发场景. 这里说的对象(Object),意思就是事物,在面向对象的思维中,它将一 ...

  5. PHP 7.1安装xhprof进行性能分析

    安装扩展该 xhprof扩展版本是从 https://github.com/longxinH/xhprof 获取的(第三方的一个库,官方版本不支持php7) 下载并编译xhprof扩展在web的htm ...

  6. POJ——T 2406 Power Strings

    http://poj.org/problem?id=2406 Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 50627   ...

  7. cocos2dx-js学习笔记(一)环境搭建

    本人眼下的学习方向是cocos2dx+js的开发方式,开发调试使用webstrom和火狐浏览器,调试完毕的项目使用cocos2dx+jsb的方式编译到PC或android设备执行.主要时间用在学习,所 ...

  8. Android程序使用SOAP调用远程WebService服务

    在现在的应用程序中.不可能不使用到网络,而且后台一定是有server作为支撑的. 现在最常见的调用方式有HTTP的GET .POST方式,返回JSON或者XML数据. 可是也有一种常见的形式就是调用W ...

  9. Qt程序调试之Q_ASSERT断言(它是一个宏,接受布尔值,当其中的布尔值为真时,便什么也不做)

    在使用Qt开发大型软件时,难免要调试程序,以确保程序内的运算结果符合我们的预期.在不符合预期结果时,就直接将程序断下,以便我们修改. 这就用到了Qt中的调试断言 - Q_ASSERT. 用一个小例子来 ...

  10. Android学习笔记进阶17之LinearGradient

    具体的看一下博文:Android学习笔记进阶15之Shader渲染 package xiaosi.BitmapShader; import android.app.Activity; import a ...