2012-10-18 6 views
2

복합 입력 텍스트와 같은 하나의 복합 구성 요소를 작성합니다.이 양식은 완전한 양식을 제공합니다 (검색 양식이 표시되고 사용자가 선택한 결과 목록 중 하나가 선택됩니다).양식을 포함하는 복합 구성 요소의 문제점

<composite:implementation> 
    <div id="#{cc.clientId}" class="#{cc.attrs.styleClass}"> 
     <h:inputText id="txtIdentificador" ...> 
     <h:graphicImage id="imgIdentificador" ...> 
     <h:inputText id="txtDescripcion" ...> 
     <h:form id="formF2ItemWidget"> 
     ... 
     </h:form> 
    </div> 
</composite:implementation> 

논리적으로 다른 형식을 사용하고 싶습니다.하지만 문제가 있습니다. 예 :

<h:form id="formOuter" > 
    <h:outputLabel value="Texto1" /> 
    <trkal:itemwidget id="txtTexto1"> 
    ... 
</h:form> 

생성 된 HTML에는 내부 양식 (formF2ItemWidget)이 없으며 id = formOuter 인 양식 만 있습니다. 하지만 아래 예제에서 :

<h:form id="formOuter" > 
    <h:outputLabel value="Texto1" /> 
    <trkal:itemwidget id="txtTexto1"> 
    <h:outputLabel value="Texto2" /> 
    <trkal:itemwidget id="txtTexto2"> 
    ... 
</h:form> 

txtTexto1의 형식은 존재하지 않지만 txtTexto2의 형식이 존재합니다. 왜?

이 문제없이 양식을 포함하는 복합 구성 요소를 작성하려면 어떻게해야합니까? 나는 인 Mojarra 2.1.7을 사용하고

는 자바 6.0 Y 톰캣 7.0

답변

5

중첩 <form> 요소는 HTML에서 illegal입니다. JSF는 HTML 코드 생성기이므로 여기서는 JSF로 어떤 마법도 수행 할 수 없습니다.

그냥 네스트 <h:form> JSF의 구성 요소도 마찬가지입니다. 컴포지트에서 해당 <h:form>을 제거하고 "하위 양식"을 처리하는 다른 방법을 찾으십시오.

+0

하위 양식을 처리하는 몇 가지 다른 방법을 알고 계십니까? – Joxeja

+0

구체적인 기능 요구 사항에 따라 다르지만 그 것에 대해 아무 것도 말하지 않았습니다. 하나는 ajax를 사용하여 부분적으로 양식을 실행하는 것입니다. – BalusC

+0

나는 그것을하려고 노력했다. 폼을 제거하고 f : ajax 태그를 사용하여 atribute에 inputtext, inputhidden의 목록을 실행합니다. 서버 측에서 캡처하려고하지만이 속성의 setter 함수가 실행되지 않습니다. 도움? – Joxeja

관련 문제