如何在独立应用程序中使用Java Facelets作为通用模板引擎?
我想使用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的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |