【发布时间】:2025-12-06 20:00:02
【问题描述】:
一种伪控制器方法
@RequestMapping("/foo")
public String getFoo(Model model) {
model.add("foo", repo.findFoo());
model.add("bar", repo.findBar());
model.add("barOptions", repo.findBarOptions(bar));
return "fooView";
}
假设客户端使用表达式语言来渲染foo和bar;但是我们使用 JavaScript 来渲染barOptions。
<html>
<script>
var options = <mytag:toJSON object="${barOptions}"/>;
$("#options").renderOptions( options );
</script>
<body>
<mytag:renderFoo foo="${foo}"/>
<mytag:renderBar foo="${bar}"/>
<ul id="options"></ul>
</body>
</html>
通用约定告诉我这是不好的。但是 MVC 的本质,控制器发送数据,视图决定如何使用它,告诉我这很好。有没有更好的方法来做同样的事情?有什么理由不经常这样做吗?我可以使用单独的调用请求 JSON,但随后我必须发出更多请求以加载页面,并且在控制器方法 getFoo() 中可能存在逻辑来确定 barOptions 基于当时的其他输入页面加载。
【问题讨论】:
标签: javascript model-view-controller spring-mvc