一、Spring MVC控制器名称处理映射

  以下示例展示如何利用Spring MVC 框架使用控制器名称处理程序映射。

  ControllerClassNameHandlerMapping类是基于约定的处理程序映射类,它将URL请求映射到配置中提到的控制器的名称。这个类接受控制器名称并将其转换为带有前导“/”的小写形式。 例如HelloController映射到URL: “/hello*”。

  采用如下配置:

  

<!--视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean> <!--Bean配置-->
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/> <bean class="com.ktao.springmvc.HelloController"/>
<bean class="com.ktao.springmvc.WelcomeController"/>

例如,使用上面的配置,URL:

  • 对于/helloWorld.html/hello{任何字母}.htmlDispatcherServlet将请求转发到HelloController类。
  • 对于/welcome.htmlDispatcherServlet会将请求转发给WelcomeController类。
  • 对于/welcome1.htmlDispatcherServlet将不会找到任何控制器,服务器将抛出404状态错误。

工程目录:

HelloController.java 的代码如下所示 -

package com.ktao.springmvc;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class HelloController extends AbstractController { @Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("hello");
model.addObject("message", "Hello World!");
return model;
}
}

WelcomeController.java 的代码如下所示 -

package com.ktao.springmvc;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class WelcomeController extends AbstractController { @Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelAndView model = new ModelAndView("welcome");
model.addObject("message", "Welcome!");
return model;
}
}

dispatcher-servlet.xml 的代码如下所示-

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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.xsd"> <!--视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean> <!--Bean配置-->
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/> <bean class="com.ktao.springmvc.HelloController"/>
<bean class="com.ktao.springmvc.WelcomeController"/>
</beans>

hello.jsp 的代码如下所示 -

<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h2>${message}</h2>
</body>
</html>

welcome.jsp 的代码如下所示 -

<%@ page contentType="text/html; charset=UTF-8" %>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h2>${message}</h2>
</body>
</html>

运行结果:

二、Spring MVC简单URL处理程序映射

以下示例显示如何使用Spring Web MVC框架来实现一个简单URL处理程序映射。 SimpleUrlHandlerMapping类分别显式地将URL映射到相应的控制器上。

修改dispatcher-servlet.xml 的代码如下所示-

<beans>

   <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.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/welcome.html">welcomeController</prop>
<prop key="/helloWorld.html">helloController</prop>
</props>
</property>
</bean> <bean id="helloController" class="com.yiibai.springmvc.HelloController" /> <bean id="welcomeController" class="com.yiibai.springmvc.WelcomeController"/>
</beans>

最新文章

  1. iOS Interface Builder:在.xib文件中加载另一个.xib文件
  2. AnguarJS 第一天----Hello World
  3. 初学JQuery笔记
  4. 对InvokeAction简略分析了解验证失败为什么Action还会继续执行
  5. Shell 编程基础之 Select 练习
  6. django base.html
  7. SqlServer索引及优化详解
  8. android 项目学习随笔九(ListView加头布局)
  9. chromium 安装 pepper flash player
  10. 树上的DP
  11. 内存不足时Android 系统如何Kill进程
  12. java验证码(采用struts2实现)转
  13. demo——06弹性和制作骰子
  14. jquery动态插入行,不用拼写html,简洁版
  15. JAVA加密
  16. .NET 并行(多核)编程系列之五 Task执行和异常处理
  17. How to Simulate the Price Order or Price Line Function using API QP_PREQ_PUB.PRICE_REQUEST Includes
  18. openfire推送离线聊天信息的插件
  19. 《前端之路》之四 JavaScript 的闭包、作用域、作用域链
  20. C博客作业04--数组

热门文章

  1. Echarts柱状图实现不同颜色渐变色
  2. python 面向对象之封装与类与对象
  3. BizTalk Server 2016配置 WCF SAP Adapter
  4. css3兼容IE8的方案 各个ie的hack
  5. java 实现多文件打包下载
  6. vue项目中的常见问题
  7. Jetty入门(1-1)Jetty入门教程
  8. OAuth2.0学习(1-8) 授权方式五之Access_Token令牌过期更新
  9. 在删除一个指针之后,一定将该指针设置成空指针(即在delete *p之后一定要加上: p=NULL)
  10. SQLContext、HiveContext自定义函数注册