我正在使用 Spring MVC 构建应用程序。我想为应用程序中的每个 Controller 对我的模型进行某些更改。特别是,我想将某些额外数据插入模型中,这些数据将出现在应用程序的所有页面中。
我可以通过几种方式做到这一点:只需在每个 Controller 的末尾添加数据,使用 Model 的子类来添加我的额外数据,使用 ModelAndView 的子类来包装我的 Model,使用 VelocityView 的子类来包装在使用之前先建模……我相信还有其他选择。
但我有一个“优雅”约束:我不想在每个 Controller 中编写代码,我希望在 one-and-only-one 中定义此行为地方。理想情况下,它将由我的 IOC bean 配置文件控制。
有没有人推荐如何优雅地实现这一目标?
最佳答案
切面是一种很好的方法,但是 Spring MVC 使它变得更加容易——您可以定义一个 HandlerInterceptor每次处理请求之前或之后都会调用它。在 HandlerInterceptor postHandle 方法中(在实现 HandlerInterceptor 接口(interface)的类中),您可以将数据添加到 ModelAndView。您可以在配置文件中定义应拦截哪些处理程序。
关于spring - 如果我关心 IOC,如何最好地在 Spring MVC 中修改我的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/167609/