Spring MVC Mapping问题 [英] Spring MVC Mapping problem

查看:92
本文介绍了Spring MVC Mapping问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我认为这是一个简单的Spring MVC应用程序。但是,我似乎可以正确设置requestMappings。奇怪的是,日志显示url被映射到适当的控制器,但Dispatcher似乎无法在运行时找到它。任何建议将不胜感激:

I have what I thought was a simple Spring MVC app. However, I can seem to set the requestMappings correctly. What's strange is that the logs show that the url is mapped to the proper controller, yet the Dispatcher cant seem to find it at runtime. Any suggestions would be much appreciated:

日志

INFO: Mapped URL path [/app/index] onto handler     [com.noisyair.whatisayis.web.MainController@420a52f]
Jan 11, 2010 2:14:21 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/app/index.*] onto handler [com.noisyair.whatisayis.web.MainController@420a52f]
Jan 11, 2010 2:14:21 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/app/index/] onto handler [com.noisyair.whatisayis.web.MainController@420a52f]
Jan 11, 2010 2:14:21 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/app/tags/{tag}] onto handler [com.noisyair.whatisayis.web.SearchByTagController@7b3cb2c6]
Jan 11, 2010 2:14:21 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/app/tags/{tag}.*] onto handler [com.noisyair.whatisayis.web.SearchByTagController@7b3cb2c6]
Jan 11, 2010 2:14:21 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/app/tags/{tag}/] onto handler [com.noisyair.whatisayis.web.SearchByTagController@7b3cb2c6]
Jan 11, 2010 2:14:21 PM org.springframework.web.servlet.FrameworkServlet initServletBean
INFO: FrameworkServlet 'wisi': initialization completed in 237 ms
Jan 11, 2010 2:14:21 PM org.apache.catalina.core.StandardContext start
INFO: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/] has already been started
Jan 11, 2010 2:14:41 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/app/index] in DispatcherServlet with name 'wisi'

Web.xml文件

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

<!-- The Spring MVC framework handles all of this stuff.  Just pass it along -->
<servlet>
    <servlet-name>wisi</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>wisi</servlet-name>
    <url-pattern>/app/*</url-pattern>
</servlet-mapping>

控制器类:

@Controller
public class MainController {

@Autowired
private LearningEntryService learningEntryService;

public LearningEntryService getLearningEntryService() {
    return learningEntryService;
}

public void setLearningEntryService(LearningEntryService learningEntryService) {
    this.learningEntryService = learningEntryService;
}

@RequestMapping(value = "/app/index", method = RequestMethod.GET)
public ModelAndView sayHello(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {

    Map<String, Object> model = new HashMap<String, Object>();
    List<LearningEntry> le = learningEntryService.getLearningEntries();
    model.put("learningEntries", le);
    return new ModelAndView("main", model);
}
}


推荐答案

你不应在 @RequestMapping < url-pattern> 中复制/ app。也就是说,你的 sayHello 现在被映射到/ app / app / index。你可以写

You shouldn't duplicate "/app" in both @RequestMapping and <url-pattern>. That is, your sayHello now is mapped to "/app/app/index". You can write

@RequestMapping(value = "/index", method = RequestMethod.GET)

(或者您可以在配置中声明 DefaultAnnotationHandlerMapping bean并设置其 allwaysUseFullPath 属性为 true 以覆盖默认行为)

(Or you can declare DefaultAnnotationHandlerMapping bean in your config and set its allwaysUseFullPath property to true to override default behavior)

这篇关于Spring MVC Mapping问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