由于我将在页面上显示表格,因此某些元素没有任何值。但元素具有一个值,可以形成到另一个页面的链接。现在它什么也没有显示,既没有值(value)也没有值(value)。
我是 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”变量不为 null 时呈现链接,我建议使用 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
代表 equals,因此等于 java object1.equals(object2);
,或者对于基本类型,如 boolean obj1 == obj2
;
ne
代表不等于。您可能会猜到它的作用...
empty
评估以下表达式处于空覆盖内容的定义状态,例如 null、空字符串 ("") 或没有内容的数组或列表
同样重要的是 #
在声明前面,您似乎在示例中忘记了。如果你忘记了这一点,你的rendered
的值属性被视为字符串,而不是应由 JSF 计算的某些表达式。我认为这是你的例子不起作用的主要原因,因为你的表达基本上是正确的
最诚挚的问候
J·亚当
关于java - 当链接不为空时渲染链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37477414/