1

要素のリストを反復処理し、要素ごとにフォームを表示したいと考えています。その形で、ループの要素ごとに異なる 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 に到達していないようです。

私が間違っていることはありますか?

ありがとう!

4

1 に答える 1

1

valueのプロパティにこの種のEL式を使用することはできないと思います<h:inputText

表現:

 value="#{priceRangeBean.priceRanges[productPositionRangeSearch.productPositions.indexOf(position)].min}"

(少なくとも)2回評価されます。「リクエスト値の適用」で値を設定する必要がある場合に1回。そして2回目は「レンダリング応答フェーズ」です。

値が設定されると(要求値の適用フェーズで)、式はELによってanとして評価され、lvalue機能が制限されているように見えます。

仕様から(JavaServer Pages 2.1式言語仕様)

左辺値は、単一の変数($ {name}など)またはプロパティ解決のいずれかでのみ構成できます。

同じ仕様のセクション1.2.1.1を確認することをお勧めします。

于 2012-05-25T10:19:48.393 に答える