日期:2014-05-18  浏览次数:20749 次

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让人放心