If statement Apache Tapestry-如果有几个条件

If statement Apache Tapestry-如果有几个条件,if-statement,tapestry,If Statement,Tapestry,我需要在一个Tapestry表列中获得2个java字段。我的每个字段都可以为空。我可以在单行中写入if条件(一个if运算符中有两个字段),还是必须为第二个字段写入内部条件 现在我有这个: <t:if test="${subject.subjectQuantity}"> <t:if test="${subject.unitMeasure}"> <tr> <td>Subject count:</td

我需要在一个Tapestry表列中获得2个java字段。我的每个字段都可以为空。我可以在单行中写入if条件(一个if运算符中有两个字段),还是必须为第二个字段写入内部条件

现在我有这个:

<t:if test="${subject.subjectQuantity}">
    <t:if test="${subject.unitMeasure}">
        <tr>
            <td>Subject count:</td>
            <td>${subject.subjectQuantity} ${subject.unitMeasure}</td>
        </tr>
    </t:if>
</t:if>

受试者人数:
${subject.subjectQuantity}${subject.unitMeasure}

这是一个很好的例子,说明了什么时候应该将逻辑放在组件类中,而不是放在模板中。只需创建一个getter,返回要显示的字符串。将您的条件放入该getter中。

JAVA

public boolean isSubjectQuantityAndUnitMeasurePopulated() {
    return subject.subjectQuantity != null && subject.unitMeasure != null;
}
TML


受试者人数:
${subject.subjectQuantity}${subject.unitMeasure}

您的java代码中可以没有任何条件。请参考下面的代码

Scrub.tml

  <t:if test="sitelistUtility">
        <label> ${sitelist.utility.name}</label>
  </t:if>

谢谢你的建议。举个例子。我想知道是否可以设置多个条件,以及如何设置。据我所知,没有一种方法可以在一个“如果”中设置两个测试。顺便说一下,您不应该对组件参数使用${…}语法。它会导致对字符串进行不必要的类型强制。它应该是公正的
  <t:if test="sitelistUtility">
        <label> ${sitelist.utility.name}</label>
  </t:if>
public boolean isSitelistUtility() {
      return sitelist != null && sitelist.getUtility() != null;
  }