サブミット/アクションイベントを持つ別のパネルのポップアップパネルに値を送信しようとしています。しかし、ポップアップパネルを開く前に、マネージドBean上で新しいエンティティオブジェクトを作成する関数を呼び出す必要があります。外側のパネルにはh:フォームしかありません。ネストできません。 a4j:にポップアップパネルをラップして、ポップアップパネル内の値を使用するときにこの部分のみを送信しました。これは機能しますが、ポップアップパネルが実行されるときに呼び出される必要がある準備関数の実行は行いません。私はa4j:commandLinkを試しましたが、そのコンポーネントはrich:popupPanel(どちらもRichfacesコンポーネントですか?)と一緒に動作しません。ですから、私はh:commandLinkで中継し、ajaxを使用しなければなりません。ポップアップパネルの内容を豊富に送信:popupPanel
ポップアップパネルを開く/レンダリングするリンクが起動したときに、マネージドBeanの関数を呼び出すにはどうすればよいですか?
(このため、正しいパターンは何ですか?)
PS。最初の質問は変更されましたが、ポップアップパネルで値を送信する際の問題はありません。 XHTMLファイルの
パート:ポップアップパネルについて
<h.form>
...
<a4j:region>
<rich:popupPanel id="popup_sys_user_req" modal="false" autosized="true" resizeable="false">
<f:facet name="header">
<h:outputText value="Request New Sector/Category" />
</f:facet>
<f:facet name="controls">
<h:outputLink value="#"
onclick="#{rich:component('popup_sys_user_req')}.hide(); return false;">
X
</h:outputLink>
</f:facet>
<h:panelGrid columns="2">
<h:outputLabel value="Request New:" />
<h:selectOneMenu id="sys_req_type" value="#{userController.selectedSysUserRequest.sysrequesttype}" required="true" >
<f:selectItems value="#{userController.getSysRequestTypeItems('SECTOR_CATEGORY')}">
</f:selectItems>
</h:selectOneMenu>
<h:outputLabel value="Description:" />
<h:inputTextarea id="user_req_desc" value="#{userController.selectedSysUserRequest.description(desc)}" required="true" requiredMessage="Decription is missing" />
</h:panelGrid>
<a4j:commandButton action="#{userController.CreateSysUserRequest()}" value="Send Request" execute="sys_user_req_form" oncomplete="#{rich:component('popup_sys_user_req')}.hide(); return false;"/>
</rich:popupPanel>
</a4j:region>
</h:form>
のcommandLink(再編集)
<h:commandLink actionListener="#{userController.prepareCreateSysRequest}" value="Request New Sector/Category">
<f:ajax execute="popup_sys_user_req @this" render="popup_sys_user_req">
<rich:componentControl id="popup_ctr" event="click" target="popup_sys_user_req" operation="show"/>
</f:ajax>
</h:commandLink>
----------------------------
//Managed Bean:
public void prepareCreateSysRequest(ActionEvent event) {
selectedSysUserRequest = new Sysuserrequest();
JsfUtil.log("Prepare Create System User Request");
}
This post continues the dicussion。 グリーティングクリス。
richfacesを使用していますが、コマンドボタンのlimitToListはありません。それが地域があるが確信が持てない理由だと思う。 2番目の提案を試みます。ありがとう。 – Chris
フォローアップの質問で、私はexecute = @ formを使って処理を制限しようとしています。ページ上の2番目のフォームですが、他のフォームも送信しようとします。豊かですか:地域は行く道? – Chris
ポップアップパネルを独自のフォームに移動すると、ポップアップパネルのヘッダーが消えます。 JSFは弱い心のためではないと思いますか? – Chris