JSF 和 Facelets 文件的自动重新加载

2024-04-04

我在使用 JRebel、Spring、JSF Mojarra 2.0.3 和 WebLogic 10.3 热重载 Facelets 文件时遇到了一些问题。

JRebel 成功重新加载 /WebContent 下的常规 Java 类和 js/css 文件,但不能成功加载 JSF 的 .xhtml 文件。需要完全重新发布才能在服务器上更新 xhtml 文件。

通过反复试验,我终于通过向 web.xml 添加一些 Facelets 参数并创建一个自定义 ResourceResolver 来使其工作,如下所述在这篇博文中 http://www.warski.org/blog/2007/12/instant-facelets-changes-in-xhtml-and-no-redeploying/.

然而,我想知道为什么这会起作用,更具体地说:

  • 为什么需要自定义 ResourceResolver?
  • JRebel 不应该通过监视 xhtml 文件所在的 /WebContent 来处理这个问题吗?
  • 我猜这与 Facelets/JSF 通过 FacesServlet 将 xhtml 编译为 servlet(?)有关,而 JRebel 无法检测到?

JRebel 处理 /WebContent 文件夹更改。

问题是 Facelets 会进行缓存并且不会重新读取已更改的文件。要强制重新加载,请在中指定以下参数之一web.xml.

JSF 2+(小面 2+):

<!-- Set the project stage to "Development", "UnitTest", "SystemTest", or "Production". -->
<!-- An optional parameter that makes troubleshooting development stage errors much easier. -->
<!-- You should remove this context parameter before deploying to production or override via Server's JNDI config! -->
<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
</context-param>

这会自动将“Facelets 刷新周期”配置设置为 0,从而有效禁用 Facelets 缓存。

或者,如果您不想更改项目阶段,那么

<!-- Time in seconds that Facelets should be checked for changes since last request. A value of -1 disables auto-refresh. -->
<!-- You should remove this context parameter before deploying to production or use PROJECT_STAGE instead! -->
<context-param>
    <param-name>javax.faces.FACELETS_REFRESH_PERIOD</param-name>
    <param-value>0</param-value>
</context-param>

对于 Faces 4.xjavax.前缀应该是jakarta.相反,像这样jakarta.faces.PROJECT_STAGE and jakarta.faces.FACELETS_REFRESH_PERIOD.


For JSF 1.2(Facelets 1.x) 等效参数为:

<context-param>
    <param-name>facelets.DEVELOPMENT</param-name>
    <param-value>true</param-value>
</context-param>
<context-param>
    <param-name>facelets.REFRESH_PERIOD</param-name>
    <param-value>0</param-value>
</context-param>

有关 JSF 上下文参数的更多信息:http://docs.jboss.org/jbossas/6/JSF_Guide/en-US/html/jsf.reference.html#standard.config.params http://docs.jboss.org/jbossas/6/JSF_Guide/en-US/html/jsf.reference.html#standard.config.params

您的情况不需要该自定义资源解析器。该资源解析器只是从自定义文件系统文件夹获取 xhtml 文件的一种棘手方法。在你的例子中,JRebel 做到了这一点(甚至更多)。

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

