2009-05-01 107 views
1

MVC Web开发方法的目标之一是将模型,视图,控制器分开。在一个类似于Java EE Struts的环境中,可以将Struts Action与控制器,具有模型的Java bean以及具有View的JSP和/或ActionForm相关联。适用于Java EE Web应用程序的简单MVC?

我的问题是,你倾向于在哪里执行任何逻辑来填充JSP上的数据。在ActionForm视图中放置任何类型的逻辑或处理似乎都是不好的做法,而且在JSP中放置任何类型的逻辑都是非常糟糕的做法。

在将视图窗体中的数据显示给用户之前,是否包含“管理器”类来操作数据?

这里有一个简单的例子。你从数据库中取出名字,姓氏,然后你需要漂亮的格式(将所有大写字符串转换为混合大小写)。在进入JSP视图之前,逻辑会处理该字符串,并将该逻辑添加到管理器类中?

回答

3

如果它只是关注视图的逻辑(在你的例子中,使数据看起来很“漂亮”),那么我会把它放在视图中。但是,如果您稍后将保存修改后的数据,那么它应该位于业务层中。但是,总的来说,我倾向于在View和Control(您的Manager类)之间保留一层,它只关注显示问题和高级别输入验证,而不涉及复杂的业务规则(确保非常糟糕的数据永远不会达到业务层)。

1

这非常依赖于你使用的是什么框架。我认为这种事情应该在视图中完成,但是你究竟会怎么做会有所不同。

如果您使用的是JSP,编写一个自定义标签库来完成您想要的功能可能很有意义 - 因此它与实际的HTML分离,但仍在“视图”中。

所以,你会碰到这样的:

<td><mytag:mixedCase value="${user.firstname}" /></td> 

等等

0

对于简单呈现问题,如uppercasing一个字符串,我把它放在JSP。对于更复杂的业务逻辑,我会把它放在模型类中。你不想用业务逻辑混淆你的控制器。将它放入模型的另一个优点是它可以进行单元测试。

相关问题