JSF Facelets 模板打包

2024-02-11

一如既往,我有点困惑。

Here https://community.jboss.org/wiki/ModularWebAppsWithJSF2 https://community.jboss.org/wiki/ModularWebAppsWithJSF2我了解到,自 JSF 2.0 以来,将模板捆绑在单独的 jar 中非常简单且开箱即用。

唯一的问题是:我无法让它工作。我只需在 Web 应用程序 WEB-INF/lib 中包含的 jar 中部署所有风格的“page.xhtml”(META-INF 目录、资源目录、根;有或没有 faces-config.xml)并请求一些内容喜欢http://host/demo/faces/page.xhtml http://host/demo/faces/page.xhtml或者在模板上进行“包含”或“装饰”。我有一个例外。

Here Java EE6> 将 JSF Facelets (xhtml) 和 ManagedBeans 打包为 JAR https://stackoverflow.com/questions/6104498/jee6-packaging-jsf-facelets-xhtml-and-managedbeans-as-jar我最喜欢的 JSF 老师解释说要使用自定义 ResourceResolver 来完成此任务。当我调试资源解析时,我毫不怀疑这会起作用并且会尝试一下。

这是关于机制的问题——两种方法有什么区别?

自动在 META-INF/resources 中查找哪些资源?


Facelets 组合物(所以,简单地说*.xhtml页面、模板和包含文件)通过以下方式解析ExternalContext#getResource() http://docs.oracle.com/javaee/6/api/javax/faces/context/ExternalContext.html#getResource%28java.lang.String%29其委托给ServletContext#getResource() http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#getResource%28java.lang.String%29。这需要 Servlet 3.x 兼容的容器,因为/WEB-INF/lib/*.jar!/META-INF/resources解析 from 是 Servlet 3.0 以来的新内容。如果您还没有使用 Servlet 3.x,或者出于某种原因想要将这些 JAR 放在不同的位置,那么您需要创建一个自定义的ResourceResolver http://docs.oracle.com/javaee/6/api/javax/faces/view/facelets/ResourceResolver.html。也可以看看如何创建模块化 JSF 2.0 应用程序? https://stackoverflow.com/questions/6199458/how-to-create-a-modular-jsf-2-0-application/6201044#6201044

Facelets 复合组件和静态资源 (so, <cc:xxx>要加载的组件和CSS/JS/图像资源<h:outputStylesheet>, <h:outputScript> and <h:graphicImage>) 通过以下方式从类路径解析ClassLoader#getResource() http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html#getResource%28java.lang.String%29。要将 JAR 文件包含在 JSF 的类路径扫描中,您需要包含 JSF 2.x 兼容的faces-config.xml文件在/META-INFJAR 文件的文件夹。同样的故事也适用于@ManagedBean, @FacesValidator, @FacesConverter, @FacesComponent以及其他 JSF 工件。


在Eclipse中开发时,可以选择网页 > 网页片段项目创建这样一个模块项目。和正常的没有太大区别Java项目,期望它将隐式包含 JavaScript 方面和目标运行时,自动创建/META-INF/web-fragment.xml文件并与现有的关联动态网页项目通过将其自身作为部署程序集添加到该项目中。

您还可以使用现有标准Java项目准备好正确的文件夹结构。这/META-INF文件夹必须位于 Java 源文件夹中。这web-fragment.xml顺便说一下,文件是可选的。您只需手动将 Java 项目添加到部署组装主 Web 项目属性的部分。做not将其添加为项目中的另一个项目构建路径部分。

当您(手动)从中构建 JAR 文件时,需要确保将目录条目添加到 JAR 中,否则无法解析 Facelets 组合。如果您使用 Eclipse/Ant/Maven/等构建工具进行构建,则还必须考虑到这一点。如果这是不可控的,可以定制ResourceResolver是最可靠的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSF Facelets 模板打包 的相关文章

