使用 Ajax 的 jsf 存在映射问题

发布于 2024-10-19 05:14:10 字数 2388 浏览 5 评论 0原文

我在管理器中有以下方法,该方法在 jsf 页面上的病人 ID 文本字段模糊时调用。

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}" />

得到了名字、姓氏和名字的值。电话号码没有任何问题,数据已由管理器返回

上面的 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 的值,即由管理器中的病人数据对象返回

任何解决此问题的帮助/指针将不胜感激,自一周以来尝试解决此问题

I have the following method in the manager which is called on blur of the patientId text field on a jsf page

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();
             }
    }

I am having the following code in the 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}" />

when I check the patientData object in the managerI get the values of firstName,lastName & phonenumber without any issues the data is been returned by the manager

The above JSP is an include Jsp (info.jsp) which is been included in the 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>

Now I am not able to render the values for firstName, lastName and phoneNumber which is returned by the patientData object in the manager

Any help / pointers in solving this would be appreciated trying to resolve this since a week now

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

攒一口袋星星 2024-10-26 05:14:10

我没有在管理器中执行以下操作,因为未在 JSP

PatientInputTextField.setSubscribedValue(null); 中设置值;
PatientFNameTextField.setSubscribedValue(null);
PatientLNameTextField.setSubscribedValue(null);
PatientPhoneNumTextField.setSubscribedValue(null);

I was not doing the following in the Manager due to which the values were not setted in the JSP

patientInputTextField.setSubmittedValue(null);
patientFNameTextField.setSubmittedValue(null);
patientLNameTextField.setSubmittedValue(null);
patientPhoneNumTextField.setSubmittedValue(null);

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文