JSF 和 Facelets 文件的自动重新加载 的相关文章

  • 如何(或者应该)避免 jsf 中的长方法/类

    我主要在基于 JSF 的项目中处理遗留代码 并且支持 bean 中有很多相当长的类和方法 这一直困扰着我 但是当我寻找可以做什么时 大多数时候我能想到的就是将一个长方法分成 n 个小方法 这会给你带来很长的课程 有时也更难阅读 那么 如何才
  • 如何更改 richfaces 组合框提出的建议?

    我目前正在玩 richfaces 组合框 你可以检查是 我想知道是否有办法改变在组合框中提出建议的方式 而不是仅建议以同一字母开头的单词 而是建议具有以该字母或字母组合开头的其他单词的单词 这是演示中的示例 从当前的组合框中 如果我输入 M
  • 如何在 JSF 1.x 中包含相对于上下文路径的 CSS?

    如何在 JSF 1 1 中包含相对于上下文路径的 CSS 样式表 就像我们使用的JSF2 https stackoverflow com questions 8367421 how to reference css js image res
  • Jsf 生命周期 - 验证失败后渲染响应

    我希望 BalusC 或一位 JSF 专家能够帮助我了解 JSF 生命周期的细节 尤其是渲染 我很难理解的是 在渲染响应期间 从模型中获取值并将其显示给用户 现在 如果存在验证错误 则模型不会更新 因此渲染器必须向用户显示组件树中的无效值
  • 每个 ajax 请求都会调用 preRenderView

    我正在使用 jquery waypoints 和 jsf 实现无限滚动link http kahimyang info kauswagan code blogs 1405 building a page with infinite scro
  • 迁移到 Jboss 7.0 AS 后 Firefox 和 IE 中的 ViewExpiredException

    我们的 JSF 2 0 Richfaces 4 0 应用程序在 Jboss 6 0 上运行得非常好 我们正在尝试将其迁移到 Jboss 7 0 AS 对于我们点击页面上的任何链接 我们在 Firefox 和 IE 中遇到 ViewExpir
  • 如何识别托管 bean 中单击的 commandButton

    我有一个actionListener我的托管 bean 中的方法由许多命令按钮调用 public void verifyTestDisponibility ActionEvent actionEvent if button1 clicked
  • 避免 JSF Web 应用程序上的后退按钮

    我正在显示非常敏感的数据 用户从我的服务器注销后 我不希望其他用户能够看到点击浏览器后退按钮的数据 我怎样才能实现这个目标 默认情况下 浏览器的后退按钮根本不会向服务器发送 HTTP 请求 相反 它从浏览器缓存中检索页面 这本质上是无害的
  • 如何导航到托管 bean 中的另一个页面?

    我正在尝试使用命令按钮转发托管 bean 中的页面
  • 将jquery日期选择器集成到jsf中

    我正在关注这些例子here http jqueryui com demos datepicker icon trigger and here http jqueryui com demos datepicker icon trigger但我
  • Primefaces 问题:使用 ViewScoped 托管 bean 从 p:datatable 进行 p:filedownload

    使用 ViewScoped 托管 bean 从 p datatable 进行 p filedownload 不起作用 它调用方法prepareFile和getFile两次 在我提到的方法的第一次调用中 它设置表中的第一个文件 在方法的第二次
  • 使 Primefaces 的数据表行在行版本上无效

    我正在使用 JSF 2 1 Primefaces 5 1 开发一个网络应用程序 我有一个带有行版本的数据表 每行有 2inputText 2 selectOneMenu and 1 selectBooleanCheckbox 我想在单击复选
  • 两个 primefaces 日历组件验证

    我有一个表格JSF 2我使用双字段来指定日期范围 这样做的目的是不让用户选择第二个日期之前的第一个日期 所以我想在发送表单之前执行验证 使用p calendar成分 我所做的是将验证器绑定到第二个日历输入 以便在内部访问第一个组件并比较日期
  • 如何在 CSS 选择器中使用 JSF 生成的带有冒号“:”的 HTML 元素 ID?

    我一直在使用 JSF 处理一个简单的 Java EE 项目
  • JSF h:列标记固定宽度

    有人可以告诉我如何使用 JSF 修复数据表中列的宽度吗 我的代码当前如下
  • 使用 CDI+JSF 使会话失效不起作用

    我正在尝试在我的应用程序中实现注销 所以我这样做了 public String logout try FacesContext facesContext FacesContext getCurrentInstance ExternalCon
  • javax.faces.FacesException 无法找到 CDI BeanManager [重复]

    这个问题在这里已经有答案了 我在用 目标运行时间 野蝇14 0 动态网页模块版本 4 0 配置 动态网络模块4 0 爪哇1 8 JavaServer Faces 2 3 JSF 能力 JSF 配置文件 WEB INF faces confi
  • 通用 JSF 实体转换器[重复]

    这个问题在这里已经有答案了 我正在编写我的第一个 Java EE 6 Web 应用程序作为学习练习 我没有使用框架 只是使用 JPA 2 0 EJB 3 1 和 JSF 2 0 我有一个自定义转换器 用于将存储在 SelectOne 组件中
  • 数据表 JSF 中的延迟加载

    在我负责的许多项目中 没有什么比数据表中的延迟分页更好的了 JSF 是否有某种魔力 或者我说得对吗 它确实是一个很大的性能问题 如果你看过一些教程 几乎没有人关心惰性分页 假设您在支持 bean 上有 List 并且数据库中有 2000 行
  • JSF-2 应用程序中的服务器端计时器

    在我正在开发的 JSF 2 应用程序中 当用户执行操作时 我需要启动服务器端计时器 这个计时器必须与应用程序本身相关 因此它必须在用户会话关闭时继续存在 为了解决这个问题 我想使用 java util Timer 类在应用程序范围的 bea

