2011-05-09 42 views
1

我在做一個使用Spring,JSP和Tiles的Java Web項目。在我們上一個項目中,我們使用Facelets <ui:composition><ui:define>標籤將JS和CSS庫包含在模板的標題中。我想知道是否有辦法使用Tiles來做同樣的事情。如何做使用瓷磚的類Facelets模板組合?

這裏就是我想要做的Facelets主模板的一個例子:

<html 
    xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:sec="http://www.springframework.org/security/facelets/tags"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta> 
     <title><ui:insert name="title">MediMercado</ui:insert></title> 
     <link href="${request.contextPath}/css/layout.css" rel="stylesheet" type="text/css" /> 
     <ui:insert name="additional-js"></ui:insert> 
    </head> 
    <body> 
     <ui:insert name="content"> 
      <ui:include src="main-content.xhtml"/> 
     </ui:insert> 
    </body> 
</html> 

頁面模板:

<ui:composition template="/layout/layout.xhtml" 
    xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:ui="http://java.sun.com/jsf/facelets"> 
    <ui:define name="additional-js"> 
     <script src="${request.contextPath}/js/jquery.js" type="text/javascript"></script> 
    </ui:define> 
    <ui:define name="content"> 
     <h1>Just an example</h1> 
    </ui:define> 
</ui:composition> 

所以在這個例子中jQuery庫我們頁面模板已包含在主模板的HTML頭部中。

我們該如何使用Tiles來做到這一點?

+0

JSTL,主要是流量控制和實用標籤庫,提供關於模板完全無關。所以忘了它。我已經從問題中刪除了JSTL參考,這樣它就不那麼嘈雜。此外,Facelets在技術上是JSP的繼承者,所以我真的很想知道爲什麼你會回到JSP這裏。除了基本上是JSP taglib的Tiles之外,您還可以考慮查看FreeMarker或Velocity,它們是獨特的模板技術。但是我沒有把他們全都做,我不能詳細談談。 – BalusC 2011-05-10 03:14:59

+0

感謝您的更正!我目前正試圖瞭解Tiles教程,基本上我們從Facelets改變了,因爲我們使用Spring Security和facelets會給我們帶來一些會話問題。由於我無法決定使用Tiles,我必須使用它! – Jeeba 2011-05-11 14:19:06

+0

你的意思是由Facelets創建不必要的會話?這已在Mojarra 2.1.x中修復。考慮更新JSF庫http://javaserverfaces.java.net/ – BalusC 2011-05-11 14:24:16

回答

1

Tiles Tutorial涵蓋了這個主題。

(提示:在瓷磚的文件比JSF更分開)

+0

謝謝,雖然不是答案,我閱讀教程找到答案。 – Jeeba 2011-05-10 19:34:58

+1

現在我把Javascript代碼放在身上。我無法在Tiles教程中找到任何可以幫助我的東西。 – Jeeba 2011-05-17 21:05:05