2014-10-28 63 views
2

在我的JSF項目中,我嘗試使用JSF傳遞來利用HTML5兼容標記,而不是PrimeFaces組件。但它似乎會導致額外的結束標記爲空元素,如小時,img,br,打破我的佈局。JSF傳遞元素導致雜散結束標記

這是我的代碼,完整。

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:jsf="http://xmlns.jcp.org/jsf"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> 
    <title>JSF Passthrough Test</title> 
</head> 
<body> 
    <form> 
     <input id="inputSearch" size="40" value=""/> 
     <button type="button" class="btn btn-default" jsf:id="searchbutton"> 
      <span class="glyphicon glyphicon-search"></span> Find 
     </button> 
    </form> 
    <img src="http://i.imgur.com/atz81.jpg" alt="Cat + Unicorn"/> 
</body> 
</html> 

這個提供給瀏覽器的是一個額外的關閉img標籤,用於我後面的圖像。 (如果我在按鈕之前移動圖像,沒問題。)

<img src="http://i.imgur.com/atz81.jpg" alt="Cat + Unicorn" /> 
</img> 

有什麼我在這裏失蹤或做錯了嗎?謝謝。

回答

1

有!我創建了一個複製代碼行的項目。我沒有在DOM上呈現額外的img標記,但是,它給我一個JSF警告消息。這是你正在接受的訊息嗎?

如果是這樣,原因是您在您的HTML5標記中缺少一些JSF屬性,例如您的表單,標題和正文標記的jsf:id。如果您沒有指定任何jsf屬性,那麼JSF將忽略此標記,並且不會將其轉換爲JSF等效項。所以,請嘗試以下更改到你的代碼:

<head jsf:id="head"> 
    <!-- YOUR HEADER TAGS HERE --> 
</head> 

<body jsf:id="body"> 
     <form jsf:id="frmMain"> 
      <!-- YOUR BODY TAGS GOES HERE --> 
     </form> 
</body> 

的注意事項,您輸入不指定任何JSF屬性附加傷害。所以,它不是作爲JSF組件呈現的。而且,您並未將bootsrap CSS/JS鏈接到您的頁面中。我假設你只是忽略它。

嗯,我希望它可以幫助你。 CYA!