[解決済み] JSFでEL empty演算子はどのように動作しますか?
2023-03-25 09:53:42
質問
JSFでは、EL empty演算子を使って、コンポーネントをレンダリングするかしないかを決めることができます。
rendered="#{not empty myBean.myList}"
私が理解したところでは、この演算子はヌルチェックとして働くだけでなく、リストが空かどうかのチェックも行います。
独自のクラスのオブジェクトに対して空チェックを行いたいのですが、どのインターフェース、またはインターフェースの一部を実装する必要があるのでしょうか? また、empty演算子はどのインターフェースと互換性があるのでしょうか?
どのように解決するのですか?
から EL 2.2仕様 (下の"Click here to download the spec for evaluation"のものを入手)。
<ブロッククオート
1.10 Empty Operator - (空の演算子)
empty A
は
empty
演算子は前置演算子で、値が空であるかどうかを判断するために使われます。
であるかどうかを判断するために使用することができます。
を評価するために
empty A
-
もし
A
はnull
を返します。true
-
そうでなければ、もし
A
が空文字列であればtrue
-
それ以外の場合、もし
A
が空の配列であればtrue
-
それ以外の場合、もし
A
が空のMap
を返します。true
-
そうでなければ、もし
A
が空のCollection
を返します。true
-
それ以外の場合は
false
ということで、インターフェイスを考えると、動作するのは
Collection
と
Map
のみです。あなたの場合、私は
Collection
がベストな選択です。あるいは、Javabeanのようなオブジェクトであれば
Map
. いずれにせよ、カバーの下には
isEmpty()
メソッドが実際のチェックに使われます。実装できない、あるいは実装したくないインターフェイスメソッドに対しては
UnsupportedOperationException
.
関連
-
[解決済み] p:dashboardが終了してもソート順を維持する。
-
[解決済み] ビーンスコープを正しく選ぶには?
-
[解決済み】JSF、Servlet、JSPの違いは何ですか?
-
[解決済み】JSFがゲッターを複数回呼び出す理由
-
[解決済み】JSFリソースライブラリは何のためにあり、どのように使用すべきですか?
-
[解決済み] javax.el.PropertyNotFoundException の識別と解決。ターゲットに到達できない
-
[解決済み] h:commandLinkの代わりにh:outputLinkを使うべきですか?
-
[解決済み] Backing Bean (@ManagedBean) か CDI Beans (@Named) か?
-
[解決済み] dataTableやui:repeatのコマンドリンクに選択した行を渡すにはどうしたらいいですか?
-
[解決済み] /page.xhtmlのパースでエラーが発生しました。Error Traced[line: 42] 実体 "nbsp "が参照されたが、宣言されていない。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] <f:facet>は何をするもので、どのような場合に使用するのですか?
-
[解決済み] 空またはNULLのJSTL cタグを評価する
-
[解決済み] javax.validation.ConstraintViolationException
-
[解決済み] p:dashboardが終了してもソート順を維持する。
-
[解決済み] JSF2 FaceletsでJSTL...意味があるのか?
-
[解決済み] <f:metadata>、<f:viewParam>、<f:viewAction>は何に使えるのでしょうか?
-
[解決済み] divタグをレンダリングできるjsfコンポーネントは何ですか?
-
[解決済み] Backing Bean (@ManagedBean) か CDI Beans (@Named) か?
-
[解決済み] ViewParam vs @ManagedProperty(value = "#{param.id}")
-
[解決済み] JSF2におけるfaces-config.xmlの用途は何ですか?