我有这个JSP,我将一些属性值从属性放到JavaScript数组中......它看起来像这样:
<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ía', '1'];
parts[1][692] = ['Farol de bumper delantero LH', '1'];
并且在看起来像parts[][512]
在Struts1中,我有函数logic:present
,我在struts2中寻找等效/类似的东西......试过<s:if test="#category.categoryId.length() > 0">
但它永远不会真实......
任何帮助将不胜感激......
答案 0 :(得分:4)
您的空值对应于空字符串category.categoryId
吗?还是空值?如果是第一个,那么我会尝试<s:if test="category.categoryId.length() != 0">
或在category
班<s:if test="category.categoryIdNonEmpty">
中添加布尔方法。
我宁愿尝试使用struts标记来避免复杂的逻辑,并将其委托给操作。例如,我考虑使用另一种方法(例如partsWithId()
替代getParts()
)过滤掉具有空categoryId的部分,然后调用<s:iterator value="partsWithId">
答案 1 :(得分:1)
我对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>