jsf 相关问题

JavaServer Faces(JSF)是一种模型 - 视图 - 展示器框架,通常用于创建基于HTML表单的Web应用程序。使用标准组件和渲染工具包,可以使用Facelets或JSP标记定义有状态HTML视图,并通过支持bean连接到模型数据和应用程序逻辑。

JSF CRUD Netbeans 教程 - 当 IDENTITY_INSERT 设置为 OFF 时,无法在表中插入标识列的显式值

我正在学习本教程,您可以直接从数据库创建 JSF CRUD 应用程序(从数据库生成实体类,然后从实体类生成 JSF 页面)。 当我尝试...

回答 1 投票 0

Eclipse 自定义 java 编译器

我正在使用 eclipse 创建我的 jsf 项目。 我创建了自己的组件,并且我不希望其他程序员能够使用 jsf 常规组件,例如 h:inputtext 等。 我怎样才能做到

回答 2 投票 0

迭代 p:dataTable 中的嵌套对象列表

在 Primefaces 5.1(Tomcat 8 和 Servlet 3.0)中,您可以使用 DataGrid、DataList、DataTable 等迭代 List。例如: 在 Primefaces 5.1(Tomcat 8 和 Servlet 3.0)中,您可以使用 DataGrid、DataList、DataTable 等进行迭代 List<Objects>。例如: <p:dataTable var="car" value="#{dtBasicView.cars}"> <p:column headerText="Id"> <h:outputText value="#{car.id}" /> </p:column> </p:dataTable> 控制器: @ManagedBean(name="dtBasicView") @ViewScoped public class BasicView implements Serializable { private List<Car> cars; @ManagedProperty("#{carService}") private CarService service; @PostConstruct public void init() { cars = service.createCars(10); } public List<Car> getCars() { return cars; } public void setService(CarService service) { this.service = service; } } 但是假设 Car 对象具有像 washes 这样的属性,那么当我这样做时: <h:outputText value="#{car.washes}" /> 在数据表中,它返回一个 List<Washes> 列表。我无法选择索引,那么如何迭代数据表中的 List<Washes>? 我知道我可以在数据表中创建一个数据网格,然后对汽车执行相同的操作以迭代洗涤列表。但这会创建一个新的“HTML 表格,其中一个单元格内有边框”。我怎样才能迭代列表并输出清洗中的字符串:#{washes.foo} 更新:根据答案尝试使用<ui:repeat>时出现此错误: Property 'foo' not found on type org.hibernate.collection.internal.PersistentSet 当我使用 <p:dataGrid> 而不是 <ui:repeat> 时,它起作用了。 另外,我返回的是一个集合而不是列表,所以我必须使用 toArray() 您可以嵌套另一个迭代组件,就像在普通 Java 中嵌套 for 循环一样。 这是嵌套另一个 <p:dataTable> 的示例,假设 Wash 具有属性 foo: <p:dataTable value="#{bean.cars}" var="car"> <p:column headerText="Washes"> <p:dataTable value="#{car.washes}" var="wash"> <p:column headerText="Foo">#{wash.foo}</p:column> </p:dataTable> </p:column> </p:dataTable> 如果您想要无标记/无样式迭代,请使用 <ui:repeat> 或也许 <h:dataTable>: <p:dataTable value="#{bean.cars}" var="car"> <p:column headerText="Washes"> <ui:repeat value="#{car.washes}" var="wash"> #{wash.foo} </ui:repeat> </p:column> </p:dataTable> 顺便说一下,使用复数作为类名是很奇怪的,而你可以在一个 List 中使用多个类名。您可能想将 Washes 重命名为 Wash。上面的代码片段已经考虑到了这一点。您会发现,通过这种方式,代码变得更加自我记录。 根据您的错误更新; <ui:repeat> 和 <h:dataTable> 组件不支持迭代 Set<E>。该支持将在未来的 JSF 2.3 版本中提供。如果不能用 Set<E> 替换 List<E>,那么只需从中获取一个数组,如下所示: <ui:repeat value="#{car.washes.toArray()}" ...>

