我正在开发一个名为 OpenMRS 的支持 Spring MVC 的开源软件。我以后无法修改核心源以进行更新。所以我必须写一个模块,比如插件来为系统添加功能。问题是我想通过使用portlet 重定向到我的jsp 来更改原始屏幕。核心代码的控制器是这样的:
@RequestMapping("/patientDashboard.form")
protected String renderDashboard(@RequestParam(required = true, value = "patientId") Integer patientId, ModelMap map){
....
return "patientDashboardForm";
}
我不熟悉 Spring,但我知道当 url 以 /patientDashboard.form?patientId=xxx 结尾时,该函数将调用 patientDashboardForm.jsp。现在我想返回我的jsp,所以我必须用相同的代码定义一个新类,但返回我的jsp(这样做是因为无法修改核心代码)。但是通过定义相同的映射 /patientDashboard.form 会导致错误“无法将处理程序 XXX 映射到 URL 路径 /patientDashboard.form:已经有处理程序 YYY 映射”。那么有没有办法克服这种情况呢?