以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_multiactioncontroller.htm

说明:示例基于Spring MVC 4.1.6。

以下示例说明如何使用Spring Web MVC框架使用Multi Action Controller。MultiActionController类有助于分别在单个控制器中将多个URL与其方法映射。

  1. package com.tutorialspoint;
  2.  
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5.  
  6. import org.springframework.web.servlet.ModelAndView;
  7. import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
  8.  
  9. public class UserController extends MultiActionController{
  10.  
  11. public ModelAndView home(HttpServletRequest request, HttpServletResponse response) throws Exception {
  12. ModelAndView model = new ModelAndView("home");
  13. model.addObject("message", "Home");
  14. return model;
  15. }
  16.  
  17. public ModelAndView add(HttpServletRequest request, HttpServletResponse response) throws Exception {
  18. ModelAndView model = new ModelAndView("user");
  19. model.addObject("message", "Add");
  20. return model;
  21. }
  22.  
  23. public ModelAndView remove(HttpServletRequest request, HttpServletResponse response) throws Exception {
  24. ModelAndView model = new ModelAndView("user");
  25. model.addObject("message", "Remove");
  26. return model;
  27. }
  28. }
  1. <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
  2. <bean name="/home.htm" class="com.tutorialspoint.UserController" />
  3. <bean name="/user/*.htm" class="com.tutorialspoint.UserController" />

例如,使用上面的配置,如果是URI

  1. /home.htm被请求,DispatcherServlet将请求转发给UserController home()方法。

  2. user/add.htm被请求,DispatcherServlet将请求转发给UserController add()方法。

  3. user/remove.htm被请求,DispatcherServlet将请求转发给UserController remove()方法。

首先,让我们使用Eclipse IDE,并按照以下步骤使用Spring Web Framework开发基于动态窗体的Web应用程序:

步骤 描述
1 创建一个名称的项目TestWeb包下com.tutorialspoint中所解释的Spring MVC - Hello World示例章节。
2 在com.tutorialspoint包下创建Java类UserController。
3 在jsp子文件夹下创建一个视图文件home.jsp,user.jsp。
4 最后一步是创建所有源和配置文件的内容并导出应用程序,如下所述。

UserController.java

  1. package com.tutorialspoint;
  2.  
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5.  
  6. import org.springframework.web.servlet.ModelAndView;
  7. import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
  8.  
  9. public class UserController extends MultiActionController{
  10.  
  11. public ModelAndView home(HttpServletRequest request, HttpServletResponse response) throws Exception {
  12. ModelAndView model = new ModelAndView("home");
  13. model.addObject("message", "Home");
  14. return model;
  15. }
  16.  
  17. public ModelAndView add(HttpServletRequest request, HttpServletResponse response) throws Exception {
  18. ModelAndView model = new ModelAndView("user");
  19. model.addObject("message", "Add");
  20. return model;
  21. }
  22.  
  23. public ModelAndView remove(HttpServletRequest request, HttpServletResponse response) throws Exception {
  24. ModelAndView model = new ModelAndView("user");
  25. model.addObject("message", "Remove");
  26. return model;
  27. }
  28. }

TestWeb-servlet.xml

  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:context="http://www.springframework.org/schema/context"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="
  5. http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  7. http://www.springframework.org/schema/context
  8. http://www.springframework.org/schema/context/spring-context-3.0.xsd">
  9.  
  10. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  11. <property name="prefix" value="/WEB-INF/jsp/"/>
  12. <property name="suffix" value=".jsp"/>
  13. </bean>
  14.  
  15. <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
  16. <bean name="/home.htm" class="com.tutorialspoint.UserController" />
  17. <bean name="/user/*.htm" class="com.tutorialspoint.UserController" />
  18. </beans>

home.jsp

  1. <%@ page contentType="text/html; charset=UTF-8" %>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  5. <title>Home</title>
  6. </head>
  7. <body>
  8. <body>
  9. <a href="user/add.htm" >Add</a> <br>
  10. <a href="user/remove.htm" >Remove</a>
  11. </body>
  12. </html>

user.jsp

  1. <%@ page contentType="text/html; charset=UTF-8" %>
  2. <html>
  3. <head>
  4. <title>Hello World</title>
  5. </head>
  6. <body>
  7. <h2>${message}</h2>
  8. </body>
  9. </html>

完成创建源文件和配置文件后,导出应用程序。右键单击应用程序并使用Export > WAR File选项,并将您的TestWeb.war文件保存在Tomcat的webapps文件夹中。

现在启动您的Tomcat服务器,并确保您可以使用标准浏览器从webapps文件夹访问其他网页。现在尝试URL http://localhost:8080/TestWeb/home.htm,如果您的Spring Web应用程序的一切都很好,您应该会看到以下结果:

尝试URL http://localhost:8080/TestWeb/user/add.htm,如果Spring Web应用程序的一切都很好,您应该会看到以下结果:

Maven示例:

https://github.com/easonjim/5_java_example/tree/master/springmvc/tutorialspoint/test19

