2013-03-03 84 views
0

防止緩存值,我有一個selectOneMenudataTable。當我改變選定的值時,dataTable將重新填充。 的dataTable的柱的一個是inputText。問題是inputText字段不會調用getter,而是緩存以前的值。在瀏覽器

我想用武力或者撥打getter或設置inputText不被緩存。 我該如何擺脫這個問題?

<h:body> 
    <f:view> 
     <h:form id="headForm"> 

      <ice:selectOneMenu id="item" 
        value="#{outerBean.selectedItem}" 
        valueChangeListener="#{outerBean.itemListValueChanged}" 
        style="width: 158px;" required="true" 
        label="Supplier Id" partialSubmit="true"> 
        <f:selectItems value="#{outerBean.itemList}" /> 
      </ice:selectOneMenu> 

      <ice:dataTable id="pdet" value="#{outerBean.nestedClassList}" var="nestedObject" rendered="true"> 

       <ice:column> 
       <f:facet name="header">Order Number</f:facet> 
        <ice:outputText value="#{nestedObject.orderNumber}" /> 
       </ice:column> 

       <ice:column> 
       <f:facet name="header">Qty</f:facet> 
        <ice:inputText value="#{nestedObject.qty}" id="qty" label="'Qty' FOR 'Order Number':#{nestedObject.orderNumber} " 
            partialSubmit="true" 
            valueChangeListener="#{nestedObject.qtyChanged}" 
            validator="#{nestedObject.validateQty}"> 
        </ice:inputText> 
       </ice:column> 
      </ice:dataTable> 
     </h:form> 
    </h:view> 

public class OuterBean{ 

    private List<String> itemList = new ArrayList<String>(); 
    private String selectedItem; 

    private List<NestedClass> nestedClassList = new ArrayList<NestedClass>(); 

    public OuterBean(){ 
     //init values 
    } 

    public void itemListValueChanged(ValueChangeEvent e){ 
     selectedItem = (String)e.getNewValue(); 

     //reset the dataTable record list 
     nestedClassList = getRandomRecords(); 
    } 

    //---getters-setters-----// 

    private class NestedClass{ 

     private int orderNumber; 
     private int qty; 

     NestedClass(){ 
      orderNumber = generateOrderNumber(); 
      qty = getRandomQty(); 
     } 

     //-----qtyChangedListener----// 
     //-----qtyValidator----------// 
     //-----getters-setters-------// 
    } 
} 
+0

更多的澄清表明我們的代碼片段 – 2013-03-03 15:43:00

+0

添加代碼片段 – sura2k 2013-03-03 16:13:30

回答

0

我沒有看到你在itemListValueChanged

chainging nestedObject.qty的組件將不會重新解析,除非它被改變。在ICEfaces的

部分Submit將只更新其值已經改變的組件。

您可以部分提交關於selectOneMenu用於虛假或者你可以重新初始化的inputText在itemListValueChanged的價值。

+0

我添加的'nestedObject's名單。所以每個'nestedObject'都有一個名爲'qty'的屬性。所以這是一個新的價值。 – sura2k 2013-03-06 14:31:32

+0

您可以監視Icefaces將調用的更新監視器的請求receive-updated-views。你正在使用哪種版本的icefaces? – 2013-03-06 15:27:57