public class UISelectMany extends UIInput
UISelectMany は UIComponent
であり、利用可能なオプションの個別のセットの中から 0 個以上のアイテムをユーザーが選択したことを表します。ユーザーは選択した値を変更できます。オプションで、コンポーネントの value
プロパティに配列または Collection
として格納することにより、現在選択されている 0 個以上のアイテムを使用してコンポーネントを事前構成できます。
このコンポーネントは通常、選択ボックスまたはチェックボックスのグループとしてレンダリングされます。
デフォルトでは、rendererType
プロパティを "jakarta.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_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, jakarta.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
- 新しく選択された値 (もしあれば)@DeprecatedSE public ValueBinding getValueBinding(StringSE name)
getValueExpression(java.lang.String)
に置き換えられました。selectedValues
の ValueBinding
がリクエストされた場合、value
に設定された ValueBinding
を返します。それ以外の場合は、このメソッドのデフォルトのスーパークラス処理を実行します。
このメソッドは、スーパークラスに依存して ValueExpression
から ValueBinding
への折り返しを提供します。
UIComponentBase
の getValueBinding
name
- ValueBinding
を取得する属性またはプロパティの名前 null
NullPointerExceptionSE
- name
が null
の場合 @DeprecatedSE public void setValueBinding(StringSE name, ValueBinding binding)
setValueExpression(java.lang.String, jakarta.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 © 2018,2020 Eclipse Foundation.
Use is subject to license terms.