Trong MVC (chẳng hạn như JSP và Spring), có thực tiễn không tốt để xem mã liên quan trong bộ điều khiển không?Thực tiễn không tốt là đặt mã xem trong bộ điều khiển?
Trong trường hợp của tôi, bộ điều khiển thực hiện một số thao tác và sau đó đưa kết quả vào khung nhìn (JSP). Trong trường hợp của một thông báo trạng thái, tôi có thể chuyển toàn bộ nội dung tin nhắn tới khung nhìn, hoặc truyền một khóa và để cho JSP ánh xạ nó tới văn bản tin nhắn.
Ví dụ:
nhắn được tạo ra trong điều khiển
mùa xuân Bộ điều khiển:
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}
nhắn được tạo ra theo quan điểm
mùa xuân Bộ điều khiển:
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>
Trong trường hợp đầu tiên, bộ điều khiển và mã JSP là đơn giản, nhưng có logic xem có liên quan trong bộ điều khiển. Trong trường hợp thứ hai, tất cả logic xem đều nằm trong JSP, nhưng mã không đơn giản.
Tôi có vi phạm mô hình MVC bằng cách tạo văn bản tin nhắn trong bộ điều khiển không? Thực hành phổ biến cho kịch bản này là gì?
+1 - Tôi thích cách bạn không nói có hoặc không, nhưng đã đưa ra đề xuất hay là một sự cải tiến, vì nó cũng mang lại sự linh hoạt hơn. –