我试图将一个对象从 s:iterator 传递到我的操作中定义的方法中,但由于某种原因,struts2 只传递了一个空对象。
我的代码如下所示:
<s:iterator value="#currentPriceList.discounts" var="currentDiscount">
<s:property value="discountLine(#currentDiscount)" /><br />
</s:iterator>
此函数根本不调用 discountLine 方法。
当我将其更改为以下内容时,我确实得到了正确的值:
<s:iterator value="#currentPriceList.discounts" var="currentDiscount">
<s:property value="#currentDiscount.appliesTo" />
</s:iterator>
当我将 currentDiscount 中的字段传递给方法时,我也得到了正确的行为。
<s:iterator value="#currentPriceList.discounts" var="currentDiscount">
<s:property value="displaySomeText(#currentDiscount.appliesTo)" />
</s:iterator>
那么,如何将完整的 currentDiscount 对象传递给操作方法呢?
更新问题:
的输出<s:property value="#currentDiscount.class"/>
是com.acteva.model.wrapper.PriceListWrapper$Discounts
两个被调用方法的方法签名是:
public String discountLine(Discounts discount)
和
public String displaySomeText(String valueToDisplay)