加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何在独立应用程序中使用Java Facelets作为通用模板引擎?

发布时间:2020-12-15 02:24:28 所属栏目:Java 来源:网络整理
导读:我想使用Facelets生成 HTML内容.我想重用现有的taglibs,这是Velocity不支持的. 我已阅读开发人员的指南,但没有得到线索. Facelets是否需要Java编译器才能工作? (我猜不是)我也试过Jetty ServletTester,但似乎不行. 那有可能吗? 解决方法 是的,这是可能的.
我想使用Facelets生成 HTML内容.我想重用现有的taglibs,这是Velocity不支持的.

我已阅读开发人员的指南,但没有得到线索.

Facelets是否需要Java编译器才能工作? (我猜不是)我也试过Jetty ServletTester,但似乎不行.

那有可能吗?

解决方法

是的,这是可能的.

没有必要使用Java编译器来呈现视图. Facelets完全由taglib驱动,模板脚本中可能只发生EL(表达式语言),因此不需要进行静态编译.

要将Facelets嵌入独立应用程序,您可以编程初始化servlet上下文.我在这种情况下使用Jetty.查看ServletTester类的实现,并编写自己的服务器.

值得一提的是jsf-ri不能正常工作,但是,幸运的是我们有另一种选择,我们可以使用更好的myfaces-impl.

主要问题仍然是ResourceResolver.如果您需要设置复杂的资源结构,即模板文件(xhtml)放在不同的位置,那么您需要:

>创建自己的ResourceResolver委托DefaultResourceResolver.>覆盖org.mortbay.jetty.servlet.Context.getResource()以使其返回ResourceResolver的一致资源.或者类似的,如果嵌入式servlet上下文不是基于Jetty的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读