我在尝试选择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很陌生,就像抬头一样。我可能做了一些非常明显的错误或遗漏了一些非常明显的事情。
答案 0 :(得分:1)
您需要在id
taq中添加outputText
,然后将此id
添加到render
代码的f:ajax
属性中。
您可以在render
属性中更新其空格分隔的多个元素。