在加载JSF页面时命令执行方法

时间:2011-07-28 13:49:03

标签: java jsf jsf-2 execution

我有2个控制器。

FirstController

将进入数据库并进行计数(*)以查看未读消息的数量。

SecondController

另一个将打开该消息,当它打开时,如果它未读,它将被标记为已读。


我面临的问题是,当我打开JSF页面时,它首先执行第一个控制器,然后执行第二个控制器。所以它不会刷新我仍然未读的消息数量。

是否可以在打开页面时设置执行方法的顺序?

该页面看起来像一个左侧菜单,其中包含未读消息的数量,并且在中心将打开消息。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您没有详细说明“JSF如何执行firstcontroller”的任何细节。这是通过preRenderViewEvent处理程序,@PostConstuct方法还是什么?

从您的问题描述中,听起来订单已经恰好是正确的?你说第一个控制器被执行了,这个FirstController检查未读消息。因此消息正在“刷新”。但是你说它不刷新未读消息,那么它是什么?

无论如何,单个支持bean最好支持单个JSF视图(页面)。这个单一的支持bean协调对不同服务(例如EJB bean)的调用,并准备所有必需的数据。然后视图绑定到此支持bean只是为了获取其数据。

使用此设置,您将无法在任何执行顺序问题中运行。