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
(存在する場合)を使用して、values 配列の各要素をリクエストから適切な型に変換し、各変換の結果を 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 がクローン化された Collection
に clear()
を呼び出した後、その clone()
メソッドを呼び出した結果とします。何らかの理由で値のクローンを作成できない場合は、メッセージをログに記録して、次の手順に進みます。
modelType が具象クラスの場合、targetForConvertedValues をそのクラスの新しいインスタンスとします。それ以外の場合、targetForConvertedValues の具象型は、次の表から取得されます。すべてのクラスは java.util
パッケージに含まれています。すべてのコレクションは、リクエストからの values 配列の長さに等しい初期容量で作成する必要があります。
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_NAME
ATTRS_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, validate
getConverter, getLocalValue, setConverter
addClientBehavior, 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, unsubscribeFromEvent
encodeAll, getClientId, getCompositeComponentParent, getContainerClientId, getCurrentComponent, getCurrentCompositeComponent, getNamingContainer, getPassThroughAttributes, getResourceBundleMap, getStateHelper, getStateHelper, getTransientStateHelper, getTransientStateHelper, initialStateMarked, isCompositeComponent, isInView, isVisitable, popComponentFromEL, processEvent, pushComponentToEL, restoreTransientState, saveTransientState, setInView, visitTree
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
getConverter, getLocalValue, setConverter
public 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
を取得する属性またはプロパティの名前 null
NullPointerExceptionSE
- 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
- 現在のリクエストの FacesContext
value
- メンバーシップをテストするために変換された値。NullPointerExceptionSE
- context
が null
の場合 Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.