gpt4 book ai didi

java - Spring MVC 自定义 View

转载 作者:行者123 更新时间:2023-12-01 14:30:20 25 4
gpt4 key购买 nike

我正在重构遗留应用程序以使用 Spring MVC。我的所有 Controller (旧版)都返回一个 Model 类型的对象,我的旧版调度程序写入 model.getContent() 的输出,方法 getContent 进行内部处理并返回一个 json 字符串。我有数百个 Controller ,不想重写它们。是否可以编写自定义 View 处理程序并将其包含在 spring servlet 配置中?

示例 Controller :

public UserList extends BasicAction {
@Autowired
UserService userService;
@Autowired
UserCommand userCommand;

@Override
public Model getModel(Request req, Response resp)
throws ServletException, IOException {
Model model = new Model();


List<User> users;
try {
users = userService.getUsers((UserCriteria)userCommand.getResult());
model.addCollection(users);
model.setWrapper(new UserWrapper());


} catch (ValidationException e) {

e.printStackTrace();
} catch (WebCommandException e) {

e.printStackTrace();
}



return model;
}
}

我打算注释为@Controller。指定@RequestMapping或在xml配置中删除基类BasicAction(旧版mvc)。我最近在这个项目中引入了 spring 并重构为使用依赖注入(inject)和请求范围命令对象(请求包装器)

最佳答案

最简单的方法是在 Model 类上实现 View 接口(interface)。然后,您的旧 Controller 可以直接返回此类(就像现在一样),并且它将由 DispatcherServlet 通过调用其 render 方法来呈现。

另一种可能性是实现您自己的 HandlerMethodReturnValueHandler,其中处理程序可以实际渲染响应并将响应标记为已处理 (mavContainer.setRequestHandled(true);),因此DispatcherServlet 不会尝试渲染任何 View 。

关于java - Spring MVC 自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16904203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com