s:iterator からアクションで定義されたメソッドにオブジェクトを渡そうとしていますが、何らかの理由で struts2 は null オブジェクトしか渡していません。
私のコードは次のようになります:
<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
呼び出された 2 つのメソッドのメソッド シグネチャは次のとおりです。
public String discountLine(Discounts discount)
と
public String displaySomeText(String valueToDisplay)