2011-07-05 4 views
1

복합 컴포넌트 (cc)가 inputText-Field를 작성합니다. 중요한 부분은 모델 속성 "visible"에 따라 렌더링된다는 것입니다. 모델은 parm "name"을 통해 구성 요소에 제공됩니다. 뷰에서 JSF 2 복합 컴포넌트 렌더링 문제

<cc:interface> 
    <cc:attribute name="name" required="true"/> 
</cc:interface> 
<cc:implementation componentType="ch.sbi.pt.components.PMSInputText"> 
     <h:inputText value="#{cc.attrs.name.value}" rendered="#{cc.attrs.name.visible}"/> 
</cc:implementation> 

i는 2 셀/행과 panelGrid이 : 첫 번째 행은 라벨과 내 CC를 가지고 두 번째는 중요하지 않습니다. 라벨은 my cc와 동일한 모델 속성으로 렌더링됩니다. "false"를 반환 -property "볼"경우

<h:panelGrid columns="2"> 
    <h:outputText value="Name" rendered="#{person.name.visible}"/> 
    <sbic:pmsInputText name="#{person.name}"/> 
    <h:outputText value="Next Label"/> 
    <sbic:pmsInputText name="#{something.name}"/> 
</h:panelGrid> 

결과 (그리고 문제가), 다음과 같다 : 구성 요소의 없음 (! 완벽한) 렌더링되지 않지만 CC 결과 HTML이 빈 셀 잎 (예 : <td></td>)는 추한 layouted HTML - 테이블에 어떤 결과() 하나의 셀 오프셋 :

<table> 
<tbody> 
<tr> 
<td></td> 
<td>Next Label</td> 
</tr> 
.... 

를 지금까지 내가이 라이프 사이클 (JSF 대 JSTL)과 관련이있다 이해 : 내 CC는 렌더링 전에 <h:outputText../>하지만, 어떻게 빈 셀을 제거 할 수 있습니까 (예 : <td></td>)? 내가 여기서 뭔가를 놓치고 있니?

고맙습니다. 전문가의 도움을 받으십시오! 마크

+0

"JSTL vs JSF"란 무엇을 의미합니까? 여기에는 JSTL에 대한 어떠한 수단도 없습니다. JSTL이 무엇인지 혼란 스럽거나 오해하지 않습니까? 읽기 : http://stackoverflow.com/tags/jstl/info – BalusC

+0

예. 내 잘못. 고맙습니다. – MarcG

답변

2

이것은 전적으로 예상됩니다. 복합 컴포넌트 입니다. 그것의 아이들 만이지 않는다. 대신 rendered 특성을 복합 구성 요소로 이동해야합니다.

<sbic:pmsInputText name="#{person.name}" rendered="#{person.name.visible}" /> 
+0

그래, 문제가 생겼다. 고맙습니다. 구성 요소를 사용하려는 나의 의도는 "렌더링 된"- 및 "읽기 전용"- 특성을 캡슐화하여 효율성을 높이고 가독성을 높이는 것입니다 (xhtml의 이름 특성 만). 나는 jsf로 작은 webapp의 프로토 타입을 만들라는 명령을 받았고, 복잡성 때문에 jsf에 대한 의구심을 없애기 위해 깨끗하고 쉬운 코드로 인상을주고 싶었다. – MarcG

+0

복합 구성 요소 위키 페이지의 예제가 더 유용 할 수 있습니다. 질문 아래의'[composite-component]'태그 위에 마우스를 놓고 팝업이 나타날 때까지 기다렸다가 그 안에있는 * info * 링크를 클릭하십시오 : http://stackoverflow.com/tags/composite-component/info 레이블/입력/메시지 그룹을 사용하는 대신 간단한 태그 파일을 대신 사용하는 것이 좋습니다. 이 답변에서 예제를 찾을 수 있습니다. http://stackoverflow.com/questions/5713718/how-to-make-a-grid-of-jsf-composite-component/5716633#5716633 – BalusC

+0

다시 한 번 감사드립니다, BalusC. 제안 된 태그 파일을 사용하겠습니다. 내가 이걸 붙잡 았기 때문에 내 하루를 구했다. – MarcG

관련 문제