sourcetip

JSF(Primefaces) ID별 여러 요소의 Ajax 업데이트

fileupload 2023. 3. 14. 21:50
반응형

JSF(Primefaces) ID별 여러 요소의 Ajax 업데이트

JSF에 관한 질문이 하나 더 있습니다.특히, 프라임페이스.
동시에 ID별 요소의 Ajax 업데이트에 다음과 같은 문제가 발생하였습니다.페이지의 요소가 1개씩 진행되면 해당 Ajax 업데이트는 OK를 수행합니다.

<ui:repeat value="#{showProducts.inCart}" var="cart">
 <td><p:spinner min="0" value="#{cart.count}" immediate="true">
 <p:ajax process="@this" update="count,subTotal"/></p:spinner></td>         
 <td><h:outputText value="#{cart.totalPrice}" id="count"/></td>
 <h:outputText value="#{showProducts.subTotal}" id="subTotal"/>      
</ui:repeat>

여기서 ID가 "count"인 요소가 첫 번째이고 ID가 "subtotal"인 요소가 두 번째입니다.페이지의 요소가 엄밀하게 1개씩이 아닌 경우, "subtotal" ID를 가진 두 번째 요소는 업데이트되지 않습니다.

    <ui:repeat value="#{showProducts.inCart}" var="cart">
      <td><p:spinner min="0" value="#{cart.count}" immediate="true">
<p:ajax process="@this" update="count,subTotal"/></p:spinner></td>         
      <td><h:outputText value="#{cart.totalPrice}" id="count"/></td>
      <td><h:outputText value="#{cart.place}" /></td>
    </ui:repeat>
    <h:outputText value="#{showProducts.subTotal}" id="subTotal"/> 

정상적인 동작입니까, 아니면 일부 매개 변수를 놓쳤습니까?

갱신할 컴포넌트가 같은 컴포넌트 내에 없는 경우(ui:repeat,h:form,h:dataTable, etc)를 사용하여 "절대" 클라이언트 ID를 지정해야 합니다.접두사:(디폴트)NamingContainer구분 문자)를 사용하여 루트부터 시작합니다.

<p:ajax process="@this" update="count :subTotal"/>

확실히 하기 위해서, 의 클라이언트 ID 를 확인해 주세요.subTotal컴포넌트를 생성할 수 있습니다.예를 들어 안에 있는 경우h:form또한 클라이언트 ID가 앞에 붙기 때문에 그에 따라 수정해야 합니다.

<p:ajax process="@this" update="count :formId:subTotal"/>

ID는 공백으로 구분하는 것이 좋습니다.<f:ajax>콤마 분리를 지원하지 않기 때문에 시작자가 혼란스러워할 수 있습니다.

언급URL : https://stackoverflow.com/questions/4474789/jsfprimefaces-ajax-update-of-several-elements-by-ids

반응형