java - 在 Spring MVC 中使用 BeanNameUrlHandlerMapping 时找不到映射

标签 java spring url spring-mvc dispatcher

我正在尝试在Spring 4.0.3中使用BeanNameUrlHandlerMapping。我运行网络应用程序,一切正常。控制台日志中没有错误。

但我收到此警告消息:

Apr 22, 2014 9:47:48 AM org.springframework.web.servlet.PageNotFound noHandlerFound WARNING: No mapping found for HTTP request with URI [/springmvc_beanurlhandler/beanurhandlermapping.html] in DispatcherServlet with name 'dispatcher'

当我点击链接时,出现 404 错误页面。

这是我的代码:

Controller

public class BeanNameUrlHandlerMappingController extends AbstractController {

    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        // TODO Auto-generated method stub
        String message = "BeanNameUrlHandlerMapping invoked!";
        System.out.println(message);

        ModelAndView modelAndView = new ModelAndView("success");
        modelAndView.addObject("message", message);

        return modelAndView;
    }

}

调度程序 servlet

<?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:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">

    <context:component-scan base-package="com.fanjavaid.controller" />

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>

    <bean id="defaultHandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />

    <!-- Some Url Mapping -->
    <bean name="/beanurlhandlermapping.html" class="com.fanjavaid.controller.BeanNameUrlHandlerMappingController" />

</beans>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>springmvc_beanurlhandler</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

  <servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>*.html</url-pattern>
  </servlet-mapping>

</web-app>

project structure

以上是我的项目结构。

请帮忙,谢谢。

最佳答案

在dispatcher-servlet.xml中,您将 Controller 映射为:

    <bean name="/beanurlhandlermapping.html" class="com.fanjavaid.controller.BeanNameUrlHandlerMappingController" />

在index.jsp中将其更改为:

    <a href="beanurlhandlermapping.html">Click to test BeanURLHandlerMapping</a>

关于java - 在 Spring MVC 中使用 BeanNameUrlHandlerMapping 时找不到映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23209559/

相关文章:

java - 如何拦截安卓设备上的音频流?

java - Android:自定义Listview项目 - 强制在一行

java - 序列化对象并将其作为字符串存储在 cookie 中

Spring boot 句柄类型不匹配错误

Java更高效的数组搜索

java - 如何使用 bouncy caSTLe 在 Java 中创建 SHA512 摘要字符串?

java - CrudRepository 自定义方法实现?

java - 使用 HTTP 客户端解析查询字符串以提取 nameValuePairs

c# - 在不重启应用程序的情况下处理 URL 协议(protocol)

javascript - 在 Node.js/Express 中,如何自动将此 header 添加到每个 "render"响应中?