java - 如何从支持 bean 获取 JSF 2.0 组件生成的 HTML 的 DOM?

标签 java jakarta-ee jsf-2 primefaces

我有一个 JSF 页面,仅包含一个 PrimeFaces Calendar 组件,由 View 作用域 bean 支持。

<p:calendar value="#{calendarBean.today}" mode="inline" showOtherMonths="true" pages="1" binding="#{calendarBean.model}" />

为此组件生成的 HTML 包含一个我想要调整的表格。更具体地说,我想通过在目标日期的 td 标签下添加一些 HTML 代码,将图标动态地放入此日历中。

从 CalendarBean 中,我可以从某些服务中获取代表“带有图标”的日期的对象列表。我需要这个列表来决定表中要更改的日期。我尝试在我的支持 bean 中获取 HTML DOM,但我不明白如何做。 UIComponent 树(我通过绑定(bind)属性获得)仅包含 JSF 组件,而不包含生成的 HTML。我开始怀疑这是否是解决问题的方法。

我的谷歌技能似乎不够。有人可以帮助我吗?

最佳答案

具体的功能需求并不完全清楚,因此很难为此提出正确的方法,但通常有多种方法可以改变 JSF/PrimeFaces 生成的 HTML 的外观。

  1. 使用自定义 CSS。图标可以简单地设置为 CSS 背景图像。

  2. 使用自定义 JS。 JS 可以即时访问整个 HTML DOM 树。

  3. 使用自定义 JSF 渲染器。扩展 PrimeFaces CalendarRenderer 类并相应地重写 encodeXxx() 方法。

支持 bean 应该是 View (XHTML 文件)和模型(保存要呈现给最终用户的数据或捕获从最终用户提交的数据的 javabean 实体类)之间的 Controller 。它不应该操纵 HTML。

关于java - 如何从支持 bean 获取 JSF 2.0 组件生成的 HTML 的 DOM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13344388/

相关文章:

java - 我应该在 Java Web 应用程序中使用安全管理器吗?

javascript - 获取引用页面Servlet的URL

java - 具有渲染属性的 jsf 组件验证失败

java - 将列表信息传递给新 Activity

java - struts2中迭代两个List

java - JSON 对象未在 Struts2 Action 中设置变量

parameters - JSF参数传递

java - 提交调用 javascript 函数后的 JSF 提交按钮

Java - 使用 Mac 和 Windows x86 和 x64 进行网络摄像头拍摄/视频

java - 忽略 FreeMarker 模板中的所有换行符