gpt4 book ai didi

jsf - 在 JAR 中打包 Facelets 文件(模板、包含、组合)

转载 作者:行者123 更新时间:2023-12-03 12:33:50 25 4
gpt4 key购买 nike

是否可以将具有公共(public)内容的 JSF2 Facelets 文件放入 JAR 中,以便从内部的其他 Web 应用程序中使用它,例如<ui:composition template> , <ui:include src> , <cc:implementation> , ETC?如果是,我怎样才能做到这一点?是否需要一些额外的配置?

最佳答案

可以把常用资源放在/META-INF/resources将被视为 /WEB-INF/resources 的 JAR 文件夹WAR 文件夹。

例如。

CommonWebProject
|-- META-INF
| |-- resources
| | `-- common
| | |-- css
| | | `-- some.css
| | |-- js
| | | `-- some.js
| | |-- images
| | | `-- some.png
| | |-- components
| | | `-- somecomposite.xhtml
| | |-- someinclude.xhtml
| | `-- sometemplate.xhtml
| |-- faces-config.xml
| `-- MANIFEST.MF
:

JAR 的资源如下所示:

<... xmlns:common="http://xmlns.jcp.org/jsf/composite/common/components">
<h:outputStylesheet library="common" name="css/some.css" />
<h:outputScript library="common" name="js/some.js" />
<h:graphicImage library="common" name="images/some.png" />
<common:somecomposite />
<ui:include src="/common/someinclude.xhtml" />
<ui:composition template="/common/sometemplate.xhtml" />
...

如果您还想触发 JSF2 注释扫描器,以便您可以输入 @ManagedBean , @FacesValidator , @FacesConverter和该项目中的配偶,然后创建与 JSF2 兼容的 /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>

仅当资源不在 /META-INF/resources 中时,才需要 Facelets 资源解析器。出于某种原因,或者当您不使用 Servlet 3.0 而是 2.5 时,或者当您使用早期的 JBoss/JSF 版本时,该版本在 META-INF 资源解析中存在错误。另见 How to create a modular JSF 2.0 application?举一个具体的例子。

关于jsf - 在 JAR 中打包 Facelets 文件(模板、包含、组合),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3531432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com