2011-02-06 170 views
0

我收到以下错误:春映射问题

No mapping found for HTTP request with URI [/my-app] in DispatcherServlet with name 'web'

我的web.xml看起来像:

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

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

我的网络servlet.xml中的样子:

<bean name="myController" class="com.app.web.MyController" /> 

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

任何帮助/解释都会很棒。另外,控制器中的视图参数应该是new ModelAndView(?)

我的目标是能够达到http://localhost:8080/my-app并被路由到MyController,然后加载给定的jsp。

回答

0

看起来像DispatcherServlet正在尝试处理/ my-app的请求,这向我建议您的web.xml servlet映射正在将该空间的请求导向到DispatcherServlet。

你可能有这样的事情?

<servlet-mapping> <servlet>dispatcher</servlet> <url-pattern>/*</url-pattern> </servlet-mapping> 

尝试用不同的扩展名(。做举例)调用你的控制器,并更新servlet的映射,以适应

<servlet-mapping> <servlet>dispatcher</servlet> <url-pattern>*.do</url-pattern> </servlet-mapping> 

或更改/ *到/

希望有所帮助。

3

你的配置对我来说很好看。在你MyController,请确保您有一个请求映射my-app,像这样: -

@Controller 
public class MyController { 
    @RequestMapping(value="/my-app", method=RequestMethod.GET) 
    public String mainPage() { 
     return "index"; 
    } 
} 

当你调用http://localhost:8080/my-app,服务器将返回index.jsp/WEB-INF/jsp/文件夹。

+0

是。或者,您可以使用BeanNameUrlHandlerMapping,但现在这已经是老派了:-)但是,如果您定义了一个BeanNameUrlHandlerMapping实例,则您还必须明确请求DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter,因为它们不会被隐式创建。 – Pavel 2011-02-06 21:25:19