연습 할 때 사용자가 로그인 할 때까지 사용할 수없는 메뉴 모음을 사용하고 싶습니다. 사용자가 로그인하면 업데이트를 트리거 할 항목을 호출하려고합니다. 메뉴 바는 master.xhtml
템플릿 파일에호출 템플릿의 메뉴 막대를 업데이트하는 방법
masterMenuBar
내 정의 된 라벨에 상황에 맞는 업데이트를 호출 내 행운을 시도
public void refreshForm() {
RequestContext context = RequestContext.getCurrentInstance();
context.update("form1");
context.update("masterMenuBar");
}
양식을 새로 고치 코드가 로그인의 일환으로
<h:form >
<p:menubar id="masterMenuBar">
<p:menuitem disabled="#{backing.disableMenu}" value="List users" />
</p:menubar>
</h:form>
그러나 RequestContext
에는 분명히 내 전화 템플릿 양식이 포함되어 있지 않습니다.
내 메뉴 막대에 컨텍스트 업데이트를 포함 할 수있는 다른 컨텍스트가 있습니까? 아마도 나는 잘못된 길을 가고 있습니다. 그리고 같은 것을 성취하기위한 더 좋은 방법이 있습니까?
브라우저 크기를 조정해도 콩을 다시 호출하는 데 충분하지 않은 것을 알았습니다. backing.disableMenu
콩. 분명히 두 번째 콩에 내 콩이 도달하게하려면 상당히 강한 것을 필요로합니다.
나는 당신을 혼란스럽게 만들었습니다. 두 개의 양식이 있습니다. 하나는 마스터 템플리트이고 다른 하나는 welcome.xhtml 파일입니다. welecome 사람은 id = "form1"을 가지고 있습니다. 그러나, 만약 내가해야 할 일은 context.update (": masterMenuBar")입니다. 나는 그것을 시도 할 것이다. –
양식 안에있는 경우에도 작동하지 않습니다. 절대 클라이언트 ID는': form1 : masterMenuBar'가되어야합니다. 생성 된 HTML 출력을 확인하십시오. 그런데 얼마나 많은 템플릿/당신이 사용하는지는 중요하지 않습니다. 단지 하나의 UIViewRoot가 있습니다. – BalusC
귀하의 조언에 감사드립니다. 나는 내가 생각할 수있는 모든 것을 시도해 왔지만 한번 이상 내 브레이크 포인트에 부딪치게 할 수는 없다.
를 사용하지 않으려 고 생각했기 때문에 id =를 한 줄 위로 이동했습니다. 그것은 아무런 효과가 없었습니다. 내가 조합을 시도 : masterMenuBar, 마스터 : masterMenuBar 및 : 마스터 : masterMenuBar 아무것도 작동하지 않습니다. 중단 점에 한 번만 도달합니다. –