我有一个继承的 Spring Web 应用程序,现在我正在扩展。我经历了海量、蔓延的 Spring XML 文件和重构过程的地狱——我再也回不来了。我现在开始使用注释编写新的控制器代码。
我有控制器,其中 RequestMappings 定义为注释,我将我的 URL 作为最终静态放入控制器中,以便我可以在代码的其他地方将它们作为返回值引用。然而,在尝试构建 JSP 时,这一切似乎都碰壁了。
是否有公认的“最佳”方式来做到这一点?(或任何方式?)
为了显示....
public class MyController {
/**
* Magic string that defines the base URL for this action
*/
public static final String BASE_URL = "/do_my_smart_action.do";
/**
* Magic string defining parameter name
*/
public static final String PARAM_ID = "id";
...
@RequestMapping(value = BASE_URL, method = RequestMethod.GET)
public ModelAndView beginSmartAction(
@RequestParam(required = false, value = PARAM_ID) Long id,
ModelMap model) {
// Do clever stuff
return new ModelAndView(TARGET_JSP_NAME, model);
}
}
我希望在我的 jsp 中能够编写类似的 URL...
<a href="<${BASE_URL}?${PARAM_ID}=${object.id}">Do Smart Action</a>
如果我更改代码中 BASE_URL 的定义,我希望 JSP 中的链接“正常工作”。
作为记录,我目前使用的是 Spring 3.0.6、Java 1.5 和 glassfish 3.1.2。前者可以相对容易地碰撞。如果我尝试迁移到 java 1.7,代码似乎会发生一些奇怪的事情,因此转换可能会成为一个更大的问题。
任何建议将不胜感激。