在logic:equal标记的value属性中使用另一个bean的属性

时间:2015-05-04 17:06:06

标签: struts-1

我想使用Struts1中的逻辑标记比较两个单独bean的属性:

<logic:equal name="beanOne" property="beanOneProperty" 
    value="<bean:write name="beanTwo" property="beanTwoProperty" />">

  //code to execute

</logic:equal>

但是上面的代码会导致以下错误消息:

  

无法找到标记属性beanTwo的标记属性信息。

我如何将value属性指定为存储在第二个bean中的内容?

有没有比这更简洁的解决方案?

<bean:define id="beanTwoProperty" scope="request">
    <bean:write name="beanTwo" property="propOne"/>  
</bean:define>

<logic:equal name="beanOne" property="beanOneProperty" value="<%=beanTwoProperty">

<小时/> 我的问题是this one的重复,尽管我有兴趣看看是否有纯Struts-1解决方案。

1 个答案:

答案 0 :(得分:0)

您可以使用<bean:define ... />建议

或者您可以使用EL:

<logic:equals name="beanOne" property="beanOneProperty" value="${beanTwo.beanTwoProperty}">

或者你可以跳过<bean:define ... />(假设有一个吸气剂):

<logic:equals name="beanOne" property="beanOneProperty" value="<%= beanTwo.getBeanTwoProperty() %>">