要素のリストを反復処理し、要素ごとにフォームを表示したいと考えています。その形で、ループの要素ごとに異なる Bean を埋めることができるようにしたいと考えています。これが私がこれまでに得たものですが、もちろんうまくいきません;)
<ui:repeat value="#{productBean.productPositions}" var="position">
<div>position info here</div>
<div>list price ranges</div>
<div>
<h5>Create new price range for product position position</h5>
<h:form>
Min:
<h:inputText
value="#{priceRangeBean.priceRanges[productPositionRangeSearch.productPositions.indexOf(position)].min}" />
Max:
<h:inputText
value="#{priceRangeBean.priceRanges[productPositionRangeSearch.productPositions.indexOf(position)].max}" />
price:
<h:inputText
value="#{priceRangeBean.priceRanges[productPositionRangeSearch.productPositions.indexOf(position)].price}" />
<h:commandButton value="create"
action="#{priceRangeController.createRange(productPositionRangeSearch.productPositions.indexOf(position))}" />
</h:form>
</div>
</ui:repeat>
私の PriceRangeBean:
@SessionScope
public class PriceRangeBean {
private List<PriceRange> priceRanges = new ArrayList<PriceRange>();
public List<PriceRange> getPriceRanges() {
return priceRanges;
}
public void setPriceRanges(List<PriceRange> priceRanges) {
this.priceRanges = priceRanges;
}
}
PriceRange
最小値、最大値、価格を含むPOJOであるString
ページを呼び出すコントローラは、存在するのPriceRangeBean
と同じ数PriceRange
のを埋めて、リストにProductPosition
「新しい」PriceRange
オブジェクトを作成する準備ができているようにします。ただし、入力はバッキング Bean に到達していないようです。
私が間違っていることはありますか?
ありがとう!