Spring MVC映射问题

我有一个简单的Spring

MVC应用程序。但是,我似乎可以正确设置requestMappings。奇怪的是,日志显示该URL已映射到正确的控制器,但是Dispatcher似乎无法在运行时找到它。我们欢迎所有的建议:

日志记录

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和中都复制“ / app” <url-pattern>。也就是说,您的sayHello现在映射到“ /

app / app / index”。你可以写

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

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

以上是 Spring MVC映射问题 的全部内容, 来源链接: utcz.com/qa/412327.html

回到顶部