我在我的網頁上有這樣的選擇/下拉菜單。此下拉菜單應根據選定的項目生成另一個下拉菜單。我這樣做的方式是通過撥打電話<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