Spring MVC-控制器(Controller)-多动作控制器(Multi Action Controller)示例(转载实践)的更多相关文章

  1. Spring MVC体系结构和处理请求控制器

    Spring MVC体系结构和处理请求控制器 一:MVC设计模式: (1.)数据访问接口:DAO层 (2.)处理业务逻辑层:Service层 (3.)数据实体:POJO (4.)负责前段请求接受并处理 ...

  2. spring mvc: 可参数化的视图控制器(在配置中指定jsp文件)MultiActionController/SimpleUrlHandlerMapping/ParameterizableViewController

    spring mvc: 可参数化的视图控制器(在配置中指定jsp文件)MultiActionController/SimpleUrlHandlerMapping/ParameterizableView ...

  3. spring mvc:内部资源视图解析器(注解实现)@Controller/@RequestMapping

    spring mvc:内部资源视图解析器(注解实现)@Controller/@RequestMapping 项目访问地址: http://localhost:8080/guga2/hello/prin ...

  4. spring mvc 注解扫描问题 ,扫描不到controller, use-default-filters="false"

    今天搭了个spring mvc项目,怎么也扫描不到controller,最后发现问题在use-default-filters="false"上面,乱copy出的问题 (默认值是tr ...

  5. Spring MVC可参数化的视图控制器

    以下示例显示如何使用Spring Web MVC框架来实现多动作控制器的可参数化视图控制器.可参数化视图允许将请求映射到网页. 所下所示配置 - import javax.servlet.http.H ...

  6. spring mvc DispatcherServlet详解之二---request通过Controller获取ModelAndView过程

    整个spring mvc的架构如下图所示: 上篇文件讲解了DispatcherServlet通过request获取控制器Controller的过程,现在来讲解DispatcherServletDisp ...

  7. spring MVC 管理HttpClient---实现在java中直接向Controller发送请求

    在spring MVC中,大多数时候是由客户端的页面通过ajax等方式向controller发送请求,但有时候需要在java代码中直接向controller发送请求,这时可以使用HttpCilent实 ...

  8. Spring MVC 用post方式提交表单到Controller乱码问题,而get方式提交没有乱码问题

    在web.xml中添加一个filter,即可解决post提交到Spring MVC乱码问题 <!-- 配置请求过滤器,编码格式设为UTF-8,避免中文乱码--> <filter> ...

  9. Spring MVC 学习总结(四)——视图与综合示例

    一.表单标签库 1.1.简介 从Spring2.0起就提供了一组全面的自动数据绑定标签来处理表单元素.生成的标签兼容HTML 4.01与XHTML 1.0.表单标签库中包含了可以用在JSP页面中渲染H ...

随机推荐

  1. phpexecl 的基本操作

    基本使用方法分三部分:一.引入接口 // PHPExcel_IOFactory require_once dirname(__FILE__).'/Classes/PHPExcel/IOFactory. ...

  2. HDU2564 词组缩写

    2019-06-03 15:00:38 感觉有有种被坑了的感觉,这道题不难,就是一再的W,

  3. Jquery 表单基础元素操作总结

    最近做前端比较多总结一些常用功能: radio 单选选中并且出发change事件: $(selector).find('input:radio[name=valuationMode]').filter ...

  4. 参加2016华为codecraft编程精英挑战赛后感

    2016年4月参加了华为的软件比赛. 关于比赛:给了一道图论的np-hard问题.刚开始完全不知道怎么入手,请教过师兄,自己也琢磨过,没有什么万全的解决方法.注意,这里说的是万全的办法.本科搞算法时候 ...

  5. 生成错误:对路径".dll"的访问被拒绝

    第一步:检查dll所在的目录的访问权限,右键文件夹>属性>安全>设置添加EveryOne用户并将完全控制的权限赋给它. 如果问题还没有解决,请不要一遍遍的重启,看第二步: 第二步:右 ...

  6. 使用less时的calc()函数问题

    在使用less时写 width:calc(100%-30px); 但在浏览器检查元素的时候总会显示width:70%; 可以在Less中把calc的写法改写成下面这样: width : calc(~& ...

  7. 软件架构自学笔记----分享“去哪儿 Hadoop 集群 Federation 数据拷贝优化”

    去哪儿 Hadoop 集群 Federation 数据拷贝优化 背景 去哪儿 Hadoop 集群随着去哪儿网的发展一直在优化改进,基本保证了业务数据存储量和计算量爆发式增长下的存储服务质量.然而,随着 ...

  8. (转)Vuex简单入门

    今天试了一下Vuex,感觉跟Redux的实现思想类似.再此,简单地总结一下. 什么是Vuex 在Vue中,多组件的开发给我们带来了很多的方便,但同时当项目规模变大的时候,多个组件间的数据通信和状态管理 ...

  9. Android开发之ThreadLocal原理深入理解

    [Android]ThreadLocal的定义和用途 ThreadLocal用于实现在不同的线程中存储线程私有数据的类.在多线程的环境中,当多个线程需要对某个变量进行频繁操作,同时各个线程间不需要同步 ...

  10. Android基础TOP2_1:输出系统时间

    Activity: <TextView android:id="@+id/tv" android:layout_width="wrap_content" ...