0

我在工作中获得了一个现有的仪表板,并且对使用 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 框架没有被“更新”(不知道这是否是正确的术语)。我从 Eclipse 中的 WAR 文件部署了我的源代码,然后在 Tomcat 服务器上运行它。这是交易,我的导师的代码与编辑一起工作正常,但我相信他创建了一个 Tomcat 项目,并且项目目录不同,并且编辑在保存后立即更新到网站上。

请注意,当我将 JSP 更改为现有页面时,会立即识别更新,只有当我创建新的 JSP 和新的 @RequestMapping 注释以及新方法时,它才不起作用。我什至在 controller.java 中尝试了打印语句,但什么也没显示。

所以我想这是一个 Eclipse 问题和部署问题,但任何帮助都会很棒!不太清楚该怎么做才能解决这个问题。我什至尝试重新启动服务器,但没有成功。谢谢!

4

1 回答 1

0

新的 @RequestMapping 方法需要重新加载(更新)上下文以使它们可用。当 STS (Eclipse) 检测到 spring bean 上的更改时,它会自动重新加载上下文。如果您对此有疑问,请尝试重新部署项目或重新启动 Tomcat。

另外,我想知道您是将新的 @RequestMapping 方法放在新的 Controller 中还是现有的 Controller 中。如果它是一个新控制器,您是否将该控制器添加到 Spring Web 上下文中(例如 @Controller + component-scan 或只是将 bean 添加到 de config 文件)。

于 2012-06-16T05:49:49.267 回答