java - 当链接不为空时渲染链接

标签 java xhtml rendered-attribute

由于我将在页面上显示表格,因此某些元素没有任何值。但元素具有一个值,可以形成到另一个页面的链接。现在它什么也没有显示,既没有值(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/

相关文章:

java.lang.NoClassDefFoundError : In Rest API JAVA

html - 为什么我最近总是看到 "//"而不是 "http://"资源?

jsf - <一个jsf :rendered ="#{...}"> is not interpreted as passthrough element

javascript - XPages CSJS 被执行,而 SSJS 不被执行

在目录层次结构中找不到 Java 类

java - Thread.activeCount() 和 ThreadGroup.activeCount() 之间的区别

html - 如何以编程方式禁用 IE 兼容模式?

html - 如何使用 CSS 使表格以自定义格式显示?

javascript - 如何渲染 h :panelGroup inside ui:repeat based on value from javascript?

java - 在 catch 和 finally 子句中抛出异常