2014-07-24 3 views
1

나는 템플릿이 있는데이 템플릿에는 <h:form>이 정의되어 있습니다. 이 <h:form>은 엔티티의 CRUD 페이지 응용 프로그램 전체에서 사용됩니다.<f:facet><h:form>

그래서 한 곳에서 파일을 업로드 할 수 있도록 양식에 다른 enctype이 필요합니다. 나는이 방법으로 사용자 정의 enctype을 설정하고 싶었

<h:form id="main-form"> 
    <f:facet name="enctype"> 
     <ui:insert name="form-enctype"/> 
    </f:facet> 

    <ui:insert name="buttons"/><p/> 
    <ui:insert name="content"/><p/> 
    <ui:insert name="buttons"/> 
    <ui:insert name="additionalHelper"/> 

</h:form> 

그리고 콘크리트 페이지에서 : 나는 템플릿에서면으로이 문제를 해결할 수 있습니다 생각

<ui:define name="form-enctype"> 
    <h:outputText value="multipart/form-data"/> 
</ui:define> 

그러나 소스 코드에 난 항상 끝 기본값은 application/x-www-form-urlencoded이고 <h:form>의 경우 enctype

왜 이런 일이 발생합니까? 소스 코드의 다른 위치에서 이것은 올바르게 작동합니다.

+1

패싯이있는 요소 만 패싯을 갖습니다. 당신은 그것을 만들 수 없습니다. – EJP

답변

2

h:form에 대한 참조 페이지는 enctype 패싯을 언급하지 않습니다. 나는 그것이 h:form에 대한 유효한 패싯이라고 생각하지 않습니다. 그러나 속성은 enctype입니다.

특정 페이지에 양식의 콘텐츠 유형을 정의하려면 아래에 표시된 템플릿 매개 변수를 사용하십시오.

템플릿은 같을 것이다

<h:form id="main-form" enctype="#{myenctype}"> 

    <ui:insert name="buttons"/><p/> 
    <ui:insert name="content"/><p/> 
    <ui:insert name="buttons"/> 
    <ui:insert name="additionalHelper"/> 

</h:form> 

특정 페이지 <ui:param name="myenctype" value="multipart/form-data"/>을 정의 할 수 있습니다

<ui:composition template="template.xhtml"> 
    <ui:param name="myenctype" value="multipart/form-data"/> 
    <!-- other stuff like <ui:define ...> --> 
</ui:composition> 

당신이 this question에 설명 된 같은 매개 변수가 삼항 연산자를 사용에 대한 기본 값을 제공합니다.