2014-02-21 5 views
0

У меня есть h:inputText с valueChangeListener, когда пользователь введите код еще h:inputText отображения данных из MySQL о том, что код, в valueChangeListener работ, но второй 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

Вам нужно добавить идентификатор для второго '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; 
} 

С добытчиками и т.д .. в основном на изменения, выстреливает Аяксу, вы база данных звоните и т.д., то он возвращает ответ и обновляет другое поле ввода, это гораздо более чистый способ, чем пытаться отправить формы и т. д.

Также вы уверены, что хотите область сеанса?

 Смежные вопросы

  • Нет связанных вопросов^_^