0
@Component
@Scope("view")
public class ProductPriceBean {

    @Autowired
    private ProductPriceDAO productPriceDAO;

    public void saveProductPrice(ProductPrice productPrice){
        productPrice=productPriceDAO.save(productPrice);

// save アクションによって返される productPrice は新しいオブジェクトです }

}

JSF:

<p:dataTable var="price" value="#{product.prices}" editable="true">
                    <p:ajax event="rowEdit"
                        listener="#{productPriceBean.saveProductPrice(price)}"
                        update=":form:messages" />



                    <p:column headerText="Price">
                        <p:cellEditor>
                            <f:facet name="output">
                                <h:outputText value="#{price.price}" >
                                <f:convertNumber type="currency" currencyCode="GBP"/>
                                </h:outputText>
                            </f:facet>
                            <f:facet name="input">
                                <p:inputText value="#{price.price}" >
                                  <f:convertNumber type="currency" currencyCode="GBP"/>
                                </p:inputText>
                            </f:facet>
                        </p:cellEditor>
                    </p:column>


            <p:rowEditor />  
        </p:column>  

</p:dataTable>

これは 1 回目は正常に機能しますが、2 回目は古い製品の例外が発生します。新しい製品でデータテーブルを更新するにはどうすればよいですか?

なるほど。

4

1 に答える 1