2014-04-28 4 views
0

현재 "재구성"이 필요한 프로젝트에서 작업하고 있지만 여전히 돈이 없습니다. 그래서 나는 내 앞에있는 것을 처리해야합니다. . 이 <h:form> 내에서 직접 ID를 msg<h:messages>이 - 당신이 볼 수 있듯이p : 아약스 <h:messages> 속성에 대한 참조로 글로벌 HTML ID 사용

<h:form> 
    <h:messages id="msg"/> 
    <p:accordionPanel value="#{exerciseBean.getCategoriesInGrade(5)}" var="category"> 
     <p:tab title="#{category.categoryName}"> 
      <h:panelGrid columns="1" cellpadding="5"> 
       <ui:repeat value="#{exerciseBean.getSingleChoiceInGrade(5, category.categoryName)}" var="exercise"> 
        <div>#{exercise.getText()}</div> 
        <p:selectOneRadio value="#{exerciseBean.data}" > 
         <f:selectItems value="#{exercise.getChoices()}" var="c" itemLabel="#{c.id}" itemValue="#{c.id}" /> 
         <p:ajax event="change" process="@this" listener="#{exerciseBean.validateInput(exercise.getId())}" update="msg"/> 
         </p:selectOneRadio> 
       </ui:repeat> 
      </h:panelGrid> 
     </p:tab> 
    </p:accordionPanel> 
</h:form> 

하기 :이 코드 예제에서 볼 수 있듯이 나는 라디오 버튼의 모든 변경 상에 메시지를 표시해야합니다. 이제 문제 : "msg ''식별자가있는 구성 요소를 찾을 수 없습니다. 나는 지금 접두어 :로 시도했지만 여전히 같은 문제가있다. PrimeFaces/JSF가이 "global-id"를 참조하도록하는 방법이 있습니까? 내 백엔드에서

나는 다음과 같은 메시지를 보내

FacesMessage facesMessage = new FacesMessage("Right Answer!"); 
FacesContext.getCurrentInstance().addMessage(null, facesMessage); 

감사합니다.

답변

1
  1. 양식에 ID가 필요합니다.
  2. 그런 다음 ajax 업데이트 속성에서 msg에 대한 참조를 수정해야합니다.

그래서 다음과 같이 코드를 변경해야합니다.

1. <h:form id="formID" >

2. <p:ajax event="change" process="@this" listener="#{exerciseBean.validateInput(exercise.getId())}" update=":formID:msg"/>

+0

내가 그것을 순간위한 시도 :) 감사를 줄 것이다! – DominikAngerer

+0

완벽한 답변! 고마워요 - 이미 사용하고있는 것만으로도 해봤습니다 : msg하지만 고정 된 formID와 : 그것은 꼭해야만합니다! – DominikAngerer

+1

네 멋지다! :) 도와 주셔서 감사합니다. –