使用a4j,你将如何重新呈现dojo组件?

时间:2013-08-20 15:58:29

标签: jsf dojo richfaces ajax4jsf

我正在使用JSF 1.2和Richfaces 3.3.3,我已经尝试了

<a4j:region>
 <t:selectOneMenu id="comp1" value="#{bB.selectedTeam}" style="width: 200px">
    <t:selectItems value="#{bB.teams}" var="team" itemLabel="#{team.desc}" itemValue="#{team.code}"/>
        <a4j:support event="onchange" reRender="comp2"/>
  </t:selectOneMenu>

但没有奏效。 comp1是一个Dojo组合框组件,当onchange事件发生时它不会做任何事情。

2 个答案:

答案 0 :(得分:0)

JSF不跟踪纯HTML。如果你想要能够重新渲染它必须包含在组件中的东西,比如<a4j:outputPanel>,那么你必须重新渲染该组件。

答案 1 :(得分:0)

事实证明,<t:selectItems>呈现的html对象在页面加载时转换为dijit组件,在javascript端转换为dojo会导致用户不会与我们指示执行ajax调用的对象进行交互在通过

进行的事件中
<a4j:support event="onchange" reRender="comp2"/>

所以解决方案是用来将事件附加到javascript浏览器端的dojo组件。