public class UISelectMany extends UIInput
UISelectMany は UIComponent であり、利用可能なオプションの個別のセットの中から 0 個以上のアイテムをユーザーが選択したことを表します。ユーザーは選択した値を変更できます。オプションで、コンポーネントの value プロパティに配列または Collection として格納することにより、現在選択されている 0 個以上のアイテムを使用してコンポーネントを事前構成できます。
このコンポーネントは通常、選択ボックスまたはチェックボックスのグループとしてレンダリングされます。
デフォルトでは、rendererType プロパティを "javax.faces.Listbox" に設定する必要があります。この値は、setRendererType() メソッドを呼び出すことで変更できます。
このコンポーネントの Renderer は、getConvertedValue() で次のロジックを実行する必要があります。
次のアルゴリズムを使用して
Converterを取得します。コンポーネントに
Converterが接続されている場合は、それを使用します。そうでない場合は、
valueのValueExpressionを探します(存在する場合)。ValueExpressionは、次のようなものを指している必要があります。何らかの理由で
Converterが見つからない場合は、型を文字列配列と見なします。
選択された Converter (存在する場合) を使用して、リクエストからの値配列の各要素を適切な型に変換し、各変換の結果を、説明のために targetForConvertedValues と呼ばれるデータ構造に格納します。次のアルゴリズムを使用して targetForConvertedValues を作成します。
コンポーネントに value の ValueExpression があり、式の型が配列である場合、targetForConvertedValues は予想される型の新しい配列になります。
コンポーネントに value の ValueExpression がある場合、modelType を値式の型とします。modelType が Collection の場合、次の操作を実行して targetForConvertedValues に到達します。
コンポーネントに、キー "collectionType" の属性を問い合わせます (引用符は不要)。そのキーの値がある場合、その値は完全修飾 Java クラス名である String、Class オブジェクト、または String または Class に評価される ValueExpression である必要があります。いずれの場合も、値は Collection を実装するクラスの具象型を識別するために使用されます。説明上、これを collectionType と呼びます。targetForConvertedValues を、collectionType で指定された具象クラスによって実装された Collection の新しいインスタンスとします。collectionType が見つからない場合、または collectionType で指定された具象クラスによって実装された Collection のインスタンスを作成できない場合は、正しくローカライズされたエラーメッセージとともに FacesException をスローします。ConverterException ではなく FacesException がスローされることに注意してください。これは、このケースがエンドユーザエラーではなく開発者エラーによってのみ発生するためです。
"collectionType" 属性がない場合は、コンポーネントで getValue() を呼び出します。結果は Collection を実装します。結果が Cloneable も実装する場合は、targetForConvertedValues をその clone() メソッドを呼び出した結果とし、次に複製された Collection で clear() を呼び出します。何らかの理由で値を複製できない場合は、メッセージをログに記録して次の手順に進みます。
modelType が具象クラスである場合、targetForConvertedValues はそのクラスの新しいインスタンスになります。それ以外の場合、targetForConvertedValues の具象型は次の表から取得されます。すべてのクラスは java.util パッケージにあります。すべてのコレクションは、リクエストからの値配列の長さに等しい初期容量で作成する必要があります。
| modelType が | targetForConvertedValues は次のインスタンスである必要があります |
|---|---|
SortedSet | TreeSet |
Queue | LinkedList |
Set | HashSet |
| 他に何か | ArrayList |
コンポーネントに value の ValueExpression がない場合、targetForConvertedValues は Object 型の配列になります。
変換された値を入力して targetForConvertedValues を返します。
| 修飾子と型 | フィールドと説明 |
|---|---|
static StringSE | COMPONENT_FAMILY このコンポーネントの標準コンポーネントファミリ。 |
static StringSE | COMPONENT_TYPE このコンポーネントの標準コンポーネント型。 |
static StringSE | INVALID_MESSAGE_ID 使用可能なオプションと一致しない値が指定された場合に作成される FacesMessage のメッセージ ID。 |
ALWAYS_PERFORM_VALIDATION_WHEN_REQUIRED_IS_TRUE, CONVERSION_MESSAGE_ID, EMPTY_STRING_AS_NULL_PARAM_NAME, REQUIRED_MESSAGE_ID, UPDATE_MESSAGE_ID, VALIDATE_EMPTY_FIELDS_PARAM_NAMEATTRS_WITH_DECLARED_DEFAULT_VALUES, BEANINFO_KEY, bindings, COMPOSITE_COMPONENT_TYPE_KEY, COMPOSITE_FACET_NAME, CURRENT_COMPONENT, CURRENT_COMPOSITE_COMPONENT, FACETS_KEY, HONOR_CURRENT_COMPONENT_ATTRIBUTES_PARAM_NAME, VIEW_LOCATION_KEY| コンストラクターと説明 |
|---|
UISelectMany() デフォルトのプロパティ値で新しい UISelectMany インスタンスを作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
protected boolean | compareValues(ObjectSE previous, ObjectSE value) 新しい値が前の値と異なる場合は、 true を返します。 |
StringSE | getFamily()このコンポーネントが属するコンポーネントファミリの識別子を返します。 |
ObjectSE[] | getSelectedValues() 現在選択されている値を返します。現在選択されている値がない場合は null を返します。 |
ValueBinding | getValueBinding(StringSE name) 使用すべきではありません。 これは getValueExpression(java.lang.String) に置き換えられました。 |
ValueExpression | getValueExpression(StringSE name)selectedValues の ValueExpression がリクエストされた場合、value に設定された ValueExpression を返します。それ以外の場合は、このメソッドのデフォルトのスーパークラス処理を実行します。 |
void | setSelectedValues(ObjectSE[] selectedValues) 現在選択されている値を設定するか、 null を設定して、現在選択されている値がないことを示します。 |
void | setValueBinding(StringSE name, ValueBinding binding) 使用すべきではありません。 これは setValueExpression(java.lang.String, javax.el.ValueExpression) に置き換えられました。 |
void | setValueExpression(StringSE name, ValueExpression binding) |
protected void | validateValue(FacesContext context, ObjectSE value)UIInput から継承された標準的な検証動作に加えて、任意の指定された値は、利用可能なオプションの 1 に等しいことを確認してください。 |
addValidator, addValueChangeListener, clearInitialState, decode, getConvertedValue, getConverterMessage, getRequiredMessage, getSubmittedValue, getValidator, getValidatorMessage, getValidators, getValue, getValueChangeListener, getValueChangeListeners, isEmpty, isImmediate, isLocalValueSet, isRequired, isValid, markInitialState, processDecodes, processUpdates, processValidators, removeValidator, removeValueChangeListener, resetValue, restoreState, saveState, setConverterMessage, setImmediate, setLocalValueSet, setRequired, setRequiredMessage, setSubmittedValue, setValid, setValidator, setValidatorMessage, setValue, setValueChangeListener, updateModel, validategetConverter, getLocalValue, setConverteraddClientBehavior, addFacesListener, broadcast, encodeBegin, encodeChildren, encodeEnd, findComponent, getAttributes, getChildCount, getChildren, getClientBehaviors, getClientId, getDefaultEventName, getEventNames, getFacesContext, getFacesListeners, getFacet, getFacetCount, getFacets, getFacetsAndChildren, getId, getListenersForEventClass, getParent, getPassThroughAttributes, getRenderer, getRendererType, getRendersChildren, invokeOnComponent, isRendered, isTransient, processRestoreState, processSaveState, queueEvent, removeFacesListener, restoreAttachedState, saveAttachedState, setId, setParent, setRendered, setRendererType, setTransient, subscribeToEvent, unsubscribeFromEventencodeAll, getClientId, getCompositeComponentParent, getContainerClientId, getCurrentComponent, getCurrentCompositeComponent, getNamingContainer, getPassThroughAttributes, getResourceBundleMap, getStateHelper, getStateHelper, getTransientStateHelper, getTransientStateHelper, initialStateMarked, isCompositeComponent, isInView, isVisitable, popComponentFromEL, processEvent, pushComponentToEL, restoreTransientState, saveTransientState, setInView, visitTreecloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEgetConverter, getLocalValue, setConverterpublic static final StringSE COMPONENT_FAMILY
このコンポーネントの標準コンポーネントファミリ。
public static final StringSE INVALID_MESSAGE_ID
使用可能なオプションと一致しない値が指定された場合に作成される FacesMessage のメッセージ ID。
public UISelectMany()
デフォルトのプロパティ値で新しい UISelectMany インスタンスを作成します。
public StringSE getFamily()
UIComponent このコンポーネントが属するコンポーネントファミリの識別子を返します。この識別子は、rendererType プロパティの値と組み合わせて、このコンポーネントインスタンスに適切な Renderer を選択するために使用できます。このメソッドは null を返すべきではないことに注意してください
public ObjectSE[] getSelectedValues()
現在選択されている値を返します。現在選択されている値がない場合は null を返します。これは、getValue() の型安全なエイリアスです。
null。public void setSelectedValues(ObjectSE[] selectedValues)
現在選択されている値を設定するか、null を設定して、現在選択されている値がないことを示します。これは、setValue() の型安全なエイリアスです。
selectedValues - 新しく選択された値 (もしあれば)public ValueBinding getValueBinding(StringSE name)
getValueExpression(java.lang.String) に置き換えられました。selectedValues の ValueBinding がリクエストされた場合、value に設定された ValueBinding を返します。それ以外の場合は、このメソッドのデフォルトのスーパークラス処理を実行します。
このメソッドは、スーパークラスに依存して ValueExpression から ValueBinding への折り返しを提供します。
UIComponentBase の getValueBinding name - ValueBinding を取得する属性またはプロパティの名前 nullNullPointerExceptionSE - name が null の場合 public void setValueBinding(StringSE name, ValueBinding binding)
setValueExpression(java.lang.String, javax.el.ValueExpression) に置き換えられました。 代わりに、selectedValues に指定された ValueBinding を value に保存します。それ以外の場合は、このメソッドのデフォルトのスーパークラス処理を実行します。
このメソッドは、スーパークラスに依存して、引数 ValueBinding を ValueExpression でラップします。
UIComponentBase の setValueBinding name - ValueBinding を設定する属性またはプロパティの名前 binding - 設定する ValueBinding、または現在設定されている ValueBinding を削除する null NullPointerExceptionSE - name が null の場合 public ValueExpression getValueExpression(StringSE name)
selectedValues の ValueExpression がリクエストされた場合、value に設定された ValueExpression を返します。それ以外の場合は、このメソッドのデフォルトのスーパークラス処理を実行します。
UIComponent の getValueExpression name - ValueExpression を取得する属性またはプロパティの名前 null。NullPointerExceptionSE - name が null の場合 public void setValueExpression(StringSE name, ValueExpression binding)
代わりに、selectedValues に指定された ValueExpression を value に保存します。それ以外の場合は、このメソッドのデフォルトのスーパークラス処理を実行します。
UIComponent の setValueExpression name - ValueExpression を設定する属性またはプロパティの名前 binding - 設定する ValueExpression、または現在設定されている ValueExpression を削除する null NullPointerExceptionSE - name が null の場合 protected boolean compareValues(ObjectSE previous, ObjectSE value)
新しい値が前の値と異なる場合は、true を返します。値の比較は、要素の順序に敏感であってはなりません。
UIInput の compareValues previous - このコンポーネントの古い値 value - このコンポーネントの新しい値 true、それ以外の場合は false。protected void validateValue(FacesContext context, ObjectSE value)
UIInput から継承された標準的な検証動作に加えて、任意の指定された値は、利用可能なオプションの 1 に等しいことを確認してください。各オプションを比較する前に、式言語の強制規則に従って、オプションの値の型をこのコンポーネントの値の型に強制変換します。指定された値がどのオプションとも等しくない場合は、エラーメッセージをキューに入れ、valid プロパティを false に設定します。
このメソッドは、単一の値である値引数、または Collection または値の配列である値引数を明示的にサポートする必要があります。
UIInput.isRequired() が true を返し、現在の値が UISelectItem.isNoSelectionOption() メソッドが true を返す内部 UISelectItem の値と等しい場合は、エラーメッセージをキューに入れ、valid プロパティを false に設定します。
UIInput の validateValue context - 現在のリクエストの FacesContextvalue - メンバーシップをテストするために変換された値。NullPointerExceptionSE - context が null の場合 Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.