我有2个控制器。
FirstController
将进入数据库并进行计数(*)以查看未读消息的数量。
SecondController
另一个将打开该消息,当它打开时,如果它未读,它将被标记为已读。
我面临的问题是,当我打开JSF页面时,它首先执行第一个控制器,然后执行第二个控制器。所以它不会刷新我仍然未读的消息数量。
是否可以在打开页面时设置执行方法的顺序?
该页面看起来像一个左侧菜单,其中包含未读消息的数量,并且在中心将打开消息。
我该怎么做?
答案 0 :(得分:1)
您没有详细说明“JSF如何执行firstcontroller”的任何细节。这是通过preRenderViewEvent
处理程序,@PostConstuct
方法还是什么?
从您的问题描述中,听起来订单已经恰好是正确的?你说第一个控制器被执行了,这个FirstController
检查未读消息。因此消息正在“刷新”。但是你说它不刷新未读消息,那么它是什么?
无论如何,单个支持bean最好支持单个JSF视图(页面)。这个单一的支持bean协调对不同服务(例如EJB bean)的调用,并准备所有必需的数据。然后视图绑定到此支持bean只是为了获取其数据。
使用此设置,您将无法在任何执行顺序问题中运行。