我在我的网页上有这样的选择/下拉菜单。此下拉菜单应根据选定的项目生成另一个下拉菜单。我这样做的方式是通过拨打电话<f:ajax event="change"..listener=..>
JSF呈现不起作用
但这并没有像我期望的那样发生。在下拉菜单中选择项目时,会触发ajax标记中的侦听器,但下列下拉表中的rendered
属性似乎不受此更改的影响。并且rendered
的值从false成功更改为true。哪个..让我想知道我的jsf页面有什么问题。
这里是XHTML “
<h:selectOneMenu value="#{teacher.viewCategory}">
<f:selectItem itemValue="0" itemLabel="Tahun" />
<f:selectItem itemValue="1" itemLabel="Mata Pelajaran" />
<f:ajax event="change" render="divYearSelection divCourseSelection"
listener="#{teacher.enableViewCategory}"/>
</h:selectOneMenu>
<h:panelGroup id="divYearSelection" layout="block" rendered="#{teacher.showViewYearSelection}">
<h:outputText value="YEAR"/>
</h:panelGroup>
<h:panelGroup id="divCourseSelection" layout="block" rendered="#{teacher.showViewCourseSelection}">
<h:outputText value="COURSE"/>
</h:panelGroup>
<h:commandButton value="#{msg.tcr_form_submit_view}" action="#{teacher.viewTeacher}"/>
</h:panelGrid>
</h:form>'
,这是bean的功能支持AJAX
public void enableViewCategory(AjaxBehaviorEvent e) {
if (this.getViewCategory().equals("0")) {
this.setShowViewYearSelection(true);
} else {
this.setShowViewCourseSelection(true);
}
}
当我调试,功能工作正常。
如果你在你的ajax命令中使用'render =“@form”'它会工作吗? – 2011-05-06 05:59:16
这个技巧!你介意在ajax标签上更多地解释我吗?另外,这样做的答案,以便我可以评价你。谢谢! – 2011-05-06 07:14:23
@Matt你可以请发表这个答案,以便我可以评价它吗? – 2011-05-06 07:59:28