随机推荐

  • iOS 连接数据库的正确架构?

    我是一名 Web 开发人员 正在着手创建移动 iOS Android 应用程序 因此 我想要了解的是应该如何构建移动应用程序来访问 发布 更新 删除 存储在中央服务器上的数据 出于说明目的 假设我正在创建一个移动食谱应用程序 名为 MyRe
  • 为 Selenium 创建 HTTP Basic auth Chrome 扩展(MWE 可用)

    我正在尝试使用 Google Chrome 运行 Selenium 测试 我希望使用 HTTP 基本身份验证登录 这在 Selenium 中没有实现 因此建议加载扩展 我正在使用来自的代码 https github com RobinDev
  • Linq to SQL 外键

    数据库表的 DDL Users id int identity name varchar unique PCs id int idnetity name varchar unique userid FK to Users Apps id i
  • 将哈希表转换为字符串数组

    如何将哈希表转换为字符串数组 假设 l table 是一个哈希表 如果我尝试 l array l table format table 那么 l array 是一个数组 但是一个 FormatEntryData 对象的数组 如果我做 str
  • 多线程环境下的增量和减量

    我正在尝试在多线程环境中 int 变量的经典增量 减量 这是我的示例代码 public class SyncIncDec public static void main String args SyncCounter count new S
  • 用 Pig Latin 每组写入一个文件

    问题 我有许多包含 Apache Web 服务器日志条目的文件 这些条目不按日期时间顺序排列 并且分散在文件中 我正在尝试使用 Pig 读取一天的文件 按日期时间对日志条目进行分组和排序 然后将它们写入以其包含的条目的日期和小时命名的文件中
  • Obj-C++:用于识别 Objective-C 类的模板元函数?

    使用 Objective C 我可以写一个 C IsObjectiveCClass
  • iPhone 中的语音识别?

    我见过很多应用程序在 iPhone 上进行语音识别 我已经解决了 stackoverflow 的以下问题 iPhone 应用程序 添加语音识别 https stackoverflow com questions 942312 iphone
  • 如何使用 core_bluetooth 获取公共蓝牙设备地址

    我们有一台蓝牙设备 蓝牙设备有一个公共蓝牙设备地址 BDA 在 Android 中 它们像蓝牙一样 30 03 5B 00 15 12 我只能获取设备名称和设备UUID 像这样 void centralManager CBCentralMa
  • Dart WebUI 构建错误

    我在将 web ui 添加到现有的 dart 应用程序时遇到问题 我什至没有将任何 webui 特定代码添加到我的 html 文件中 我只是尝试构建 我将 web ui 添加到 pubspec yaml 并运行 pub install 当我
  • 在php中取消设置编码数组后,json没有索引

    我希望任何人都可以帮助我 我的 JSON 不是indexed 即元素上方没有任何键 nome LABORGHINI GALLARDO descrizione LAMBORGHINI GALLARDO ED NERA ANNO 2007 in
  • 显式默认的默认构造函数和聚合

    当我编译时如何解释差异 if 0 and if 1以下代码的版本 include
  • 如何在JSP文件中编写文件下载响应

    当我尝试从响应对象获取 ServletOutputStream 对象时 出现 java lang IllegalStateException 下面是我的代码
  • 如何让EditText提示不换行?

    我有一行 EditText 当我设置长提示时 提示会换行为两行 我可以强制 EditText 始终为一行高吗 android lines 1 没用 你有没有尝试过android ellipsize然而 可以将其设置为将行截断为在开头 中间
  • 对 pandas 数据帧列表上的函数进行向量化

    我读取了一个 Excel 文件并将每个选项卡保存为 pandas 数据框 import pandas as pd xla pd ExcelFile file name xlsx kl xla sheet names hf list for
  • OpenCV 旋转矩形的最小直立边界矩形

    我正在尝试确定旋转矩形的最小边界矩形 我尝试了几个示例 例如this http docs opencv org master db dd6 classcv 1 1RotatedRect html gsc tab 0来自 RotatedRec
  • iOS UITableView reloadData 仅在我第二次调用重新加载函数时刷新表

    这是我的重新加载功能 void reloadTable id sender NSLog Reload Table NSLog appDelegate queryList self driverTable reloadData self dr
  • 如何将实体管理器添加到自定义类或服务?

    在 Symfony2 中 我如何将 Doctrine 的实体管理器添加到自定义类或服务中 我努力了 em this gt get doctrine orm entity manager and em this gt getDoctrine
  • 有条件地在polymer中添加css类

    我在聚合物组件中有一个元素 想要有条件地添加一个 css 类 div class 如果 item isCompleted 为 true 则添加 completed 类 但是 我遇到以下错误 表达式语法无效 完成 item completed
  • JSF Facelets 模板打包

    一如既往 我有点困惑 Here https community jboss org wiki ModularWebAppsWithJSF2 https community jboss org wiki ModularWebAppsWithJ