【发布时间】:2015-08-08 11:19:42
【问题描述】:
我正在使用 JBoss AS / WildFly 和 JSF 2.2。 这是我的 faces-config.xml 文件的示例。从我的起始页面(菜单页面)的结果中,我想调用下一个,to-view-id 使用 EL。
<navigation-rule>
<from-view-id>/index.xhtml</from-view-id>
<!-- Sales -->
<navigation-case>
<from-outcome>AUFTRAGSSUCHE</from-outcome>
<to-view-id>#{salesOrders.start()}</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>AUFTRAGSERFASSUNG</from-outcome>
<to-view-id>#{salesOrderEntry.start()}</to-view-id>
</navigation-case>
</navigation-rule>
有效,但问题是,用户在之前的所有情况下都选择了 AUFTRAGSERFASSUNG EL,这里只有 AUFTRAGSSUCHE 得到评估。虽然结果不同。 实际上,导航案例的列表要长得多。如果用户选择开始最后一个条目,则之前的所有其他条目都会被评估。意味着豆子被实例化,......不是一个轻量级的东西。所以你可以感觉到不同,第一个菜单项启动很快,最后一个很慢。
为什么要评估那些 EL 表达式? 我有机会关闭它吗? 还有其他提示如何改进吗?
【问题讨论】:
-
我的第一个建议是(因为您使用 jsf 2.x)是使用隐式导航。 stackoverflow.com/questions/18037884/…
-
您使用的是 Jboss AS 还是 Wildfly? JBoss AS 仅支持 JSF 2.1。
-
我尝试过使用 JSF 2.2 的 WildFly 10。但旧版本显示出相同的效果。