我有一个更新selectOneList,使用Ajax将selectOneRadio:JSF AJAX更新行为
<h:outputLabel for="categ" value="Category" />
<h:selectOneRadio id="categ" value="#{cdManager.store.cd.categ}" required="true">
<f:selectItems value="#{cdManager.store.cd.categs}"/>
<f:ajax execute="categ" render="subcategs" listener="#{cdManager.categChanged}" />
</h:selectOneRadio>
<h:outputLabel for="subcategs" value="Sub-categ"/>
<h:selectOneListbox id="subcategs" value="#{cdManager.store.cd.subcateg}" required="true">
<f:selectItems value="#{cdManager.subcategsArray}"/>
</h:selectOneListbox>
当页面呈现,我的会话bean创建一个新的(空)CD对象。 当用户填写所有信息并提交时,(现在已填满)CD对象被保存,工作正常。
的问题是,当用户改变无线电(withou提交) ,这是不好的,因为用户可以点击“回浏览器”,当他们回来,电台将在“CATEG”属性被设置被选中,其他字段将被清空,非常不好的行为!
我该如何解决这个问题,仍然使用ajax?
这里是听者代码:
public void categChanged()
{
//store.cd.categ is alredy set ? WHYYY ?
String categ = store.getCd().getCateg();
this.subcategsArray = store.getCd().getSubcateg(categ);
}
我使用JSF 2.0,NetBeans IDE的7.0.1,Glassfish的3.1,任何帮助将是巨大的,谢谢!
更改您的bean以查看范围而不是会话 – 2012-04-12 13:58:36