在Model(MVC)中使用html标签是不好的做法?

时间:2015-07-13 08:38:16

标签: java html servlets model-view-controller controller

众所周知,在View(MVC)中创建变量或放置逻辑是一种非常糟糕的做法,所以我的问题恰恰相反,在模型中创建视图组件(使用html标签)是一种不好的做法(MVC)?

有时候,在我的视图中,一个简单的循环是不够的,我需要使用递归函数来转换我的节点" tree"到我的模型中的字符串对象,然后在视图中打印字符串对象。所以我承认,我在我的模型中生成了html标签,即使总是将树转换为列表然后发送一个"循环的"列表到视图。

但是我的第二个原因是我在我的模型中创建html组件,因为当我更改框架时更容易,我不需要将我的视图转换为另一种格式(.jsp,.xhtml for Facelets, ...)。

=>在模型(MVC)中使用html标签是一种非常糟糕的做法吗?为什么?感谢

2 个答案:

答案 0 :(得分:2)

您正在选择一种表示模型数据(html)的特定方式,因为它更容易。这是一个非常糟糕的决定,完全违背了MVC模式。

但是,您可以非常轻松正确地执行此操作。使用xml!在您的视图中使用xsltxml的{​​{1}}转换非常简单。如果在不弄乱模型的情况下在视图中进行更改,您会感到惊讶。

  

在模型(MVC)中使用html标签是一种非常糟糕的做法吗?为什么?

每一件软件都在发展。需求发生变化,功能被添加,甚至架构也发生了变化。在模型和视图之间传输数据时,使用html来表示数据会使更改变得更加困难。

比如说,确定您编写的可爱报告由模型呈现为html并由视图直接呈现给浏览器现在需要在html生成好(最近我的任务是真正的要求)。看看会有多难?然后,您可以将数据从csv转换为html

但是,如果您已在csv中创建了报告,并将您的视图应用于将xml应用于其中以将其转换为xslt,则需要提供html是微不足道的。它只是另一个csv

答案 1 :(得分:0)

如果您打算遵守MVC模型,那么在模型中保留View信息绝对不是它的一部分。

如果您想通过网络将数据作为JSON发送到移动应用程序,该怎么办?如果您需要与另一个不显示数据的系统集成,但只处理它,该怎么办?突然之间,您在模型中得到了一些不必要的额外数据,您需要在发送之前将其剥离。