2011-05-09 76 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