我面临着JSF2.0 Ajax Tag非常奇怪的问题。以下是导致我出现问题的步骤
到目前为止一切正常
我有一个selectOne下拉列表,并且在下拉列表中选择一个值时,它会呈现另一个下拉列表的屏幕底部。我在父面板组上使用渲染属性来显示和隐藏此下拉列表。
然而,对于选择值时新呈现的下拉列表,不会调用ajax侦听器(在其中定义的F:ajax标记)。我看到以下情况发生了
唯一缺少的是没有调用侦听器方法。
无论如何都要调试生命周期并找出问题所在?
答案 0 :(得分:1)
如果rendered
的某个父组件的<f:ajax>
属性在处理ajax请求期间评估false
,则不会调用ajax操作侦听器。
在每个请求上重新创建一个请求范围的bean,因此除非在(post)构造函数中另外初始化,否则将其所有属性重置为默认值。如果rendered
属性后面的属性未根据某些请求参数正确重新初始化,那么它会像初始请求一样评估false
。
要修复它,你需要根据请求参数在bean(post)构造函数中进行适当的初始化,或者只是将bean放在JSF视图范围内。