Java EE6>将 JSF Facelets (xhtml) 和 ManagedBeans 打包为 JAR

发布于 2024-11-09 03:29:44 字数 201 浏览 0 评论 0原文

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

我不是在谈论 JSF 组件!

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

我需要有关 Jar 结构和 Jar 中所需的其他文件的详细信息?

谢谢马克斯

Is it possible to package JSF facelets and ManagedBeans into a JAR file? So that we can use this code and UI combination in different war/ear projects?

I am not talking about JSF Components!

If yes - can you point me to a tutorial or blog post

I need details about the Jar structure and additional files needed in the Jar?

Thanks Max

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

漫雪独思 2024-11-16 03:29:44

是的,这绝对是可能的,假设您使用的是 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 特定注释。或者,您也可以以 JSF 1.x 的方式在 JAR 的 faces-config.xml 中注册它们。

至于 Facelets 资源,只需将它们放入 JAR 的 /META-INF/resources 文件夹中即可。它将被视为与 WAR 的公共网络内容相同的方式。

另请参阅:

Yes, that's definitely possible, assuming that you're using JSF 2.0, part of Java EE 6.

As to the managed beans and other JSF classes like validators, converters, etc, just annotate them with @ManagedBean, @FacesValidator, @FacesConverter, etc and package them in the JAR the usual way. You only need to provide a JSF 2.0 compatible /META-INF/faces-config.xml file in the JAR.

<?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>

This way JSF will be triggered to scan the classes in the JAR for JSF specific annotations. Alternatively you can also just register them in the JAR's faces-config.xml the JSF 1.x way.

As to Facelets resources, just drop them in /META-INF/resources folder of the JAR. It'll be treated the same way as public webcontent of the WAR.

See also:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文