Есть ли способ получить список всех идентификаторов клиентов содержимого определенного div внутри управляемого компонента? У меня есть идентификатор клиента div. Я должен вызвать resetValue(...) для каждого компонента внутри div.
FacesContext.getCurrentInstance().getViewRoot().findComponent(...) даст мне один компонент, если я укажу идентификатор клиента. Я не хочу использовать его, потому что у меня много компонентов внутри div, и у меня будет около 100 строк кода только для сброса одного div.
Могу ли я получить список идентификаторов cient, чтобы я мог перебирать этот список и сбрасывать все компоненты? Я также открыт для других подходов, если я могу сбросить все компоненты внутри div. Мой компонент управляется Spring (scope("view")). Я использую a4j:commandButton для отправки значений этому компоненту. Когда я снова загружаю страницу, я вижу ранее отправленные значения, что неверно. Я попробовал resetValue(...) для одного компонента внутри div после отправки, и он сбросил значения компонента. Любая помощь приветствуется.
Пример кода:
xhtml:
<a4j:outputPanel id="EditSeaPage">
<a4j:outputPanel id="editSeaContainer"
rendered="#{seaBean.showEditSea}" layout="block"
styleClass="switch-section">
<h:panelGroup>
<h:outputLabel value="#{messageSource.sea_label}" />
<h:inputText id="updateSeaCode"
value="#{seaBean.seaUIDTO.seaCode}"
styleClass="user-detail">
<a4j:ajax />
</h:inputText>
</h:panelGroup>
<a4j:commandButton id="confirmUpdateSeaCode" execute="@this"
action="#{seaBean.updateSeaCode}" render="parentContainer"/>
</a4j:outputPanel>
</a4j:outputPanel>
Родительский xhtml:
<a4j:commandLink id="editSeaCode" value="edit" onclick="hideMe()" render="editPortContainer"/>
Bean:
public String updateSeaCode() {
//does update
UIInput input = (UIInput) FacesContext.getCurrentInstance().getViewRoot().findComponent("updateSeaCode");
input.resetValue();
//This works. But I have around 20 input components in the above XHTML and can't write the //above code for each component
}
Я просто добавил скелет того, что я делаю. Как я могу убедиться, что представление обновляется после завершения вызова? Чтобы дать мне больше деталей, вот как это работает: у меня есть ссылка edit, которая является a4j:commandLink. При нажатии на эту ссылку я скрываю ссылку и отображаю editSeaContainer. Если вы видите, что есть визуализированный атрибут. Как только я нажимаю на ссылку edit, я скрываю ссылку, используя jQuery, и делаю a4j:jsFunction, чтобы установить для логического свойства значение true, чтобы эта страница отображалась. После a4j:jsFunction я вызываю метод fetch для извлечения содержимого этого xhtml. К моменту завершения метода логическое значение устанавливается, и атрибут 'render' отображает страницу. Все в порядке, пока здесь. Но входные значения не обновляются с извлеченными значениями.
Спасибо.
client.setValue(""). - person Xtreme Biker   schedule 21.03.2014renderдляa4j:commandButton: ‹a4j:commandButton id=confirmUpdateSeaCode action=#{seaBean.updateSeaCode} render=EditSeaPage /› - person Vasil Lukach   schedule 21.03.2014