2017-09-06 100 views
2

我的请求映射在Spring MVC中不起作用。首页index.jsp加载。 当它重定向到一个动作时,控制器不会被调用。 这里是我的神器:requestmapping无法正常工作。 springmvc maven

这里是我的web.xml:

 <web-app> 
      <display-name>Archetype Created Web Application</display-name> 
      <context-param> 
       <param-name>contextConfigLocation</param-name> 
       <param-value>/WEB-INF/dispatcher-servlet.xml</param-value> 
      </context-param> 

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

      <servlet> 
       <servlet-name>dispatcher</servlet-name> 
       <servlet-class> 
        org.springframework.web.servlet.DispatcherServlet 
       </servlet-class> 
       <load-on-startup>1</load-on-startup> 
      </servlet> 

      <servlet-mapping> 
       <servlet-name>dispatcher</servlet-name> 
       <url-pattern>/</url-pattern> 
      </servlet-mapping> 
     </web-app> 

这里是我的调度员servlet.xml中:

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

      <bean  class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
       <property name="prefix"> 
        <value>/WEB-INF/views/</value> 
       </property> 
       <property name="suffix"> 
        <value>.jsp</value> 
       </property> 
      </bean> 
      <mvc:annotation-driven /> 
      <mvc:resources mapping="/resources/**" location="/resources/" /> 

     </beans> 

这里是我的控制器类:

  @RequestMapping(value ="/dashboard", method = RequestMethod.POST) 
      public ModelAndView dashboard(@RequestParam(value = "name", required = false) String name) { 

       ModelAndView view = new ModelAndView("dashboard"); 
       view.addObject("name", name); 
       return view; 
    Below is the Index.jsp 

     <form:form class="form-horizontal" method="POST" action="dashboard"> 
       <div class="login-wrap"> 
       <div class="login-html"> 
        <input id="tab-1" type="radio" name="tab" class="sign-in" checked><label for="tab-1" class="tab">Sign In</label> 
        <input id="tab-2" type="radio" name="tab" class="sign-up"><label for="tab-2" class="tab">Sign Up</label> 
        <div class="login-form"> 
         <div class="sign-in-htm"> 
          <div class="group"> 
           <label for="user" class="label">Username</label> 
           <input id="user" type="text" class="input"> 
          </div> 
         </div> 
        </div> 
       </div> 
      </div> 
      </form:form> 

     </body> 
     </html> 

这是根据spring mvc的基本教程。请让我知道哪里出了问题。提前致谢。

回答

0

你应该在你的spring mvc servlet标签中设置init参数,并且他们可以告诉你dispatcherServlet在哪里可以找到你的配置。

<servlet> 
    <servlet-name>springMVC</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>classpath:spring/ApplicationContext-mvc.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
+0

\t \t 调度 \t \t \t \t \t org.springframework.web.servlet.DispatcherServlet \t \t \t \t ​​contextConfigLocation /WEB-INF/dispatcher-servlet.xml \t \t <负载上启动> 1 \t它被定义为上下文PARAM无论如何,我所定义作为初始参数和尝试,仍然得到同样的问题。 –

+0

你应该使用绝对路径,或者使用相对于你的类路径的路径(当你的项目运行时,它将会是** projectPath/WEB-INF/classes **),并且我认为第二种方法更好 –

+0

默认的spring- mvc dispatcher路径是WEB-INF目录,名称是[] - servlet.xml,所以配置也应该可用,但我不知道为什么它对你没用 –