【发布时间】:2010-11-24 17:32:41
【问题描述】:
在MVC(如JSP和Spring)中,在控制器中查看相关代码是不是不好?
在我的例子中,控制器做了一些工作,然后将结果交给视图 (JSP)。对于状态消息,我可以将整个消息文本传递给视图,或者传递一个键并让 JSP 将其映射到消息文本。
例子:
控制器中生成的消息
弹簧控制器:
protected ModelAndView onSubmit(...) {
Map map = new HashMap();
// Controller processing
if (...)
map.put("status", "Case 1 status message");
else
map.put("status", "Case 2 status message");
return new ModelAndView("viewPage", map);
}
JSP:
{$status}
视图中生成的消息
弹簧控制器:
protected ModelAndView onSubmit(...) {
Map map = new HashMap();
// Controller processing
if (...)
map.put("status", "case1");
else
map.put("status", "case2");
return new ModelAndView("viewPage", map);
}
JSP:
<c:choose>
<c:when test="{$status eq 'case1'}">Case 1 status message</c:when>
<c:when test="{$status eq 'case2'}">Case 2 status message</c:when>
</c:choose>
第一种情况,控制器和JSP代码比较简单,但是控制器中有视图相关的逻辑。 在第二种情况下,所有的视图逻辑都在 JSP 中,但代码没有那么简单。
我在控制器中生成消息文本是否违反了 MVC 范例?这种情况的常见做法是什么?
【问题讨论】:
标签: java spring jsp jakarta-ee model-view-controller