不为空时渲染 link
Render link when not null
由于我将在页面上显示 table,因此某些元素没有价值。但是有一个值的元素组成一个link到另一个页面。现在它什么都没有显示,也没有价值。
我是 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>
提前感谢大家的帮助!
假设你使用 JSF,'la' 是你的支持 bean,如果 'classname' 的变量不为空,你想渲染你的 link,我建议使用EL 表达式而不是原始 java 表达式。
您可以阅读有关 EL 的更多信息here
你的例子的表达方式
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
显然反转了下面的表达式
eq
代表等于,因此等于 java object1.equals(object2);
,或者在基本类型的情况下,如 boolean obj1 == obj2
;
ne
代表不等于。您可能会猜到它的作用...
empty
评估以下表达式处于已定义的空覆盖物状态,例如 null、空字符串 ("") 或没有内容的数组或列表
同样重要的是语句前面的 #
,您似乎在示例中忘记了。如果您忘记了这一点,您的 rendered
属性的值将被视为一个字符串,而不是应该由 JSF 计算的某些表达式。我认为这是你的例子不起作用的主要原因,因为你的表达基本上是正确的
此致
J.Adam
由于我将在页面上显示 table,因此某些元素没有价值。但是有一个值的元素组成一个link到另一个页面。现在它什么都没有显示,也没有价值。
我是 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>
提前感谢大家的帮助!
假设你使用 JSF,'la' 是你的支持 bean,如果 'classname' 的变量不为空,你想渲染你的 link,我建议使用EL 表达式而不是原始 java 表达式。
您可以阅读有关 EL 的更多信息here
你的例子的表达方式
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
显然反转了下面的表达式
eq
代表等于,因此等于 java object1.equals(object2);
,或者在基本类型的情况下,如 boolean obj1 == obj2
;
ne
代表不等于。您可能会猜到它的作用...
empty
评估以下表达式处于已定义的空覆盖物状态,例如 null、空字符串 ("") 或没有内容的数组或列表
同样重要的是语句前面的 #
,您似乎在示例中忘记了。如果您忘记了这一点,您的 rendered
属性的值将被视为一个字符串,而不是应该由 JSF 计算的某些表达式。我认为这是你的例子不起作用的主要原因,因为你的表达基本上是正确的
此致
J.Adam