在一个与行动/结果相关的方法中“允许”了什么

时间:2011-10-21 11:01:45

标签: java jsf-2

我知道理论上可以将他想要的东西放在方法中,但我想知道该方法是否应该实现除了应该加载下一页的字符串以外的任何逻辑。

例如,在概念上将值放在闪存范围中是否正确?

2 个答案:

答案 0 :(得分:1)

绑定到操作的方法充当MVC三元组的“控制器”部分。所以我会说是的,这是一个适当的地方,通过你的应用程序来处理工作流程(比如在flash范围内设置值)。

您应该避免在那里放置业务逻辑 - 这些事情最好留给单独的业务类。通过这种方式,您可以很好地分离关注点,使整个事情在未来更容易理解和改变。

答案 1 :(得分:0)

我不能说什么是允许的,但当我实现“提交”按钮时,我总是遵循的设计模式是:

  1. 对所有可疑的表单参数进行验证。对于任何会产生问题的内容,请创建相应的 FacesMessage 对象。

  2. 如果创建了任何 FacesMessage 对象,则返回null。

  3. 调用业务逻辑以应用数据。适当地,这些应该是不同包中的不同对象。如果您正在创建或编辑记录,则在此处完成。我的应用程序都使用JPA作为后端,因此 EntityManager 调用在那里完成。

  4. 返回将导航到下一步的字符串(有时实际上也是空的,具体取决于表单逻辑的工作方式。)。

  5. 我无数次使用过这种模式。