表达式语言,如果那么结合条件

时间:2015-12-02 09:31:27

标签: java xpages el

我想用表达式语言声明if then else语句的组合条件。

不幸的是我的代码失败了。

((compositeData.data.phone eq null) and (compositeData.data.mail eq null) and (compositeData.data.linkP eq null)) ? false : true

1 个答案:

答案 0 :(得分:2)

在我看来,你的代码应该有效。我已经测试过没有任何问题。

查看以下代码段...

自定义控制:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">

    <xp:br></xp:br>
    SHOW PHONE: 
    <xp:text escape="true" id="computedField3" value="#{compositeData.data.phone}"></xp:text>
    <xp:br></xp:br>
    <xp:br></xp:br>
    SHOW MAIL:
    <xp:text escape="true" id="computedField2" value="#{compositeData.data.mail}"></xp:text>

    <xp:br></xp:br>
    <xp:br></xp:br>
    <xp:text escape="true" id="computedField1" value="SIMPLE TEXT" style="color:rgb(255,0,0);font-size:24pt"
        rendered="#{((compositeData.data.phone eq null) and (compositeData.data.mail eq null)) ? false : true}">
    </xp:text>

</xp:view>

XPAGE(第一个场景设置compositeData.mail):

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xc="http://www.ibm.com/xsp/custom">

    <xc:customControl>
        <xc:this.data>
            <xc:data mail="test@testmail.com"></xc:data>
        </xc:this.data>
    </xc:customControl>

</xp:view>

预期结果:

enter image description here

XPAGE(未设置compositeData.mail的第二种情况):

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xc="http://www.ibm.com/xsp/custom">

    <xc:customControl>
    </xc:customControl>

</xp:view>

预期结果:

enter image description here

提示:我已经使用Domino 8.5.3FP6Domino 9.0.1FP4服务器完成了测试。正如我上面提到的,没有任何麻烦。