【发布时间】:2011-08-19 21:11:27
【问题描述】:
我的网页上有类似的东西,一个选择/下拉菜单。此下拉菜单应根据所选项目生成另一个下拉菜单。我这样做的方式是调用<f:ajax event="change"..listener=..>
但这并没有像我预期的那样发生。在下拉菜单中选择项目触发 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>'
这是支持ajax的bean函数
public void enableViewCategory(AjaxBehaviorEvent e) {
if (this.getViewCategory().equals("0")) {
this.setShowViewYearSelection(true);
} else {
this.setShowViewCourseSelection(true);
}
}
当我调试时,该功能工作正常。
【问题讨论】:
-
在 ajax 命令中使用
render="@form"是否有效? -
这样就行了!您介意在 ajax 标签上向我解释更多吗?另外,把它作为一个答案,这样我就可以给你打分。谢谢!
-
@Matt 你能把这个作为答案发给我吗?
-
刚刚发布!很高兴听到它有效!
标签: java ajax jsf jakarta-ee