可以将JSF facelets和ManagedBeans打包到JAR文件中吗?那么我们可以在不同的战争/耳朵项目中使用这个代码和UI组合?
我不是在说JSF组件!
我需要有关Jar结构和Jar中需要的其他文件的详细信息?
谢谢Max
解决方法
是的,这绝对是可能的,假设你使用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的公共Web内容相同的方式.
也可以看看:
> Packaging Facelets files (templates,includes,composites) in a JAR