2013-06-06 4 views
1

두 개의 영역, 도구 모음 및 내용이 정의 된 간단한 템플리트가 있습니다. 툴바 영역에는 많은 commandButton이 있고 내용에는 필드가 있습니다. 내 문제는 : 두 ui : define 사이에 단일 폼을 사용하는 방법? 두 양식 사이에 단일 양식 사용 방법 : define

<ui:composition template="/WEB-INF/templates/layout.xhtml"> 

    <ui:define name="toolbar"> 
     <p:commandButton id="saveButton" value="Save" ajax="false" action="#{...}" /> 
    </ui:define> 

    <ui:define name="content"> 
     <h:form id="registerForm"> 
      <p:outputLabel for="name" value="Name"/> 
      <p:inputText id="name" value="#{...}" required="true" /> 
      <p:message for="name"/> 
     </h:form> 
    </ui:define> 

</ui:composition> 

드 saveButton 트리거입니다

에서, 시간 : 폼 registerForm 제출해야

나는 샘플 코드를했습니다.

아무나 제안 사항이 있으십니까?

+0

이유를 한 가지 형태는 사용할 수있는 명령이있을 때 때문에

의 값을 클릭하지 않았습니다. 내 액션은 NullPointerException을 발생시킵니다. 추신 : 나는 ajax를 사용하여 값을 제출하고 싶지 않습니다. –

+0

하나의 양식을 사용해야하는 이유가 있습니까? – Tankhenk

+0

아니요, 두 가지 양식으로이 문제를 해결할 수있는 감정이 있다면 알려주세요. 유일한 필수 조건은 다음과 같습니다. 템플릿에 두 개의 영역을두고 Ajax를 사용하여 콘텐츠 양식을 제출하지 않습니다. 너 나 좀 도와 줄 수있어? –

답변

0

이 문제는 ui : decorator로 해결되었습니다. "하위 템플릿"처럼 ui : decorator를 사용하면 많은 ui : define 사이에 양식을 넣을 수 있습니다. 도움이되기를 바랍니다.

템플릿 decorate.xhml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:ui="http://java.sun.com/jsf/facelets"> 

    <ui:define name="toolbar"></ui:define> 

    <ui:define name="content"></ui:define> 
</html> 

자세한 내용은 register.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:ui="http://java.sun.com/jsf/facelets" 

    <ui:composition template="/WEB-INF/templates/layout.xhtml"> 
     <ui:define name="content"> 
      <h:form id="registerForm"> 
       <ui:decorate template="/WEB-INF/templates/layout-decorator.xhtml"> 

        <ui:define name="toolbar"> 
         <p:commandButton id="saveButton" value="Save" ajax="false" action="#{...}" /> 
        </ui:define> 

        <ui:define name="form"> 
         <p:outputLabel for="name" value="Name"/> 
         <p:inputText id="name" value="#{...}" required="true" /> 
         <p:message for="name"/> 
        </ui:define> 
       </ui:decorate> 
      </h:form> 
     </ui:define> 

    </ui:composition> 
</html> 

참조 : http://docs.oracle.com/javaee/6/javaserverfaces/2.0/docs/pdldocs/facelets/ui/decorate.html