回答 1 投票 0

如何通过复选框选择模式禁用 PrimeFaces 树

我需要在某些情况下禁用 PrimeFaces 树(复选框选择模式)。用户应该能够看到选定和未选定的复选框,但需要禁用它们...

回答 4 投票 0

升级 JSF 和 Primefaces 验证消息后无法正常工作

我们已将 JSF 从 2.2 升级到 JSF-4.0 (jakarta-faces-4.0.5) 以及 Primefaces 从 6.2 到 12.0.0-jakarta 我们根据升级进行了更改,例如命名空间更改和属性值更改

回答 1 投票 0

我可以向使用模板的特定页面添加元标记吗

我有一个使用模板的页面 我希望仅使用...

回答 1 投票 0

是否可以从动物列表中获取狗列表而无需演员表?

我有一张受保护的地图>动物;在我的课堂上。在我的构造函数中,我有 Animals.put("狗", new ArrayList()); Animals.put("猫", ...

回答 2 投票 0

如何编译facelets?

很多次我都遇到这样的错误: -标签未关闭(xml错误) -xhtml 有重复的 id 我想编写验证器来检查文件中是否存在这些错误。我打赌有一些 Facelets 编译器可以实现

回答 3 投票 0

使用 PrimeFaces 和 OpenPDF 导出 PDF 时出现 NoSuchMethodError

我正在开发一个 JSF 应用程序,使用 PrimeFaces 14.0.3 进行 PDF 导出。 我正在开发一个 JSF 应用程序,使用 PrimeFaces 14.0.3 进行 PDF 导出。 <p:commandButton id="btnPdf" class="m-1 ui-button-info" ajax="false" rendered="true" icon="fas fa-file-pdf" value="Export as PDF"> <p:dataExporter type="pdf" target="tbl" fileName="processional_fees" /> </p:commandButton> 尝试将 DataTable 导出为 PDF 时,遇到以下错误: WARNING: StandardWrapperValve[Faces Servlet]: Servlet.service() for servlet Faces Servlet threw exception java.lang.NoSuchMethodError: 'com.lowagie.text.pdf.PdfPCell com.lowagie.text.pdf.PdfPTable.addCell(com.lowagie.text.pdf.PdfPCell)' at org.primefaces.component.datatable.export.DataTablePDFExporter.addCell(DataTablePDFExporter.java:165) ... 这是我的 pom.xml 中用于 PDF 处理的相关部分: <dependency> <groupId>com.github.librepdf</groupId> <artifactId>openpdf</artifactId> <version>1.4.1</version> </dependency> 我还根据 PrimeFaces 文档的初步建议尝试使用 openpdf 版本 2.0.3,该文档列出了用于 PDF 导出的 openpdf 1.4.1。但是,两个版本中都存在该错误。 我的环境包括: PrimeFaces 14.0.3 JSF 2.3 Java 11 帕亚拉5 我正在寻找有关如何解决此 NoSuchMethodError 的指导。这是我的问题: 用于 PDF 导出的 openpdf 和 PrimeFaces 14.0.3 是否存在已知的兼容性问题? 我的项目中是否存在其他依赖项会干扰 PDF 生成? PrimeFaces 或 openpdf 中是否需要其他配置才能正确处理 PDF 导出? 任何帮助或见解将不胜感激! 对我来说这个错误很可疑 java.lang.NoSuchMethodError:'com.lowagie.text.pdf.PdfPCell com.lowagie.text.pdf.PdfPTable.addCell(com.lowagie.text.pdf.PdfPCell)' 在 PR837 中:修改了 PdfPTable 添加单元格方法以返回单元格,进行了重大更改,以便在调用 com.lowagie.text.pdf.PdfPCell 时返回 addCell。它与 1.4.x 版本集成。所以它肯定应该存在于 1.4.1 或 1.4.2 中 根据错误,它找不到这样的方法签名。因此,我假设您的设置中的某些内容弄乱了依赖项,并引入了一个没有此重大更改的 com.github.librepdf 版本(可能是 1.3.X 版本) OpenPDF 自述文件下的依赖项说 2.0.x 分支需要 Java 17 或更高版本。 1.4.x 分支需要 Java 11 或更高版本。 1.3.x 分支需要 Java 8 或更高版本。 所以我希望 2.0.3 根本不起作用,因为您为您的环境列出了 Java 11。

回答 1 投票 0

如何在 primefaces 媒体标签中重命名 PDF

我在 primefaces 中使用流式内容并使用媒体标签来显示它。当在查看器中按下下载按钮时,它会下载名为dynamiccontent.properties的文件。有什么办法

回答 3 投票 0

Primefaces 本机上传不适用于 PrettyFaces(OCPSoft 重写)

我需要将我的应用程序迁移到 Jakarta EE 10,以下是我当前的配置: JDK 1.8 Primefaces 12.0.x 漂亮面孔 3.3.3 我已经用新的依赖项更新了我的 pom.xml,替换了

回答 1 投票 0

迁移到 Jakarta EE 后,Control+单击 Facelets 中的 EL 表达式在 Eclipse 中不起作用

我最近将项目从javax迁移到Jakarta EE v10,jdk 11到17,以及Tomcat 10.1,primefaces v13 在早期的项目中,当我打开 .xhtml 文件,按下 control 并单击任何 java c...

回答 1 投票 0

Primefaces 自动完成转换器类似于omnifaces.SelectItemsConverter

我正在使用 primefaces 开发一个网络应用程序。我有一个自动完成字段,它从 pojo 对象获取其值。我想知道是否有类似omnifaces的转换器解决方案。

回答 1 投票 0

如何在 JavaServer Faces 中执行分页列表?

我有一个 JSF 应用程序,我正在将其转换为使用 Web 服务而不是直接的数据库查询。有一些非常长的列表,以前可以通过简单的...

回答 5 投票 0

PrimeFaces 自动完成下拉列表不显示值

从 PrimeFaces 8 更新到 10 后,我的应用程序中的所有自动完成组件在打开下拉菜单时均不显示值 该列表仍为空。当我调试到自动完成时......

回答 1 投票 0

非 JSF 组件的条件渲染(普通 HTML 和模板文本)

我正在尝试有条件地渲染 ,因此我无法使用 ,因为它将渲染为 或 我当前的(工作)方法如下: 我正在尝试有条件地渲染 <tr>,因此我无法使用 <h:panelGroup>,因为它将渲染为 <span> or <div> 我目前的(工作)方法如下: <h:outputFormat rendered="#{negotiator.maySend}"> <tr> my tr stuff </tr> </h:outputFormat> 这可行,但我不确定这是否是滥用<h:outputFormat>的方式 - 之前我使用过<h:outputLabel>,但这在IE中呈现为<label>。 我也阅读了这个问题的答案,但如上所述,它们对我不起作用,因为<tr>:如何不在 JSF 中渲染整个块? 我无法使用 <h:panelGroup>,因为它会渲染为 <span> 或 <div> 显然你没有仔细测试。如果您不指定最终应在客户端出现的属性,则 <h:panelGroup> 将不会渲染任何内容,例如 layout、id、styleClass 等。 因此,这在技术上应该可以完美地工作。 <h:panelGroup rendered="#{negotiator.maySend}"> <tr> my tr stuff </tr> </h:panelGroup> 但是,更好的主要目的是使用 <ui:fragment>。 <ui:fragment rendered="#{negotiator.maySend}"> <tr> my tr stuff </tr> </ui:fragment> 顺便说一句,这也可以通过 <f:verbatim> 实现,但自 JSF 2.0 起已弃用,因为它是专门为在 JSP 中使用而设计的。 另请参阅: JSF 中 ui:fragment 的替代品 有条件地显示 JSF 组件 如何找出用于ajax更新/渲染的组件的客户端ID?找不到带有从“bar”引用的表达式“foo”的组件 Ajax 更新/渲染不适用于具有渲染属性的组件 实现此目的的一种方法是将表格行的显示样式设置为无。如果满足你的条件,然后使用javascript将样式设置为table-row。 像这样: <tr id="tableRow" style="display: none;"> my tr stuff </tr> JS: const show = true; // Do some logic here if (show) { document.getElementById("tableRow").style.display = "table-row"; }

回答 2 投票 0

如何在 Firefox 上从 Controler 调用 javaScript?

我正在尝试从 bean 调用 JavaScript。脚本工作正常,但是当尝试从 bean 运行它时出现错误: Uncaught ReferenceError: funkcjaKolorujPredkosc is not Defined 导入到xml: &l...

回答 1 投票 0

IceFaces 3.3.0 ace:带有图像的按钮。怎么办?

我一直在努力尝试将图像添加到 IceFaces 按钮。 我的最后一次尝试是添加嵌套到按钮标签的图像,如下所示: 我一直在努力尝试将图像添加到 IceFaces 按钮。 我的最后一次尝试是添加嵌套到按钮标签的图像,如下所示: <ace:pushButton actionListener="#{logoutCtrl.logout()}"> <h:graphicImage value="img/logout.png" width="20px" height="20px"/> </ace:pushButton> 但不幸的是它没有起作用。页面显示没有标签的按钮,然后是图像,例如: 我找到了这个链接,他们提到它应该从 2.x 版本开始修复,所以我可能做错了什么。 P.S - 我通常会使用 Prime Faces,但在这种情况下我别无选择。 我遇到了类似的问题,但使用的是 ICEFaces 4。在我的情况下,图像将显示在按钮旁边。我想,我可以在 CSS 中设置按钮的样式。相反,我只是用标准 JSF h:commandButton 组件替换了 ace:pushButton 元素。 h:commandButton 有一个图像属性。这是一个例子: <h:commandButton image="#{resource['images:searchIcon.png']}" action="#{myBean.performSearch}"> <f:param name="callback" value="sessionSearch"/> </h:commandButton> 希望这可以帮助别人。

回答 1 投票 0

有时我看到 JSF URL 是 *.jsf,有时是 *.xhtml,有时是 /faces/*。为什么?

一直在尝试学习JSF,有时我看到URL是*.jsf,有时是*.xhtml或/faces/*。有人可以补充我的知识吗?当我使用 Facelet 创建 JSF 时,文件扩展名是 .xh...

回答 2 投票 0

Primefaces 树中的文本无法复制

我需要复制树中的数据以方便用户使用。由于某种原因无法选择文本。 我需要复制树中的数据以方便用户使用。由于某种原因无法选择文本。 <p:tree id="tree" value="#{valid.value}" var="var" > <p:treeNode collapsedIcon="pi pi-folder"> <p:outputLabel value="#{valid.label}"/> <p:treeNode/> <p:tree/> 我只能在整个树被禁用时选择文本。 我也尝试过设置一些CSS组件,如z-index、指针事件、用户选择、光标等,但似乎没有什么相关的。 我不太清楚 JSF 如何创建这些组件,因为我还是个新手。我很确定禁用状态下发生了一些事情,允许树的渲染执行其他操作。 当您开始从树外部选择时,您可以选择数据,这可能不是您想要的。 我将创建一个按钮,允许用户使用一些 JavaScript 使用 navigator.clipboard.writeText 将文本复制到剪贴板。 请注意,您可以使用 OmniFaces escapeJS 转义要在 EL 中复制的文本。

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.