Получите идентификатор файла div
, содержимое которого вы хотите изменить, затем назначьте текст следующим образом:
var myDiv = document.getElementById("divId");
myDiv.innerHTML = "Content To Show";
Невозможно повторно выполнить рендеринг (обновление) компонента с помощью ajax, если сам компонент не отображается в первую очередь. Компонент должен всегда отображаться перед тем, как ajax может повторно отобразить его. Ajax использует JavaScript document.getElementById()
, чтобы найти компонент, который необходимо обновить. Но если JSF не отобразил компонент на первом месте, то JavaScript не может найти что-либо для обновления.
Решение состоит в том, чтобы просто ссылаться на родительский компонент, который всегда отображается.
<h:form>
...
<h:commandButton ...>
<f:ajax ... render=":text" />
</h:commandButton>
</h:form>
<h:panelGroup id="text">
<h:outputText ... rendered="#{not empty user}" />
</h:panelGroup>