Spring MVC控制器类名称处理映射

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

所下所示配置 -

<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.mvc.support.ControllerClassNameHandlerMapping"/> <bean class="com.yiibai.springmvc.HelloController" /> <bean class="com.yiibai.springmvc.WelcomeController"/> </beans> 
XML

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

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

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

  1. 创建一个名称为 ControllerClassNameHandlerMapping 的动态WEB项目。
  2. 在 com.yiibai.springmvc 包下创建两个Java类HelloController和 WelcomeController
  3. jsp子文件夹下创建两个视图文件:hello.jsp 和 welcome.jsp
  4. 最后一步是创建所有源和配置文件的内容并运行应用程序,详细如下所述。

完整的项目文件目录结构如下所示 -

HelloController.java 的代码如下所示 -

package com.yiibai.springmvc; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; 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; } } 
Java

WelcomeController.java 的代码如下所示 -

package com.yiibai.springmvc; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; 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; } } 
Java

ControllerClassNameHandlerMapping-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.mvc.support.ControllerClassNameHandlerMapping" /> <bean class="com.yiibai.springmvc.HelloController" /> <bean class="com.yiibai.springmvc.WelcomeController" /> </beans> 
XML

hello.jsp 的代码如下所示 -

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

welcome.jsp 的代码如下所示 -

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

完成创建源和配置文件后,发布应用程序到Tomcat服务器。

现在启动Tomcat服务器,现在尝试访问URL => http://localhost:8080/ControllerClassNameHandlerMapping/helloWorld.html ,如果Spring Web应用程序没有问题,应该看到以下结果:

当访问URL => http://localhost:8080/ControllerClassNameHandlerMapping/hello.html , 如果Spring Web应用程序没有问题,应该看到以下结果:

当访问URL => http://localhost:8080/ControllerClassNameHandlerMapping/welcome.html , 如果Spring Web应用程序没有问题,应该看到以下结果:

当访问URL => http://localhost:8080/ControllerClassNameHandlerMapping/Welcome.html , 如果Spring Web应用程序没有问题,因此没有匹配此请求URL, 应该会看到以下结果:

 

转载于:https://www.cnblogs.com/borter/p/9519633.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值