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' 的变量不为空,您希望呈现您的链接,我建议使用 EL 表达式而不是原始 java 表达式。

您可以在此处阅读有关 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表达式

代表 equals ,因此eq等于 java object1.equals(object2);,或者在原始类型(如 boolean )的情况下obj1 == obj2

ne代表不等于。你可能猜到它的作用...

empty以下表达式评估为处于定义的空覆盖状态,例如 null、空字符串 ("") 或没有内容的数组或列表

同样重要的是#声明前面的,您似乎在示例中忘记了。如果您忘记了这一点,您的rendered属性值将被视为字符串,而不是应该由 JSF 评估的某个表达式。我认为这是你的例子不起作用的主要原因,因为你的表达基本上是正确的

此致

亚当

于 2016-05-27T08:03:18.107 回答