Как изменить компонент внутри модалпанели?
Является ли это возможным? если да, то как мне это сделать?
Мне нужно изменить <h:outputText>
после <a4j:commandLink>
действие выполнено, оба компонента находятся внутри модалпанели и эта модальпанель находится внутри я пробовал:
<a4j:commandLink value="somevalue" id="someid" action="#{MyBean.myAction()}"
reRender="outputtextid">
<f:param name="paramid" value="paramvalue"/>
</a4j:commandLink>
1 ответ
Убедитесь, что ваш <h:outputText>
находится вне формы, содержащей <a4j:commandLink>
или же он свяжет значение outputText с фактическим значением в форме, что приведет к странному поведению на вашей странице.
<h:form>
<a4j:commandLink value="somevalue" id="someid" action="#{MyBean.myAction()}"
reRender="outputtextid">
<f:param name="paramid" value="paramvalue"/>
</a4j:commandLink>
</h:form>
<h:outputText value="#{MyBean.outputValue}" id="outputtextid" />
Если вы должны иметь <h:outputText>
внутри формы, вы должны рассмотреть возможность обновления значения с помощью oncomplete
атрибут tag в commandLink, который выполняет код JavaScript.
Если вы хотите показать сообщение пользователю, вы можете использовать <h:messages>
или же <rich:messages>
компонент тега, это будет лучшим вариантом, чем использование outputText.