使用AJAX更新多个元素

时间:2016-07-22 14:21:23

标签: ajax jsf-2

我在尝试选择selectOneMenu项目时尝试更新多个元素。

现在它适用于需要更新的单个元素,我是按照this question's accepted answer执行此操作的,但由于我使用的是id属性,因此我无法恢复用那个。

在搜索SO和其他各种网站(例如this search)以及我在Google上进行的搜索 jsf ajax update outputtext 之后,我无法发布链接,因为我我没有10个代表,我只是被卡住了。

我该如何处理?

正在从这里进行AJAX调用:

<h:form class="navbar-form"> 
    <h:selectOneMenu value="#{formHeader.selectedPersonId}" class="form-control">
        <f:selectItems value="#{persons.persons}" var="person" itemValue="#{person.id}" itemLabel="${person.fullName}"/>
        <f:ajax event="change"   listener="#{formHeader.impersonateListener}"  render=":selected-person" />        
    </h:selectOneMenu>
</h:form>     

成功更新此部分:

<!-- https://stackoverflow.com/questions/14790014/ajax-update-render-does-not-work-on-a-component-which-has-rendered-attribute -->
<h:panelGroup id="selected-person">
    <h:outputText>${auth.authPerson.fullName}</h:outputText>
</h:panelGroup>

但现在还需要在此处更新<h:outputText>

<h:outputText value="#{auth.authPerson.fullName}"/>
<span>Working @</span>
<span>Doing bla ....</span>
<span>messages</span>

我对JSF很陌生,就像抬头一样。我可能做了一些非常明显的错误或遗漏了一些非常明显的事情。

1 个答案:

答案 0 :(得分:1)

您需要在id taq中添加outputText,然后将此id添加到render代码的f:ajax属性中。

您可以在render属性中更新其空格分隔的多个元素。