0

ページ上に表を表示すると、値のない特定の要素があります。ただし、別のページへのリンクを形成する値を持つ要素。現在、値があるかどうかにかかわらず、何も表示されません。

私は Java を初めて使用し、自分のコードに何が間違って記述されているのか理解できません。

これが私のコードです:

<h:link outcome="schoolclass-detail" value="#{la.participant.schoolclass.classname}" rendered="{!la.participant.schoolclass.classname==null}">
                        <f:param name="schoolclassId" value="#{la.participant.schoolclass.id}" />
                </h:link>

事前にすべての助けをありがとう!

4

1 に答える 1

3

JSF を使用し、'la' がバッキング Bean であり、'classname' の変数が null でない場合にリンクをレンダリングすると仮定すると、生の Java 式ではなく EL 式を使用することをお勧めします。

ELの詳細はこちら

あなたの例の式

rendered="{!la.participant.schoolclass.classname==null}"

ELのように見える可能性があります

rendered="#{not (la.participant.schoolclass.classname eq null)}"

また

rendered="#{la.participant.schoolclass.classname ne null}"

または多分より良い

rendered="#{not (empty la.participant.schoolclass.classname)}"

not明らかに次の式を反転します

eqequals を表し、したがって java と等しいobject1.equals(object2);か、または boolean のようなプリミティブ型の場合は等しいobj1 == obj2です。

ne等しくないことを表します。あなたはそれが何をするかを推測するかもしれません...

empty、次の式を評価して、null、空の文字列 ("")、内容のない配列またはリストなどの空のカバーの定義済み状態にあると評価します。

また、ステートメントの前にあることも重要です#。これは、例で忘れているようです。これを忘れると、rendered属性の値は文字列として扱われ、JSF によって評価される式ではなくなります。あなたの表現は基本的に正しいので、それがあなたの例が機能しない主な原因だと思います

よろしくお願いします

J.アダム

于 2016-05-27T08:03:18.107 に答える