2016-10-13 60 views
0

按照HTML標準的嵌套形式不允許的,JSF遵循同樣的事情,但如果我們有設計像下面JSF中的嵌套表單概念?

MainPage.xhtml

<ui:composition template="../templates/home.xhtml"> 
     <ui:define name="content"> 
      <h:form> 
       <rich:panel> 
.......................................... 
.......................................... 
       </rich:panel> 
    <rich:panel> 
    <ui:insert name="createLinkTemplate"> 
    <ui:include src="../pages/page.xhtml" /> 
    </ui:insert> 
    </rich:panel> 
<h:form> 
</ui:define> 
</ui:composition> 

裏面的內容page.xhtml

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:a4j="http://richfaces.org/a4j" 
    xmlns:rich="http://richfaces.org/rich" 
    xmlns:fn="http://java.sun.com/jsp/jstl/functions"> 
<h:head> 
</h:head> 
<h:body> 
    <h:form id="formID"> 

     <rich:panel> 
.......................... 
............................ 
............................ 
     </rich:panel> 
</h:form> 
</h:body> 
</html> 

這是根據嵌套情況?

家庭的template.xhtml內容

<?xml version='1.0' encoding='UTF-8' ?> 
<!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:h="http://java.sun.com/jsf/html" 
     xmlns:f="http://java.sun.com/jsf/core" 
     xmlns:ui="http://java.sun.com/jsf/facelets" 
     xmlns:a4j="http://richfaces.org/a4j" 
     xmlns:rich="http://richfaces.org/rich" 
     xmlns:c="http://java.sun.com/jsp/jstl/core"> 
................................................... 
................................................... 
................................................... 
<rich:panel styleClass="tabs-main" id="tabsMain"> 
     <h:form id="contentform"> 
      <ui:insert name="content"/> 
     </h:form> 
</rich:panel> 
</h:body> 
</html> 

隨着這一個問題首先我很alnding到Main.xhtml頁從這裏我要page.xhtml,當從有我回來了所有我在文本框中寫入的值或者從下拉列表中選擇的值消失了,並且我得到了一個空格式。

+0

它會給出任何錯誤嗎? – Nurjan

+1

只要不在主模板中使用''。在需要時使用它在模板客戶端中。多個平行形式非常好(術語「嵌套形式」是完全不同的)。 – Tiny

+0

@你是不是指''ui:include'或'ui:insert'和'h:form'裏面的'h:fom'不是嵌套形式? –

回答

1

表格嵌套在結果頁面中時嵌套 - 模板和包含的形狀與此無關。

瀏覽器無法知道<form>標籤來自何處。它看到的只有兩個表單標籤,一個放置在另一箇中。

+0

請看看這裏http://stackoverflow.com/questions/379610/can-you-nest-html-forms –

+3

@SubodhJoshi:這個改變是什麼?嵌套形式是禁止的,它與如何排列facelet模板無關。 – fdreger