2016-12-09 45 views
0

我有这个类在我的Spring Web模型 - 视图 - 控制器(MVC)框架映射。 Spring Web模型 - 视图 - 控制器(MVC)框架的版本是3.2.8。Spring MVC的:警告:未找到HTTP请求的URI与

我有这个web.xml文件。

... 
<servlet-mapping> 
       <servlet-name>ecolabelWeb</servlet-name> 
       <url-pattern>*.do</url-pattern> 

       <url-pattern>/newdesign/manage/manageapplications</url-pattern>  
       <url-pattern>/newdesign/manage/manageapplications/</url-pattern> 
       <url-pattern>/newdesign/manage/manageapplications/*</url-pattern> 

       <url-pattern>/newdesign/manage/home</url-pattern>  
       <url-pattern>/newdesign/manage/home/</url-pattern> 
       <url-pattern>/newdesign/manage/home/*</url-pattern> 

       <!-- Explicitly mention /welcome.do for usage as welcome page --> 
       <url-pattern>/welcome/welcome.do</url-pattern> 
     </servlet-mapping> 
... 

与此控制器:

/** 
    * 
    */ 
    @RequestMapping(value = { "/newdesign/manage/home", 
           "/newdesign/manage/home/", 
           "/newdesign/manage/manageapplications", 
           "/newdesign/manage/manageapplications/"}, method = {RequestMethod.GET}) 
    public String manageApplications (@ModelAttribute("aplicationListForm") final AplicationListForm aplicationListForm, 
             HttpServletRequest request, 
             Model model) throws ExecutionException { 


     User sessionUser = (User)request.getSession().getAttribute(Const.SESSION_USER); 
     .. 
} 

这个URL工作正常

/newdesign/manage/manageapplications 

,但与这一个newdesign/manage/home

我得到这个错误

WARNING: No mapping found for HTTP request with URI [/devices/newdesign/manage/home] 

我真的变疯了!

我也试图把它的另一种方法具有相同的结果

@RequestMapping(value = { "/newdesign/manage/home", 
           "/newdesign/manage/home/"}, method = {RequestMethod.GET}) 
    public String cbHome (Model model) throws ExecutionException { 
    .. 
} 

此URL工作 http://127.0.0.1:7001/devices/newdesign/manage/manageapplications 没有这一项(?!) http://127.0.0.1:7001/devices/newdesign/manage/home

+0

设备是你的应用程序上下文? – vincent

+0

是:http://127.0.0.1:7001/devices/newdesign/manage/home –

+0

你不应该你的servlet映射到控制器的URL。默认情况下,映射是在调度程序servlet的映射内完成的。在'/ newdesign/manage/home'旁边已经暗示'/ newdesign/manage/home /'。您应该将您的servlet映射到'/'或'/ *'以使其工作或配置您的请求映射以使用完整的url而不是最后一部分。 –

回答

0

您的配置不工作因为在你的web.xml你限制了你的应用程序只与这些网址的工作:

<url-pattern>/newdesign/manage/manageapplications</url-pattern>  
<url-pattern>/newdesign/manage/manageapplications/</url-pattern> 
<url-pattern>/newdesign/manage/manageapplications/*</url-pattern> 

这是一个tipical的web.xml:

<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> 

有了这个配置,你告诉Spring使用的dispatcher servlet机制来处理传入的请求和视图渲染。这样他就可以处理你在控制器中定义的所有url,如/newdesign/manage/home

您需要创建dispatcher-servlet.xml文件,你将配置调度。

请参阅此链接的详细信息:http://www.mkyong.com/spring-mvc/spring-mvc-hello-world-example/

相关问题