【发布时间】:2011-05-24 00:15:29
【问题描述】:
是否可以将 JSF facelets 和 ManagedBeans 打包到 JAR 文件中?这样我们就可以在不同的war/ear项目中使用这个代码和UI组合了?
我不是在谈论 JSF 组件!
如果是 - 你能指点我一篇教程或博客文章吗
我需要有关 Jar 结构和 Jar 中所需的其他文件的详细信息?
谢谢麦克斯
【问题讨论】:
标签: jsf jakarta-ee jar facelets packaging
是否可以将 JSF facelets 和 ManagedBeans 打包到 JAR 文件中?这样我们就可以在不同的war/ear项目中使用这个代码和UI组合了?
我不是在谈论 JSF 组件!
如果是 - 你能指点我一篇教程或博客文章吗
我需要有关 Jar 结构和 Jar 中所需的其他文件的详细信息?
谢谢麦克斯
【问题讨论】:
标签: jsf jakarta-ee jar facelets packaging
是的,这绝对是可能的,假设您使用的是 JSF 2.0,它是 Java EE 6 的一部分。
对于托管 bean 和其他 JSF 类,如验证器、转换器等,只需使用 @ManagedBean、@FacesValidator、@FacesConverter 等注释它们,并以通常的方式将它们打包到 JAR 中。您只需在 JAR 中提供与 JSF 2.0 兼容的/META-INF/faces-config.xml 文件。
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
</faces-config>
这样,JSF 将被触发以扫描 JAR 中的类以查找 JSF 特定的注释。或者,您也可以在 JAR 的 faces-config.xml 中以 JSF 1.x 方式注册它们。
对于 Facelets 资源,只需将它们放在 JAR 的 /META-INF/resources 文件夹中即可。它将被视为与 WAR 的公共网络内容相同的方式。
【讨论】: