基本的なカスタマイズ > ユーザーインタフェースのカスタマイズ > JSP クライアントへのピッカーの組み込み > JCA での参加者ピッカーの設定 > サンプルコード > 参加者ピッカータグを含んでいるサンプル JSP
  
参加者ピッカータグを含んでいるサンプル JSP
参加者ピッカーを起動する操作のエントリを作成した後、操作タグと同じ名前で JSP を記述します (たとえば participantPickerSample.jsp)。
<%@ page import="com.ptc.windchill.enterprise.picker.principal.PrincipalBean"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://www.ptc.com/windchill/taglib/components" prefix="jca"%>
<jca:participantPicker
actionClass="com.ptc.netmarkets.principal.CustomPrincipalCommands"
actionMethod="addPrincipal"
participantType="<%= PrincipalBean.GROUP %>">
>
</jca:participantPicker>
-
以下のように、基本参加者ピッカーがレンダリングされます。
サーチ基準に基づいてサーチを実行します。参加者を参加者リストに移動し、「OK」をクリックします。コンポーネントは、参加者ピッカータグへの属性として指定された actionClass および actionMethod を呼び出します。actionClass に actionMethod を書き込む必要があります。サンプルコードは以下のとおりです。
public class CustomPrincipalCommands {
public static FormResult addPrincipal(NmCommandBean cb) throws WTException {
FormResult result = new FormResult(FormProcessingStatus.SUCCESS);
result.setNextAction(FormResultAction.REFRESH_OPENER);
String principals = cb.getTextParameter(PrincipalBean.PARAM_SELECTED_PRINCIPALS);
if (principals == null) {
result.setStatus(FormProcessingStatus.FAILURE);
return result;
}
ArrayList<String> selectedPrincipals = new ArrayList<String>();
int start = 0;
int pos = principals.indexOf("#", start);
while (pos != -1) {
String principal = principals.substring(start, pos);
selectedPrincipals.add(principal);
start = pos + 1;
pos = principals.indexOf("#", start);
}
// Now process selectedPrincipals
return result;
}
}
静的メソッドを actionMethod として記述する必要があります。NmCommandBean など 1 つの引数のみを受け入れます。選択した参加者はテキストパラメータとして、このメソッドに送信されます。このコンポーネント内では、これらの値は非表示変数として保存されます。非表示変数の名前は、"com.ptc.windchill.enterprise.picker.principal.PrincipalBean" に静的文字列として定義されます。選択した参加者を抽出するには、PrincipalBean.PARAM_SELECTED_PRINCIPALS を使用します。これにより "#" で区切られた DN (識別名) が返されます。