JSF с Ajax возникают проблемы с отображением - PullRequest
0 голосов
/ 26 февраля 2011

У меня есть следующий метод в диспетчере, который вызывается при размытии текстового поля PatientId на странице JSF

private Patient patientData; //also have get and set 

public void search(ActionEvent actionEvent){
                 String aPatientId   = (String)getPatientInputTextField().getSubmittedValue();
                 Session s = null;
              try{
               s = HibernateUtil.getSession();
               StringBuffer sql =new StringBuffer("  from Patient p ");
               if(!(aPatientId == null || aPatientId.length() ==0 )){
                sql.append(where);
                sql.append(" p.pid=:patientId ");
                pidflag=true;
               }
               Query qList1 = s.createQuery(sql.toString());
               Integer patientId = aPatientId == null || aPatientId.length() == 0? 0 : Integer.valueOf(aPatientId);
               qList1.setInteger("patientId", patientId);
               int size = qList1.list().size();
               if(size > 0 ){
                 patientData = (Patient)qList1.list().get(0);
               }else if(size ==0 ){
                 System.err.println("NO MATCH FOUND");
                }
             }catch(Exception exception){
                 exception.printStackTrace();
             }
    }

У меня следующий код в JSF

<t:inputText id="patientId" binding="#{Manager.patientInputTextField}" 
        value="#{patient.pid}" readonly="#{readonly}">

<a4j:support event = "onblur" immediate="true"
         actionListener = "#{Manager.search}"  reRender = "firstName,lastName,phoneNum"/>
</t:inputText>
<t:inputText id='lastName'  value="#{patient.lastName}" />
<t:inputText id='firstName' value="#{patient.firstName}"/>
<t:inputText id='phoneNum'  value="#{patient.phoneNum}" />

когда я проверяю объект PatientData в менеджере, я получаю значения firstName, lastName & phonenumber без каких-либо проблем, данные возвращаются менеджером

Приведенный выше JSP является включенным Jsp (info.jsp), который включен в main.jsp

<f:view>
<h:messages ></h:messages>
<body>
<h:form id="headerinclude">
    <t:aliasBeansScope>
        <t:aliasBean alias="#{patient}" value="#{Manager.patientData}" />
          <f:subview id="billingView">
            <%@ include file="info.jsp"%>
          </f:subview>
    </t:aliasBeansScope>

Теперь я не могу отобразить значения для firstName, lastName и phoneNumber, которые возвращаются объектом PatientData в диспетчере

Буду признателен за любую помощь / указатели в решении этой проблемы, пытаясь решить эту проблему уже с недели

1 Ответ

0 голосов
/ 04 марта 2011

Я не делал следующее в диспетчере, из-за чего значения не были установлены в JSP

patientInputTextField.setSubmittedValue (нуль); patientFNameTextField.setSubmittedValue (нуль); patientLNameTextField.setSubmittedValue (нуль); patientPhoneNumTextField.setSubmittedValue (нуль);

...