Java 在spring mvc中未找到HTTP请求的映射

Java 在spring mvc中未找到HTTP请求的映射,java,spring,spring-mvc,Java,Spring,Spring Mvc,我得到了一个没有为dispatcher servelt找到的映射。你能告诉我代码中的问题在哪里吗。我对Spring MVC非常陌生 我的错误是(我的pom有EnhancedRoyaltyTool的artifactId) 我的web.xml文件 <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins

我得到了一个没有为dispatcher servelt找到的映射。你能告诉我代码中的问题在哪里吗。我对Spring MVC非常陌生

我的错误是(我的pom有EnhancedRoyaltyTool的artifactId)

我的web.xml文件

<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <display-name>Spring Web MVC Application</display-name>


    <servlet>
        <servlet-name>mvc-dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>  




<!--    <listener> -->
<!--         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> -->
<!--     </listener>    -->
</web-app>
<?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:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

    <context:component-scan base-package="com.acxiom.saas.royalty.controller"/>

    <mvc:annotation-driven/>



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

</beans>
我的search.jsp文件

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Search For Jobs</title>
</head>
<body>

    <form:form   method="POST" modelAttribute="search" action="payRoyalties"    >
        <table>
            <tr>
                <td><form:label path="oesNumber">OES Number</form:label></td>
                <td><form:input path="oesNumber" /></td>
            </tr>
            <tr>
                <td colspan="2"><input type="submit" value="Search" /></td>
            </tr>
        </table>

    </form:form>

</body>
</html>

找工作
OES编号

我有一个payRoyalties.jsp文件和搜索模型。

您的类中没有名为Search的映射


您需要在getSearch()方法之前添加@RequestMapping(value=“/search”),我认为问题在于您的web servlet配置。我以前见过这种情况,Spring混淆了URL映射和JSP文件映射

简言之,不是:

<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

mvc调度器
/
你应该试试:

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

mvc调度器
/*.html
然后尝试使用
/payRoyalties.html

@ModelAttribute("search")
public Search getSearch()
{
    return new Search();
}
上面的代码部分令人困惑,您在@modeldattribute中有“search”,而在@RequestMapping中没有“search”,您想用它做什么

请提供日志以获得更多帮助。

您需要以下帮助:

@Controller
@RequestMapping("/search")
public class SearchController {
    …
}

你能搜索“映射URL到”来检查哪个控制器映射到你的特定URL吗?你能更详细地解释我吗?我对spring mvc非常陌生。部署应用程序时,初始主页本身未加载。请将日志级别切换为调试,然后检查日志。启动服务器时,是否有类似“将”{[/payRoyalties],…}“映射到公共java.lang.String SearchController.searchJobs(org.springframework.ui.Model)…”这样的行?您只是没有将任何方法映射到
/EnhancedRoyaltTool
。因此,毫不奇怪,您遇到了HTTP请求[/EnhancedRoyaltTool/]找不到映射的错误。另外,这是从一个对答案的评论中提取出来的,这个答案也应该是一个评论。请向我们提供您正在访问的URL和异常日志!我不认为这是问题所在。由于他没有点击url/search”,请参见标签“action=“payRoyalties”,并且已经为此定义了一个映射。日志将更清楚一些。2013年8月2日上午8:51:23 org.springframework.web.servlet.DispatcherServlet noHandlerFound警告:在名为“mvc dispatcher”@ModelAttribute搜索的DispatcherServlet中找不到URI为[/EnhancedRoyaltyTool/]的HTTP请求的映射直接用于search.jsp页面。我的理解是,当您的search.jsp加载时,它会自动绑定调用getSearch方法并将其绑定到jsp页面中的搜索对象。是的,我没有注意到您的一个处理程序方法中定义了search as模型,这似乎很好。问题似乎很明显,它表明在DispatcherServlet中找不到URI为[/EnhancedRoyaltyTool/]的HTTP请求的映射,这意味着您需要将一个处理程序方法映射到此url,类似于
@RequestMapping(“/EnhancedRoyaltyTool”)
。希望这是唯一的错误我的Pom将EnhancedRoyaltyTool作为工件ID感谢您的响应,但当我更改为此时,我的应用程序无法部署。日志:严重:启动期间子容器失败java.util.concurrent.ExecutionException:org.apache.catalina.LifecycleeException:无法启动组件[StandardEngine][Catalina].StandardHost[localhost].StandardContext[/EnhancedRoyaltyTool]]@SandePrao:应该不会失败。其他地方一定有问题,你能提供完整的stacktrace吗?一件事,处理程序与jsp的名称无关,你可以将jsp重命名为任何名称,并更改getSearch方法中的返回值。你已经添加了
@ModelAttribute(“搜索”)
在一个方法上,这在处理程序中使用,您在其中一个方法参数上添加了相同的注释。
@ModelAttribute("search")
public Search getSearch()
{
    return new Search();
}
@Controller
@RequestMapping("/search")
public class SearchController {
    …
}