随机推荐

  • Typescript - 逐步扩展对象的类型

    我试图通过 TS 实现以下目标 let m Extendable m add one 1 m now has one field m add two 2 m now has one and two fields 我熟悉通过以下方式在 TS
  • Python - 在特定长度的文件中查找字符串,并且该字符串必须是大写字母和数字

    我想找到一个特定长度的字符串 例如 7 个字符 该字符串只能包含大写字母和数字 我有想法 逐行读取文件 我不确定这里的最佳实践是在一个块中读取整个文件还是使用循环逐行读取文件 必须使用循环逐行读取文件吗 read lines in text
  • GA 中的排名选择?

    我已经实施了Roulette wheel selection in GA TotalFitness sum Fitness ProbSelection zeros PopLength 1 CumProb zeros PopLength 1
  • matlab数据文件到pandas DataFrame [重复]

    这个问题在这里已经有答案了 有没有标准的转换方法matlab mat matlab格式数据 文件到PandaDataFrame 我知道可以通过使用解决方法scipy io但我想知道是否有一种简单的方法可以做到这一点 我找到了两种方法 sci
  • 在垂直和水平步进材料之间切换

    如何切换垫子垂直步进器 and 矩阵水平步进器来自具有相同步进步骤的角度分量 为了避免重写相同的 html 内容 请这样做 创建模板并使用 hashtag 然后你可以使用插入它们ng container ngTemplateOutlet h
  • Android 6.0 Marshmallow:片段动画出现奇怪的错误

    我在应用商店中的一个应用程序在 Android 5 0 上运行得非常好 但自从今天我将我的设备升级到 6 0 后 我遇到了奇怪的错误 我将其范围缩小到片段过渡动画 ftrans setCustomAnimations inAnim outA
  • constexpr 函数何时在编译时进行求值?

    既然声明为 constexpr 的函数有可能在运行时被调用 那么编译器根据什么标准决定是在编译时还是在运行时计算它呢 template
  • java-8中的Stream方法是如何实现的?

    当我尝试新的 java 8 Stream 时 我想深入了解它的方法是如何实现的 所以我查看了 Stream 类的实现 发现所有方法都是抽象的 我的问题是这些方法怎么样distinct and map 它必须在某个地方有具体的实现 这些方法在
  • Apache Camel 同时处理两个 csv 文件

    我正在尝试处理两个 csv文件并将其数据保存到数据库中 我使用的是 java dsl 而不是 spring 为了更好地解释这个场景 我正在读两本 csv文件并处理它们以将数据上传到 sql 数据库中 我为此执行的步骤是 在 servlet
  • 来自 SAS url 的 Azcopy 给出错误

    我正在尝试从 SAS URL 位置复制到目标存储帐户 我尝试了以下命令 但出现了一些错误 AzCopy exe 来源 Dest https yyyyyyyy blob core windows net vhds https yyyyyyyy
  • Firebase,变量作为键名

    我基本上想做的是 variable whatever fb set variable More Stuff 因此 这将导致一个如下所示的条目 whatever More Stuff 目前它只是结束为 variable More Stuff
  • Cassandra 中的 RPC 超时

    我收到以下错误 cqlsh dev gt SELECT DISTINCT id FROM raw data Request did not complete within rpc timeout 这是一个我永远不会再进行的特殊查询 我不在乎
  • 新上传的版本未在 App Store Connect 中显示或处理

    我在过去 48 小时内上传了多个版本 但没有一个在 App Store Connect 中出现或处理 构建已通过 Xcode 成功上传 还有其他人经历过这种情况并知道潜在的解决方案吗 我已向 Apple 提交了支持票 但我希望能更快得到解决
  • 在 Java EE7 项目中找不到 web.xml

    我正在 eclipse 中使用 JSF 2 2 和 Servlet 3 1 Java EE7 做一个项目 我遇到的第一个问题是 pom xml 中的错误
  • 最有效的便携式溢出检测? [复制]

    这个问题在这里已经有答案了 与 C C 和 D 等金属语言类似 检测无符号 64 位溢出的最有效 合理可移植的方式是什么 即不使用汇编程序 尽管您可能假设二进制补码算术和环绕行为 乘法中的整数 通过将无符号类型可表示的最大值除以被乘数之一
  • 在 .NET 中使用 RPC/编码的 SOAP Web 服务时出错

    我在调用 Web 服务方法时收到以下错误 无法将 System Xml XmlNode 类型的对象分配给 System String 类型的对象 Web 服务是 PHP 服务 我使用此处定义的 wsdl 文档中的 wsdl exe 创建了我
  • 从 C# 对象自动生成 javascript 对象模型

    寻找现有的 经过验证的解决方案来快速生成客户端JavaScript 对象模型代表一个现有的 C 对象 我想象有一个 T4 模板或其他一些方法 但我缺乏找到它的术语 我不是在讨论序列化以获取现有 C 对象实例的 JSON 表示形式或任何与反序
  • 如何将字符串转换为安全的 SQL 字符串?

    我正在从一堆文本文件生成一些 sql 插入语句 这些文本文件通常是用户输入数据 我想清理这些数据 这样就不会破坏插入语句 例如 在某些输入数据中 人们使用了 Don t 一词 don t中的 会导致sql语句认为字符串已经结束 从而导致错误
  • 如何正确使用 oembed 从 youtube 中提取拇指

    我的主页上有很多来自 YouTube 视频的点赞 我使用下面的这个函数从 youtube url 中抓取拇指 它运行速度很快 但它不适用于像 youtu be JSHDLSKL 这样的缩写形式的 url function get youtu
  • JSF 和 Facelets 文件的自动重新加载

    我在使用 JRebel Spring JSF Mojarra 2 0 3 和 WebLogic 10 3 热重载 Facelets 文件时遇到了一些问题 JRebel 成功重新加载 WebContent 下的常规 Java 类和 js cs