Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring MVC控制器映射问题_Spring_Spring Mvc_Deployment_Web - Fatal编程技术网

Spring MVC控制器映射问题

Spring MVC控制器映射问题,spring,spring-mvc,deployment,web,Spring,Spring Mvc,Deployment,Web,我是SpringMVC的新手,试图从一些web教程和Spring的PetClinic中学习。当我刚开始学习的时候,我正在使用一些非常古老的Spring版本的教程。我当时不知道,所以我已经尝试了很多次了。我的测试站点查找控制器类的方式有问题。该站点找到了我的index.jsp文件并执行得很好。但是,当我尝试单击映射到控制器类的链接时,我得到一个页面未找到(404)错误 在JBoss EAP 6.1上编译和部署的所有内容都没有错误。 我正在附加配置文件中的一些代码段。有人能看看他们,看看我做错了什么

我是SpringMVC的新手,试图从一些web教程和Spring的PetClinic中学习。当我刚开始学习的时候,我正在使用一些非常古老的Spring版本的教程。我当时不知道,所以我已经尝试了很多次了。我的测试站点查找控制器类的方式有问题。该站点找到了我的index.jsp文件并执行得很好。但是,当我尝试单击映射到控制器类的链接时,我得到一个页面未找到(404)错误

在JBoss EAP 6.1上编译和部署的所有内容都没有错误。 我正在附加配置文件中的一些代码段。有人能看看他们,看看我做错了什么吗>

Web.xml代码段:

    <servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:resources/spring/core-config.xml
        </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>
    <bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"
    p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />

<bean class="org.S2Me.MyHealth.controller.CustomMappingExceptionResolver">
    <property name="exceptionMappings">
        <props>
            <prop key="org.springframework.web.servlet.PageNotFound">notFound</prop>
            <prop key="java.lang.Exception">failure</prop>
        </props>
    </property>
</bean>

<bean id="messageSource"
    class="org.springframework.context.support.ReloadableResourceBundleMessageSource"
>
    <property name="basename" value="/WEB-INF/messages" />
</bean>
任何语法错误都是我的剪切和粘贴,就像我说的编译或部署中没有错误,导航中只有404个错误。
任何帮助都将不胜感激。谢谢

您的配置忽略了dispatcher servlet.xml文件

初始化DispatcherServlet后,Spring MVC在WEB应用程序的WEB-INF目录中查找名为[servlet name]-servlet.xml的文件,并在其中创建定义的bean,覆盖全局范围内使用相同名称定义的任何bean的定义。资料来源:

您可以通过指定名为
contextConfigLocation
的init参数来覆盖这一点


当您指定此参数时,dispatcher servlet.xml因此被忽略,其中的配置也随之被忽略。

您没有加载dispatcher-servlet.xml文件。@M.Deinum您能解释一下不加载dispatcher-servlet.xml是什么意思吗?我不明白你的意思,正如我所说的。您有一个dispatcher-servlet.xml(根据您的帖子),但它从未被加载。您让DispatcherServletservlet加载'core servlet.xml'。在哪里/如何加载dispatcher Servlet?当我定义名为servlet的调度器时,我认为web.xml可以做到这一点。我不是在质疑你的答案,只是一个新手在尝试学习。这是默认设置,但你通过使用contextConfigLocation指定init参数来覆盖默认设置…谢谢。我不知道还要花多少天才能接近解决这个问题。
   <import resource="view-config.xml"/>
<context:component-scan base-package="org.S2Me.MyHealth.controller" />

 <mvc:resources mapping="/resources/**" location="/resources/" />

<mvc:resources mapping="/webjars/**"  location="classpath:/META-INF/resources/webjars/"/>

<mvc:view-controller path="/" view-name="index" />

<bean id="messageSource"
    class="org.springframework.context.support.ResourceBundleMessageSource"
    p:basename="messages/messages" />

<bean
    class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"
>
    <property name="defaultErrorView" value="exception" />
    <!-- results into 'WEB-INF/jsp/exception.jsp' -->
    <property name="warnLogCategory" value="warn" />
</bean>
<bean
    class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"
>
    <property name="contentNegotiationManager" ref="cnManager" />
    <property name="viewResolvers">
        <list>
            <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.view.BeanNameViewResolver" />
        </list>
    </property>
</bean>

<bean id="cnManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
    <property name="favorPathExtension" value="true"/>
    <property name="ignoreAcceptHeader" value="true"/>
    <property name="defaultContentType" value="text/html"/>

    <property name="mediaTypes">
        <map>
            <entry key="html" value="text/html" />
            <entry key="xml" value="application/xml" />
            <entry key="atom" value="application/atom+xml" />
        </map>
    </property>
</bean>
    <div class="navbar-inner">
    <ul class="nav">
        <li style="width: 100px;"><a href="<spring:url value="/" htmlEscape="true" />"><i class="icon-home"></i>
            Home</a></li>
        <li style="width: 130px;">
        <a href="<spring:url value="/login" htmlEscape="true" />"> Login</a>
        </li>
                </ul>
</div>
package org.S2Me.MyHealth.controller;

import org.S2Me.MyHealth.server.LoginForm;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.validation.BindingResult;

import java.util.Map;

import javax.validation.Valid;

@Controller
@RequestMapping("/login")
public class LoginController
{

    @SuppressWarnings({ "rawtypes", "unchecked" })
    @RequestMapping(method = RequestMethod.GET)
    public String showForm(Map model)
    {

         LoginForm loginForm = new  LoginForm();
        model.put("loginForm", loginForm);
        return "loginform";
    }

    @RequestMapping(method = RequestMethod.POST)
    public String processForm(@Valid  LoginForm loginForm, BindingResult result,
            Map model)
    {

        String userName = "UserName";
        String password = "password";
        if (result.hasErrors())
        {
            return "loginform";
        }
        loginForm = ( LoginForm) model.get("loginForm");
        if (!loginForm.getUserName().equals(userName)
                || !loginForm.getPassword().equals(password))
        {
            return "loginform";
        }
        model.put("loginForm", loginForm);
        return "loginsuccess";
    }
}