我在工作时获得了一个现有的仪表板,并且是使用Spring Framework处理的整个Java Servlet的新手。
所以那里的页面工作,流程是控制器内的方法有@RequestMapping注释。例如
@RequestMapping("/index.do")
public ModelAndView index() throws Exception {
LoginDO oLoginDO = new LoginDO();
return new ModelAndView("index","oLoginDO",oLoginDO);
}
servlet.xml文件将视图映射到jsp文件,它们都在工作。
但是我的问题是,当我编辑controller.java文件并创建另一个方法返回一个新视图(用于网页的新页面)时,servlet无法识别该更改。它说“没有为servlet请求找到匹配的处理程序方法。”
现在就是这样,我相信这种情况正在发生,因为在controller.java中进行编辑时,Spring Framework不会被“更新”(不知道这是否是正确的术语)。我从Eclipse中的WAR文件部署了我的源代码,然后在Tomcat服务器上运行它。这是交易,我的导师的代码与编辑工作正常,但我相信他创建了一个Tomcat项目,项目目录不同,编辑在保存后立即更新到网站上。
请注意,当我将JSP更改为现有页面时,会立即识别更新,只有当我创建新JSP和新的@RequestMapping注释以及新方法时,它才会起作用。我甚至在controller.java和nothings中尝试了print语句。
所以我猜这是一个Eclipse问题和部署问题,但任何帮助都会很棒!不太清楚如何解决这个问题。我甚至尝试重新启动服务器,但没有成功。谢谢!
答案 0 :(得分:0)
新的@RequestMapping方法需要重新加载(更新)上下文以使其可用。当STS(Eclipse)检测到spring bean上的更改时,它会自动重新加载上下文。如果您遇到此问题,请尝试重新部署项目或重新启动Tomcat。
另外,我想知道您是否将新的@RequestMapping方法放在新的Controller或现有的Controller中。如果它是一个新控制器,你是否已将该控制器添加到Spring Web Context(例如@Controller + component-scan或只是将bean添加到de config文件中)。