ピッカーを起動してピッカー値をテキストボックスに返すサンプル JSP
プロパティピッカータグを使用して、テキストボックスおよび「検索」ボタンをレンダリングし、参加者ピッカーを起動します。「検索」ボタンは、前のセクションで説明したとおり、actions.xml で宣言する必要があります。プロパティピッカーはデフォルトで、ピッカーによって呼び出される JavaScript コールバック関数を提供し、ピッカーから取得した値を返します。プロパティピッカーは、ピッカーによって呼び出されるカスタム JavaScript 関数を定義することもできます。以下に例を示します。
<p:propertyPicker label="${label}" field="${textbox}" action="participantPickerSample2" type="participantpicker">
<p:populate from="${displayAttribute}" to="${displayFieldId}"/>
<p:populate from="oid" to="${id}" />
<p:pickerParam name="pickerId" value="${id}" />
<p:pickerParam name="objectType" value="wt.org.WTGroup"/>
<p:pickerParam name="componentId" value="${componentId}"/>
<p:pickerParam name="pickedDataFetcher" value="${pickedDataFetcher}" />
<p:pickerParam name="pickerCallback" value="${pickerCallBack}" />
<p:pickerParam name="containerRef" value="${containerRef}"/>
<p:pickerParam name="baseWhereClause" value="${baseWhereClause}" />
<p:pickerParam name="pickerTitle" value="${pickerTitle}"/>
<p:pickerParam name="multiSelect" value="${multiSelect}"/>
</p:propertyPicker>
参加者ピッカーに戻り、プロパティピッカーから参加者ピッカーが起動されると、リクエストパラメータとしてコールバック JavaScript 関数名を取得できます。
<c:set var="pickerCallback" value="<%=request.getParameter("pickerCallback")%>"/>
<jca:participantPicker
actionClass=""
actionMethod="JavaScript:${pickerCallback}()"
participantType="<%= PrincipalBean.GROUP %>"
<jca:participantPicker>
空白文字列を参加者ピッカーの actionClass 属性に渡します。リクエストパラメータから取得した JavaScript コールバック関数名は、文字列 "JavaScript:" に追加され、値として actionMethod に渡されます。PickerCallBack メカニズムが必要なので、文字列 "JavaScript:" は識別のためにピッカーで内部使用されます。ユーザーが目的の参加者を選択し、「OK」をクリックすると、値は JSON オブジェクト (プロパティピッカーで定義) として JavaScript 関数に返されます。