ajax4jsf让我很失望,大家来看看吧
关键字:a4j(ajax4jsf)
下面的代码:
<h:selectOneMenu id= "departmentId "
value= "#{userManagedBean.user.departmentId} ">
<f:selectItems value= "#{userManagedBean.departmentIdItems} " />
<a4j:support event= "onchange " reRender= "officeId "
action= "#{userManagedBean.getOfficeIdItems} " />
</h:selectOneMenu>
<h:selectOneMenu id= "officeId "
value= "#{userManagedBean.user.officeId} ">
<f:selectItems value= "#{userManagedBean.officeIdItems} " />
</h:selectOneMenu>
<h:inputText id= "userName " required= "true "
value= "#{userManagedBean.user.userName} "/>
上面是jsf的3个组件:2个select和一个input
第一个select变化时,第二个select的数据会发生变化,通过a4j组件来实现
但是发现一个问题,如果把第3个input组件的required= "true "去掉,或者设为false更或者把这个input给去掉,结果会报错,不能正常装载数据。google了一下,从一些英文网站上获得了一些信息,说是通过设置a4j的ajaxSingle= "true ",limitToList= "true ",immediate= "true "结果都不行
问一下,这个情况到底是咋回事?
------解决方案--------------------给你一个最好的建议:放弃a4j采用dwr吧,dwr让人放心