比方说,我有五个或更多的输入计算机,可能会影响是否显示一个下拉菜单。我遇到的问题是,如果下拉菜单显示一次(因此通过ajax设置辅助bean中的值),然后用户更改其中一个影响输入组件,则下拉菜单的辅助bean值当下拉菜单使用渲染属性隐藏时,不会重置。例如:渲染错误不清除模型
<h:selectOneMenu id="sampleDropDown" required="false" immediate="true"
onchange="jsUpdateSampleDropDownValue()" value="#{backingBean.value}"
rendered="#{backingBean.shouldShowSampleDropDown}"
actionListener="#{backingBean.listener}" />
我知道我在这里有选择。我争论过是否应该添加一个通用的ValueChangeListener(应用请求值阶段)或EventHandler(呈现响应阶段),以监听其他输入的值并决定是否清除下拉菜单值,但是这当然是更多的工作,然后让渲染的属性做出决定。
我们已经在我目前正在进行的项目上看到了几十个相同类型的问题,我真的很想听取专家们提供的关于处理这种情况的最佳实践的信息。万一它很重要,我们正在使用自定义ajax(而不是ajax4jsf)和jsf 1.1。任何帮助表示赞赏。