Spring MVC-控制器(Controller)-多动作控制器(Multi Action Controller)示例(转载实践)
以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_multiactioncontroller.htm
说明:示例基于Spring MVC 4.1.6。
以下示例说明如何使用Spring Web MVC框架使用Multi Action Controller。MultiActionController类有助于分别在单个控制器中将多个URL与其方法映射。
- package com.tutorialspoint;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.springframework.web.servlet.ModelAndView;
- import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
- public class UserController extends MultiActionController{
- public ModelAndView home(HttpServletRequest request, HttpServletResponse response) throws Exception {
- ModelAndView model = new ModelAndView("home");
- model.addObject("message", "Home");
- return model;
- }
- public ModelAndView add(HttpServletRequest request, HttpServletResponse response) throws Exception {
- ModelAndView model = new ModelAndView("user");
- model.addObject("message", "Add");
- return model;
- }
- public ModelAndView remove(HttpServletRequest request, HttpServletResponse response) throws Exception {
- ModelAndView model = new ModelAndView("user");
- model.addObject("message", "Remove");
- return model;
- }
- }
- <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
- <bean name="/home.htm" class="com.tutorialspoint.UserController" />
- <bean name="/user/*.htm" class="com.tutorialspoint.UserController" />
例如,使用上面的配置,如果是URI
/home.htm被请求,DispatcherServlet将请求转发给UserController home()方法。
user/add.htm被请求,DispatcherServlet将请求转发给UserController add()方法。
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
- package com.tutorialspoint;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.springframework.web.servlet.ModelAndView;
- import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
- public class UserController extends MultiActionController{
- public ModelAndView home(HttpServletRequest request, HttpServletResponse response) throws Exception {
- ModelAndView model = new ModelAndView("home");
- model.addObject("message", "Home");
- return model;
- }
- public ModelAndView add(HttpServletRequest request, HttpServletResponse response) throws Exception {
- ModelAndView model = new ModelAndView("user");
- model.addObject("message", "Add");
- return model;
- }
- public ModelAndView remove(HttpServletRequest request, HttpServletResponse response) throws Exception {
- ModelAndView model = new ModelAndView("user");
- model.addObject("message", "Remove");
- return model;
- }
- }
TestWeb-servlet.xml
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.0.xsd">
- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="prefix" value="/WEB-INF/jsp/"/>
- <property name="suffix" value=".jsp"/>
- </bean>
- <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
- <bean name="/home.htm" class="com.tutorialspoint.UserController" />
- <bean name="/user/*.htm" class="com.tutorialspoint.UserController" />
- </beans>
home.jsp
- <%@ page contentType="text/html; charset=UTF-8" %>
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Home</title>
- </head>
- <body>
- <body>
- <a href="user/add.htm" >Add</a> <br>
- <a href="user/remove.htm" >Remove</a>
- </body>
- </html>
user.jsp
- <%@ page contentType="text/html; charset=UTF-8" %>
- <html>
- <head>
- <title>Hello World</title>
- </head>
- <body>
- <h2>${message}</h2>
- </body>
- </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)示例(转载实践)的更多相关文章
- Spring MVC体系结构和处理请求控制器
Spring MVC体系结构和处理请求控制器 一:MVC设计模式: (1.)数据访问接口:DAO层 (2.)处理业务逻辑层:Service层 (3.)数据实体:POJO (4.)负责前段请求接受并处理 ...
- spring mvc: 可参数化的视图控制器(在配置中指定jsp文件)MultiActionController/SimpleUrlHandlerMapping/ParameterizableViewController
spring mvc: 可参数化的视图控制器(在配置中指定jsp文件)MultiActionController/SimpleUrlHandlerMapping/ParameterizableView ...
- spring mvc:内部资源视图解析器(注解实现)@Controller/@RequestMapping
spring mvc:内部资源视图解析器(注解实现)@Controller/@RequestMapping 项目访问地址: http://localhost:8080/guga2/hello/prin ...
- spring mvc 注解扫描问题 ,扫描不到controller, use-default-filters="false"
今天搭了个spring mvc项目,怎么也扫描不到controller,最后发现问题在use-default-filters="false"上面,乱copy出的问题 (默认值是tr ...
- Spring MVC可参数化的视图控制器
以下示例显示如何使用Spring Web MVC框架来实现多动作控制器的可参数化视图控制器.可参数化视图允许将请求映射到网页. 所下所示配置 - import javax.servlet.http.H ...
- spring mvc DispatcherServlet详解之二---request通过Controller获取ModelAndView过程
整个spring mvc的架构如下图所示: 上篇文件讲解了DispatcherServlet通过request获取控制器Controller的过程,现在来讲解DispatcherServletDisp ...
- spring MVC 管理HttpClient---实现在java中直接向Controller发送请求
在spring MVC中,大多数时候是由客户端的页面通过ajax等方式向controller发送请求,但有时候需要在java代码中直接向controller发送请求,这时可以使用HttpCilent实 ...
- Spring MVC 用post方式提交表单到Controller乱码问题,而get方式提交没有乱码问题
在web.xml中添加一个filter,即可解决post提交到Spring MVC乱码问题 <!-- 配置请求过滤器,编码格式设为UTF-8,避免中文乱码--> <filter> ...
- Spring MVC 学习总结(四)——视图与综合示例
一.表单标签库 1.1.简介 从Spring2.0起就提供了一组全面的自动数据绑定标签来处理表单元素.生成的标签兼容HTML 4.01与XHTML 1.0.表单标签库中包含了可以用在JSP页面中渲染H ...
随机推荐
- phpexecl 的基本操作
基本使用方法分三部分:一.引入接口 // PHPExcel_IOFactory require_once dirname(__FILE__).'/Classes/PHPExcel/IOFactory. ...
- HDU2564 词组缩写
2019-06-03 15:00:38 感觉有有种被坑了的感觉,这道题不难,就是一再的W,
- Jquery 表单基础元素操作总结
最近做前端比较多总结一些常用功能: radio 单选选中并且出发change事件: $(selector).find('input:radio[name=valuationMode]').filter ...
- 参加2016华为codecraft编程精英挑战赛后感
2016年4月参加了华为的软件比赛. 关于比赛:给了一道图论的np-hard问题.刚开始完全不知道怎么入手,请教过师兄,自己也琢磨过,没有什么万全的解决方法.注意,这里说的是万全的办法.本科搞算法时候 ...
- 生成错误:对路径".dll"的访问被拒绝
第一步:检查dll所在的目录的访问权限,右键文件夹>属性>安全>设置添加EveryOne用户并将完全控制的权限赋给它. 如果问题还没有解决,请不要一遍遍的重启,看第二步: 第二步:右 ...
- 使用less时的calc()函数问题
在使用less时写 width:calc(100%-30px); 但在浏览器检查元素的时候总会显示width:70%; 可以在Less中把calc的写法改写成下面这样: width : calc(~& ...
- 软件架构自学笔记----分享“去哪儿 Hadoop 集群 Federation 数据拷贝优化”
去哪儿 Hadoop 集群 Federation 数据拷贝优化 背景 去哪儿 Hadoop 集群随着去哪儿网的发展一直在优化改进,基本保证了业务数据存储量和计算量爆发式增长下的存储服务质量.然而,随着 ...
- (转)Vuex简单入门
今天试了一下Vuex,感觉跟Redux的实现思想类似.再此,简单地总结一下. 什么是Vuex 在Vue中,多组件的开发给我们带来了很多的方便,但同时当项目规模变大的时候,多个组件间的数据通信和状态管理 ...
- Android开发之ThreadLocal原理深入理解
[Android]ThreadLocal的定义和用途 ThreadLocal用于实现在不同的线程中存储线程私有数据的类.在多线程的环境中,当多个线程需要对某个变量进行频繁操作,同时各个线程间不需要同步 ...
- Android基础TOP2_1:输出系统时间
Activity: <TextView android:id="@+id/tv" android:layout_width="wrap_content" ...