代码之家  ›  专栏  ›  技术社区  ›  Garis M Suero

Struts2计算属性是否存在或其长度

  •  1
  • Garis M Suero  · 技术社区  · 15 年前

    <s:iterator value="parts" status="status">
        parts[<s:property value="category.categoryId" />][<s:property value="piezaId" />] = ['<s:property value="descripcion" />', '<s:property value="disponible" />'];
    </s:iterator>
    

    但有时当没有为该部分设置类别时,它看起来像

    parts[1][460] = ['Vidrio Delantero RH', '1'];
    parts[1][463] = ['Vidrio trasero LH', '1'];
    parts[1][465] = ['Vidrio Trasero principal', '1'];
    parts[1][462] = ['Vidrio trasero RH', '1'];
    parts[][512] = ['Volanta', '1'];
    parts[10][599] = ['Z de gu&iacute;a', '1'];
    parts[1][692] = ['Farol de bumper delantero LH', '1'];
    

    这就破坏了JavaScript,看起来 parts[][512]

    在Struts1中,我有 logic:present ,我想在struts2中找到一些相同/相似的东西。。。尝试 <s:if test="#category.categoryId.length() > 0"> 但它永远不会成为现实。。。

    2 回复  |  直到 15 年前
        1
  •  4
  •   leonbloy    15 年前

    空值对应于 category.categoryId 那是一个空字符串?还是空值?如果是第一个,那我就试试 <s:if test="category.categoryId.length() != 0"> category <s:if test="category.categoryIdNonEmpty"> .

    我宁愿尝试避免使用struts标记的复杂逻辑,并将其委托给操作。例如,我会考虑另一种方法(比如, partsWithId() getParts() <s:iterator value="partsWithId">

        2
  •  1
  •   Dagg Nabbit    15 年前

    我对struts2了解不多,但在简单地环顾四周之后,我认为您可能需要做一些类似的事情: <s:if test="%{#category.categoryId.length() > 0}">

    你有类别0吗?如果不是,这里有另一个选择。。。这绝对是一个黑客,但它应该保持从打破js代码。未分类的内容将以类别0结尾。

    <s:iterator value="parts" status="status">
        parts[0<s:property value="category.categoryId" />][<s:property value="piezaId" />] = ['<s:property value="descripcion" />', '<s:property value="disponible" />'];
    </s:iterator>