2010-08-23 1 views
0

JSTL이 JSF의 렌더링 단계에 잘 섞이지 않는다고 들었 기 때문에 c : forEach를 사용하지 않으려 고합니다. 그 주장은 전혀 틀림이 없습니다. 반대로 나는 ui 대신 repeat c : forEach 대신에 c : forEach를 사용해야만했다. 왜냐하면 ui : repeate가 단순히 콜렉션을 반복하지 않기 때문이다. 이것은 많은 경우에 내가 그 이유를 분리 할 수없고 모든 이 경우 c : forEach는 매우 잘 작동하는 대체품이었습니다. 내 질문에 대한 c : forEach 제대로 작동하지 않는 한 경우에 대한 및 ui : repeat 컬렉션에서 아무것도 반환하지 않는 경우에도 (html 태그를 올바른 횟수만큼 반복하는 경우에도).c : forEach vs UI : repeat (일명 ice : panelSeries)

c : forEach 내부에서 작성된 JSF 구성 요소가 c : forEach 본문에 데코 레이팅 HTML 태그를 남겨두고 페이지의 다른 위치로 렌더링되는 경우가 있습니다. 이는 F5를 사용하여 새로 고침을 할 때 (특히 Ctrl + F5를 사용하여 다음 번 새로 고침을 할 때 대부분 고정되어 있음)에만 적용됩니다.

나는 완전히 당혹스럽고 무슨 일이 일어나고 있는지에 대해 어떤 생각이라도 고맙게 여길 것이다. 왜 ui : repeat (그리고 ice : panelSeries)는 콜렉션에서 값을 되찾지 않는가? 왜 c : forEach 산란은 모든 곳의 콘텐츠입니다 (JSf 구성 요소 트리를 만드는 동안 경합 조건처럼 보입니다. 아마도 렌더링은 c : forEach를 기다려야하고 그렇지 않습니다)? 왜이 경우에만 일어 났습니까?

무엇을 포함해야할지 모르겠으므로 코드 스 니펫이나 스크린 샷을 포함하지 않아서 유감입니다 .. 문제가 너무 일반적입니다. 하지만 당신은 내 구문이 맞다는 것을 확신 할 수 있습니다 ... 이미 확인했습니다 .. 그리고 나는 상태 변수를 사용하지 않습니다 (이것은 UI에서 너무 많은 문제를 일으 킵니다 : 반복).

+0

어서 오십시오. 예를 들어주십시오 : 이것은 많은 경우에 일어났습니다. 나는 그 이유를 알 수 없습니다. – Dejell

답변

1

UI : repeate 단순히 에 수집 다음 코드는 작동

를 반복하지 않습니다

<ui:repeat value="#{myCollection}" var="item"> 
    <h:outputText value="#{item}" /> 
</ui:repeat> 

왜이 경우에만 일어 났습니까? this case의 예없이

그러나, c:forEach vs ui:repeat document 당신이 이유를 발견하는 데 도움이 될 수 있습니다 .. 알고 어렵다.