【发布时间】:2011-11-24 12:56:50
【问题描述】:
我的 JSF 2.0 表单看起来像这样
<h:form id="formId">
.
.
.
<a4j:commandButton action="#{bean.myAction}" value="foo" oncomplete="#{rich:component('popup')}.show();" />
</form>
<rich:popupPanel id="popup" modal="false" autosized="true"
resizeable="false">
<h:form id="form2">
<h:panelGrid columns="1" >
<h:outputText id="idText" value="#{bean.message}" />
<h:commandButton action="#" onclick="#{rich:component('popup')}.hide(); return false;" value="ok"/>
</h:panelGrid>
</h:form>
</rich:popupPanel>
和bean方法
public String action(){
message = "Some message";
return "";
}
单击按钮“动作”和弹出显示都会执行,但看起来调用弹出窗口是先执行的。我从 bean 构造函数而不是更改后的构造函数中得到消息。您是否知道如何延迟弹出显示操作(它已经在 oncomplete 属性下)?是否有任何通常的模式可以适合这里(动作动态改变弹出面板的内容,弹出应该像结果消息)。或者也许有一种方法可以从 java 代码(例如从 bean.action)调用弹出显示? 谢谢
【问题讨论】: