Maison  >  Questions et réponses  >  le corps du texte

java - spring mvc无法进入controller

web.xml

    <!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd" >

    <web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
         http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
    <display-name>Archetype Created Web Application</display-name>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/config/spring/spring-ctx.xml</param-value>
    </context-param>

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

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    </web-app>

spring-ctx.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"
       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.xsd">

    <context:component-scan base-package="com.prs.dps"/>

    </beans>

spring-mvc

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <mvc:annotation-driven enable-matrix-variables="true"/>

    <bean      
        class="org.springframework.web.servlet.view.
        InternalResourceViewResolver" p:prefix="/views/" p:suffix=".jsp" />
    </beans>

controller

    package com.prs.dps;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    @Controller
    public class Test {
        @RequestMapping(value = "/toindex",method = RequestMethod.GET)
        public String toIndex(){
            return "index";
        }
    }
PHP中文网PHP中文网2741 Il y a quelques jours140

répondre à tous(4)je répondrai

  • 大家讲道理

    大家讲道理2017-04-18 09:19:39

    Il y a deux conteneurs dans ce projet.
    Spring application context et Spring webapplication context.
    correspond à deux fichiers de configuration applicationContext.xml et {servletName}-servlet.xml respectivement.
    Ils ne partageront pas d'objets gérés entre eux.
    Vous pouvez voir dans votre fichier de configuration que seul le conteneur racine Spring application a été analysé et qu'il n'y a aucun objet géré Spring MVC dans le conteneur de webapplication context () .
    et Spring 根容器(application context) n'ont pas la fonction permettant de gérer le mappage et ne peuvent pas gérer le mappage des requêtes .


    La configuration devrait donc être comme ceci.

    // spring-ctx.xml
    ....
    // 根容器不扫描@Controller注解的类。
    <context:component-scan base-package="gq.zpf_fly.first">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>
    ...
    
    // spring-mvc.xml
    ....
    // 不是用默认过滤规则(指定包内全部扫描), 手动设置规则,只扫描@Controller注解的类。
    <context:component-scan base-package="gq.zpf_fly.first" use-default-filters="false">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>
    
    <!--启用 MVC注解(@Controller,@RequestMapping)实现URL映射-->
    <mvc:annotation-driven/>

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-18 09:19:39

    Modifiez spring-mvc.xml comme suit :

    <?xml version="1.0" encoding="UTF-8"?>
        <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:mvc="http://www.springframework.org/schema/mvc"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:p="http://www.springframework.org/schema/p"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    
        <mvc:annotation-driven/>
        
        <context:component-scan base-package="com.prs.dps"/>
        <bean      
            class="org.springframework.web.servlet.view.InternalResourceViewResolver"         p:prefix="/views/" p:suffix=".jsp" />
                <!-- 视图解释类 -->
        
        </beans>
    

    répondre
    0
  • 怪我咯

    怪我咯2017-04-18 09:19:39

    <servlet-mapping>
            <servlet-name>springmvc</servlet-name>
            <url-pattern>/*</url-pattern>
    </servlet-mapping>
    

    Essayez plutôt ceci :

    <servlet-mapping>
            <servlet-name>springmvc</servlet-name>
            <url-pattern>/</url-pattern>
    </servlet-mapping>
    

    répondre
    0
  • 怪我咯

    怪我咯2017-04-18 09:19:39

    La solution de Fallen Angel 008 est correcte
    · DispatcherServletCharger les composants bean du composant Web
    · ContextLoaderListenerCharger les composants bean de la couche intermédiaire et de la couche de données
    Supplémentaire
    · Suggestions Séparez les packages des composants du contrôleur et du service dans le projet Spring MVC
    · Il est recommandé que le sujet ajoute un processeur de ressources statiques spring-mvc.xml dans

    Si le problème n'a pas été résolu, il est recommandé de lire l'exemple spring mvc helloworld. L'exemple est relativement concis et clair. Vous pouvez également télécharger l'exemple de projet

    .

    répondre
    0
  • Annulerrépondre