2010-06-24 56 views
0

我正在开发使用JSF richfaces的web应用程序。我有一个rich:modalpanel在主模板中。这modalPanel有“您的要求正在处理......”消息调用rich:modalPanel对于每个使用a4j:status的ajax请求?

我想将此消息(modalPanel)的每一个动作(Ajax请求),但没有A4J:。状态元素。

有可能达致这(使用听众或任何otherway)?
如何使用监听器显示所有操作等待modalPanel

帮我看看这个。 在此先感谢。

更新:

如果我用我的主要templete,

<a4j:status id="waittingMessage" 
      onstart="javascript:Richfaces.showModalPanel('progressWaitModalPanel');" 
      onstop="javascript:Richfaces.hideModalPanel('progressWaitModalPanel');"/>  

我呼吁上述A4J:状态以下地方: 我用下面的每一个组成部分超过100个地方在我的应用程序

  <a4j:commandButton status="waittingMessage"/> 
      <a4j:commandLink status="waittingMessage"/> 
<h:selectOneMenu><a4j:support status="waittingMessage"/> </h:selectOneMenu> 
<h:selectOneRadio><a4j:support status="waittingmessage"/></h:selectOneRadio> 
<h:selectBooleanCheckbox><a4j:support status="waittingmessage"/></h:selectBooleanCheckbox> 

在未来,

我并不需要显示progressWaitModalPanel,到时候我会删除A4J:在主templete状态
但是这怎么样status =“waittingMessage”?因为这个status =“waittingmessage”我在整个应用程序中添加了超过1000个地方。

回答

1

<a4j:status>是这样做的正确方法。我不知道任何其他方式。也许你可以挂钩一些低级别的javascript,但这是错误的做法。

如果status位于当前的form中,则不需要明确指出哪个是状态 - 默认情况下使用。

+0

感谢您的回复。 可以使用侦听器完成此过程。 – Eswar 2010-06-24 09:42:02

+0

我不这么认为。你是什​​么意思? – Bozho 2010-06-24 09:58:40

+0

PhaseListener,ActionListener,HttpSessionListener等等 – Eswar 2010-06-24 10:23:40

1
<a4j:status id="waittingMessage" 
     onstart="Richfaces.showModalPanel('id_modalPanel')" 
     onstop="Richfaces.hideModalPanel('id_modalPanel')"> 
     <f:facet name="start"> 
      <label></label> 
     </f:facet> 
     <f:facet name="stop"> 
      <label></label> 
     </f:facet> 
</a4j:status> 
<ui:include src="/modalPanel.xhtml" /> 

modalPanel.xhtml可以包含与显示相关的内容。

你可以把上面的内容在一个单独的文件中说status.xhtml然后包括在您 如下其他页面:

<a4j:outputPanel ajaxRendered="true"> 
<ui:include src="status.xhtml" /> 
</a4j:outputPanel> 

使具有AJAX请求将显示上面的消息窗口 任何页面您无需为每个a4j:按钮等添加任何状态信息。