爪哇EE6>;将JSF facelets(xhtml)和ManagedBeans打包为JAR

爪哇EE6>;将JSF facelets(xhtml)和ManagedBeans打包为JAR,jsf,jakarta-ee,jar,facelets,packaging,Jsf,Jakarta Ee,Jar,Facelets,Packaging,可以将JSF facelets和ManagedBeans打包到JAR文件中吗?这样我们就可以在不同的war/ear项目中使用这种代码和UI组合 我不是在说JSF组件 如果是-你能给我指一篇教程或博客文章吗 我需要有关Jar结构的详细信息以及Jar中需要的其他文件 谢谢Max是的,假设您使用的是JSF2.0,JavaEE6的一部分,那么这是绝对可能的 至于托管bean和其他JSF类,如验证器、转换器等,只需使用@ManagedBean、@FacesValidator、@facescoverter等

可以将JSF facelets和ManagedBeans打包到JAR文件中吗?这样我们就可以在不同的war/ear项目中使用这种代码和UI组合

我不是在说JSF组件

如果是-你能给我指一篇教程或博客文章吗

我需要有关Jar结构的详细信息以及Jar中需要的其他文件


谢谢Max是的,假设您使用的是JSF2.0,JavaEE6的一部分,那么这是绝对可能的

至于托管bean和其他JSF类,如验证器、转换器等,只需使用
@ManagedBean
@FacesValidator
@facescoverter
等对它们进行注释,然后以通常的方式将它们打包到JAR中。您只需要在JAR中提供一个与JSF2.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特定的注释。或者,您也可以用JSF1.x的方式在JAR的
faces config.xml
中注册它们

至于Facelets资源,只需将它们放到JAR的
/META-INF/resources
文件夹中即可。它将被视为战争的公共网络内容

另见:

是否可以将jar文件添加到ear lib目录中?或者它应该放在war WEB-INF/lib目录下?创建对我的托管bean非常有效的答案。但是我如何处理复合材料呢?我有一些复合:实现放在一个包中,它是一些EJB的视图。我想在我的主要应用程序中使用这些,我不想在主要战争中收集所有的复合材料。在包含WAR的内部,我可以通过一个标签来调用它们,比如“e:”是库的名称空间。资源解析程序似乎无法解决此问题。@BalusC如果META-INF/faces-config.xml不包含bean信息怎么办?我的意思是如果托管bean使用注释?它会去吗?或者这里的faces-config.xml只是为了让IDE认识到这只是jsf库?