2014-02-21 43 views
0

我有valueChangeListener,當用戶從MySQL另一個h:inputText顯示數據有關代碼鍵入一些代碼,所述valueChangeListener作品但第二h:inputText一個h:inputText不顯示值,而只顯示值做時,我設置了只讀屬性或更改該組件h:outputTextJSF的inputText僅當是只讀真或的outputText

我Facelets頁面是:

<h:form id="idFacturacion"> 
<rich:panel> 
<f:facet name="header"> 
<h:outputText value="FACTURACION AL CLIENTE" /> 
</f:facet> 
<h:panelGrid columns="4"> 
<h:outputText value="Cedula: " /> 
<h:inputText value="#{facturaBean.encFactura.cedula}" onchange="submit();" valueChangeListener="#{facturaBean.processValueChange}" /> 
<h:outputText value="Nombre: " /> 
<h:inputText value="#{facturaBean.encFactura.nombre_cli}" /> 
</h:panelGrid> 
</rich:panel> 
</h:form> 

facturaBean是:

@ManagedBean 
@SessionScoped 
public class FacturaBean { 
    private EncFactura encFactura = new EncFactura(); 
    //getter and setter 
    public void processValueChange(ValueChangeEvent event){ 
     String ced = event.getNewValue().toString(); 
     try{ 
      //do the database thing 
      if(resultSet.next()){ 
       encFactura.setNombre_cli(resultSet.getString("nombre_cli")); 
      }else{ 
       encFactura.setNombre_cli(""); 
      } 
     }catch(SQLException error){ 
      facesContext.addMessage(null, new FacesMessage("Hubo un error SQL.")); 
     } 
    } 
} 
+0

感謝鮑勃·吉爾摩我在這是新和我不會說英語 – AbelTrocha

+0

請參閱 - http://stackoverflow.com/questions/12645593/change-inputtext-value-from-listener-method 和 http://stackoverflow.com/questions/13974989/possible-to-execute-valuechangelistener-for-pinputtext-without-hitting-ent – VeenarM

+0

您需要添加ID爲第二個'inputText'並用ajax重新描繪它。 –

回答

0

請參閱

我建議使用AJAX? 下面是一個例子primefaces但你可以申請RichFaces的..

<h:inputText value="#{facturaBean.stringOne}" >  
<p:ajax event="change" listener="#{facturaBean.processValueChange}" update="strTwo"/> </h:inputText> <h:outputText value="Nombre: " /> 
    <h:inputText id="strTwo" value="#{facturaBean.stringTwo}" /> 
</h:panelGrid> 

private String stringOne= ""; 
private String stringTwo= ""; 


public void processValueChange(){ 
    stringTwo = stringOne; 
} 

的getter等基本的變化,打完阿賈克斯,你做你的數據庫調用等,則返回響應,並更新你的其他輸入字段,這是比嘗試提交表單等更清潔的方式。

另外,你確定你想要的會話範圍?