首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在构建时构建Facelets站点?

如何在构建时构建Facelets站点?
EN

Stack Overflow用户
提问于 2011-07-08 21:39:27
回答 1查看 92关注 0票数 0

我想使用Facelets构建一个静态HTML原型。此原型将发送给没有运行web应用服务器(如Tomcat )的人。有没有办法在构建时(使用Ant等)将Facelets站点编译成一组平面HTML文件?

在最简单的情况下,我们有两个facelets,如下所示:

代码语言:javascript
复制
<!-- layoutFacelet.xhtml -->
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
  xmlns:ui="http://java.sun.com/jsf/facelets">
    <ui:insert name="content" />
</ui:composition>

<!-- implementationFacelet.xhtml -->
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
  xmlns:ui="http://java.sun.com/jsf/facelets"
  template="layoutFacelet.xhtml">
    <ui:define name="content">
        HELLO WORLD
    </ui:define>
</ui:composition>

输出将是单个html (例如"implementationFacelet.output.html"),如下所示:

代码语言:javascript
复制
HELLO WORLD

换句话说,Facelets在构建时而不是呈现时运行,以便生成静态平面文件原型。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-28 19:22:17

我不确定是否有任何现成的解决方案来解决您的问题。然而,多亏了构建时JSF EL验证器的工作,我有一个相当好的想法来实现它,我目前正在添加对facelets的支持。我会这样做:

  1. 设置EL表达式中使用的支持beans等-有多种方法可以做到这一点,我个人会考虑插入我的"value faking EL resolver“,但您也可以确保JSF可以找到您的支持beans,以及如何确保设置了所需的所有值,并手动编译视图并构建其组件树(已实现-请参阅ExperimentalFaceletsElFinder.verifyExpressionsViaComponentTree)
  2. Render

component tree to HTML UIViewRoot.encodeAll(context) -请参见UIViewRoot.encodeAll

因此,这是可行的,但对于以前没有使用过这些东西的人来说,可能太多了。一旦我完成了对Facelets的支持,我将考虑向验证器添加这样的功能,因为那时对我来说将非常容易。

致以最好的问候,雅各布

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6625258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档