JSF呈现不起作用
我的网页上有这样的东西,一个选择/下拉菜单。 此下拉菜单应根据所选项目生成另一个下拉菜单。 我这样做的方法是调用
但它并没有像我预期的那样发生。 在下拉菜单中选择项目时,会触发ajax标记中的侦听器,以下下拉列表的rendered
属性似乎不受更改的影响。 并且rendered
值从false成功更改为true。 哪位……让我想知道我的jsf页面有什么问题。
这是xhtml’
'
这是bean支持ajax的function
public void enableViewCategory(AjaxBehaviorEvent e) { if (this.getViewCategory().equals("0")) { this.setShowViewYearSelection(true); } else { this.setShowViewCourseSelection(true); } }
调试时,该function正常。
如果部分渲染不起作用,一个好的起点是查看页面的html源,因为它在浏览器中呈现。 只有当两者(ajax触发组件和目标组件)具有相同的直接父容器时,您的render="divYearSelection"
才有效。
渲染的html组件的ID通常看起来像id="formId:componentId:nestedComponentId1"
或id="formId:componentId:nestedComponentId2"
所以从component1调用的render="nestedComponentId2"
只有在两个id都具有相同的“预告片”时才有效。
你可以尝试使用示例中给出的完整id,从表单的id开始,或者(如果整个表单不是太大)使用render="@form"
来更新整个表单。