我有一个带有UI的XHTML:组合标记,我正在AJAX上加载它。我正在使用jQuery Ajax GET来加载此XHTML的URL。在加载的页面中,我有一个EL表达式,之后我还包含另外一个有更多EL表达式的源代码。不可避免地,包含来源的EL表达式正在被评估的时间早于出现在它之前的EL表达式。JSF页面中的EL评估不是连续的
Some.xhtml
<ui:composition ...
#{relationshipAction.followMember(param['relateToProfile'])}
<ui:include src="someOther.xhtml">
<ui:param name="profileUri" value="#{param['relateToProfile']}" />
<ui:param name="qualifier" value="#{param['qualifier']}" />
<ui:param name="cellStyleClass" value="#{param['cellStyle']}" />
</ui:include>
在这里,我希望#{relationshipAction.followMember(param['relateToProfile'])}
任何EL在包括someOther.xhtml之前进行评估。但它总是在一些Other.xhtml中的EL被首先评估。
任何想法可能会出错?你需要知道
一个跟随另一个用户的动作使得一个纯粹的jQuery-ajax GET加载一个XHTML将有更新信息(关于用户被跟踪)。在获取更新信息之前,我们调用一个方法来完成操作(follow-user)。我们把方法调用返回void到更新后的信息EL表达式之前的加载页面。请求范围中的bean完成操作并获取更新的信息。我不希望这个bean在它的'postconstruct'中做后续操作,因为在其他一些请求中可以引用它作为另一个目的。我应该在这种情况下理想地做些什么? – 2013-04-06 09:03:17
然后使用''监听器。或者将bean的子类转换为另一个唯一用于此目的的bean,并在其中放置'@ PostConstruct' .. –
BalusC
2013-04-06 12:11:44
再次感谢!我也想过'f:event',但是'preRenderEvent'显然不是一个选项,因为那个时候EL表达式已经被评估过了。是否有一个事件可以与'ViewRoot'相关联,以适应这种情况? – 2013-04-06 15:41:55