java - 执行重复的 Spring Controller 代码的最佳方式?

标签 java model-view-controller spring spring-mvc

我有一个库方法 Common.addTheUsualStuffToTheModel(model) 需要向模型添加各种属性在我的应用程序的每个 Controller 方法中

@RequestMapping(value = "/everypath", method = RequestMethod.GET)
public final String everyHandler(ModelMap model)
{
    model = Common.addTheUsualStuffToTheModel(model);
    return "everyPage";
}

到目前为止,我一直在为每个处理程序方法添加同一行:

    model = Common.addTheUsualStuffToTheModel(model);

但这恐怕不符合“一次编写,到处使用”的原则。

如何避免在每个处理程序中重复此代码?

最佳答案

您可以使用 interceptor <mvc:interceptors> 这样做

在您的拦截器中,您可以添加任何内容作为请求属性(实际上是模型属性所在的位置)。拦截器代码在每个方法(匹配拦截器映射)之前或之后执行。

如果您不一定需要在 Controller 方法之前填充模型,请在 postHandle 中你得到 ModelAndView 的方法对象。

关于java - 执行重复的 Spring Controller 代码的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6048856/

相关文章:

c# - 将一个模型转换为另一个模型的通用方法

java - MVC如何与Java Swing GUI一起工作

java - 基于主题/ token 和 token 组的完整FCM Java/Spring集成

java - 从 Arraylist 创建字符串数组

java - 自动化/处理第 5 个下拉列表 url https ://jedwatson. github.io/react-select/named as Github users(Aysnc with fetch.js)

java - onClickListener() 不适用于 FloatingActionButton 和工具栏图标

java - Android - 使用带有 adRquest 的 admob 加载广告时遇到问题

model-view-controller - 自定义 WebApi 路由不起作用

Spring 数据: Enumeration and Repository issue

java - 如何在HandlerInterceptor中读取请求体?