2016-07-22 51 views
0

当selectOneMenu的项目被选中时,我试图让多个元素更新。使用AJAX更新多个元素

现在它适用于需要更新的单个元素,我通过以下this question's accepted answer执行此操作,但由于我正在使用id属性,因此无法重新使用该属性。

SO搜索和各种其他网站后(如this search和搜索我在谷歌做了一个名为JSF AJAX更新的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

你需要一个id添加到您的outputText Taq酶,然后添加这idf:ajax标签的render属性。

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

+0

很多重复的SO这样的基本问题。为了保持清洁,更好地搜索它们并将问题标记为重复...谢谢 – Kukeltje

+0

@Kukeltje好的,下次再介绍一下。日Thnx – Apostolos