2012-08-25 4 views
1

정보로 채워진 dataTable이 있습니다. 선택한 하나의 rown에서 "onRowSelect"메서드가 호출됩니다. "주문 번호"outputText 항목은 ProductOrder 개체에서 검색 한 값으로 채워집니다.jsf 페이지에서 도메인 oject 속성을 다시 업데이트하십시오.

/* Filter bean */ 
public void onRowSelect(SelectEvent event) { 
    NewOrderBean currentOrder = (NewOrderBean) FacesUtils 
      .getManagedBean("newOrderBean"); 
    currentOrder.setOrderNum(((ProductOrder) event.getObject()).getOrderNum()); 
} 

/* newOrderBean */ 
public int update() { 
    ProductOrder pt = new ProductOrder(); 
    try { 
     pt = productService.findOrderbyNum(orderNum).get(0); 
    } catch (Exception e) { 
     return 0; 
    } 

    pt.setOrderNum(orderNum); 

    try { 
     FacesMessage msg = new FacesMessage("Product updated with: ", orderNum); 
     FacesContext.getCurrentInstance().addMessage(null, msg); 
     return 1; 
    } catch (Exception e) { 
     return 0; 
    } 
} 

사용자는 "주문 번호"에 새 텍스트를 입력 한 후 업데이트를 눌러 제품 주문 번호를 수정하십시오.

<!-- JSF page --> 
<ui:define id="content" name="contentBody"> 
    <h:form class="ViewResservation" id="viewPanel"> 
     <p:tabView id="tabView"> 
      <p:tab title="Client" id="tab1"> 
        <h:outputText value="Order number " /> 
       <p:inputText id="ordr" value="#{newOrderBean.orderNum}" /> 
       </p:tab> 
      </p:tabView>  
    </h:form> 
</ui:define>   
    <ui:define name="footer"> 
     <h:form> 
      <h:commandButton value="Update" 
       actionListener="#{newOrderBean.update}" /> 
     </h:form> 
    </ui:define> 

새 텍스트를 입력하고 Update를 누르면 값 (orderNum)이 그대로 유지됩니다. 사용자가 값을 입력하고 ProductOrder 객체를 새 주문 번호로 업데이트하려면 어떻게해야합니까?

답변

1

탭은 tabview 요소 안에 있어야합니다. 당신은 거꾸로했습니다.

문제가 있으면 주문 번호가 한 양식으로 설정되고 제출 버튼이 다른 양식으로 설정됩니다. 주문 번호가 제출되지 않으면 동일한 양식에 둘 다 넣어야합니다.

+0

예, 작동합니다. 감사합니다. siebz0r. 나는 나의 경우에 "Update"를 누를 때마다 그리고 행 중 하나가 선택 될 때마다 그 사실을 알아 챘다. 페이지 새로 고침과 onRowSelect 메서드가 다시 호출됩니다. 왜 이런 일이 일어나는가? – alex

+0

페이지를 새로 고치는 이유를 알 수 없습니다. onRowSelect는 아마도 ajax 이벤트가 같은 형식이기 때문에 호출 될 것입니다.하지만이 사실을 확실히 알지 못합니다. 또한 내 대답이 귀하의 질문에 대한 답변이라면, 동의라고 표시하십시오. ;-) – siebz0r

+0

예, 확실한 남자. 너 나 많이 도와 줬어! – alex

관련 문제