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

Struts2计算属性是否存在或其长度,struts2,Struts2,我有一个JSP,我把一些值从一个属性放到一个JavaScript数组中。。。它看起来就像这样: <s:iterator value="parts" status="status"> parts[<s:property value="category.categoryId" />][<s:property value="piezaId" />] = ['<s:property value="descripcion" />', '<s:p

我有一个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>
这打破了JavaScript,在看起来像
parts[][512]

在Struts1中,我有函数
logic:present
,我在struts2中寻找等效/相似的东西。。。尝试了
,但从未实现过


任何帮助都将不胜感激……

我对struts2了解不多,但经过简单的了解后,我认为您可能需要做更多类似的事情:

您是否有类别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>

部分[0][]=['',];

我对struts2了解不多,但经过简单的浏览之后,我认为您可能需要做更多类似的事情:

您是否有类别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>

部分[0][]=['',];

您的空值对应于一个属于空字符串的
类别。categoryId
?还是空值?如果是第一个,那么我会尝试
或在您的
类别中添加一个布尔方法


我宁愿尝试避免使用struts标记的复杂逻辑,并将其委托给操作。例如,我会考虑一个附加的方法(例如,代码> PoxSuffID())/>代码>替代代码> GETPARSH()/代码>,它用空的分类ID过滤出部分,然后调用<代码> <代码>

< p>您的空值对应于<代码>类别。还是空值?如果是第一个,那么我会尝试
或在您的
类别中添加一个布尔方法


我宁愿尝试避免使用struts标记的复杂逻辑,并将其委托给操作。例如,我会考虑一个附加的方法(例如,代码> PoxSuffID())/>代码> >代码> GETPARSH()/代码>,它用空的分类ID过滤出部分,然后调用<代码> <代码> /P>我试图避免新的方法…不管怎么说,我放弃了,用ajax做了……不管怎么说,我在struts中寻找一个等价的方法来评估是否存在任何属性,它是否有值……我试图避免使用新方法。。。不管怎么说,我放弃了,用ajax做了……不管怎么说,我在struts中寻找一个等价的方法来评估是否存在任何属性,它是否有值……谢谢,在你的建议之后,数组在访问它时是未定义的。。。因为它的目的是填充另一个multiselect,所以我采用了一种很好的方式,使用了一个额外的ajax调用..谢谢,在您的建议之后,在访问数组时数组是未定义的。。。因为它的目的是填充另一个multiselect,所以我采用了一个额外的ajax调用的好方法。。