jsf 相关问题

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

使用 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

在 Tomcat 6 上运行的两个 Web 应用程序之间建立 SSO 和会话共享

我有两个 Web 应用程序,webapp1 (JSF-Spring) 和 webapp2 (Struts) 在单个 Tomcat 6.0 上运行。 Webapp1 使用 JSF 阶段侦听器来保护 web 应用程序中的所有资源。 用户之后

回答 1 投票 0

集成 JSF 时出现“无法从 jsf-impl-2.0.jar 读取 TLD META-INF/jsf_core.tld”错误

我们有一个Struts+Spring+Hibernate应用程序,我们正在尝试集成JSF。为此,我们在 web.xml 和 struts-config.xml 中做了一些配置。我添加了一些 JAR 文件到 WEB-INF/l...

回答 1 投票 0

JSF 的安全问题是什么? [重复]

我对Struts很感兴趣,并且开始学习JSF 2.0。我可以继续使用 Struts 中有效的方法来减少攻击向量,还是有我需要编码的新攻击向量?

回答 1 投票 0

当我从@Startup @Singleton bean的@Schedule调用方法时出现NullPointerException

当我尝试从@Startup @Singleton bean调用@ViewScoped Bean的方法时,我总是遇到错误NullPointerException。我使用@Schedule注解方法来调用@ViewScoped bean方法,为什么呢

回答 1 投票 0

p:commandButton 操作抛出 javax.el.PropertyNotFoundException

错误在于: javax.el.PropertyNotFoundException:/index.xhtml:在 fya.beanpages.IndexBean 类型上找不到属性“validar” 看起来它没有找到 validar 方法。这...

回答 1 投票 0

注释掉的 Facelets 代码仍然调用 #{bean.action()} 等 EL 表达式,并导致 #{bean.action} 上出现 javax.el.PropertyNotFoundException

我的 Facelet 中有以下代码片段: 我的 Facelet 中有以下代码片段: <h:commandLink id="cmdbtn"> <f:ajax event="click" execute="@form" listener="#{screenShotBean.takeScreenshot}" /> </h:commandLink> 它工作得很好,但是当我像这样评论它时, <!-- <h:commandLink id="cmdbtn"> --> <!-- <f:ajax event="click" execute="@form" --> <!-- listener="#{screenShotBean.takeScreenshot}" /> --> <!-- </h:commandLink> --> 然后抛出以下异常: javax.el.PropertyNotFoundException: Property 'takeScreenshot' not found on type monstage.test.com.ScreenShotBean at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:237) at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:214) at javax.el.BeanELResolver.property(BeanELResolver.java:325) at javax.el.BeanELResolver.getValue(BeanELResolver.java:85) at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176) at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203) at org.apache.el.parser.AstValue.getValue(AstValue.java:169) at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189) at com.sun.faces.facelets.el.ELText$ELTextVariable.toString(ELText.java:217) at com.sun.faces.facelets.el.ELText$ELTextComposite.toString(ELText.java:157) at com.sun.faces.facelets.compiler.CommentInstruction.write(CommentInstruction.java:77) at com.sun.faces.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:82) at com.sun.faces.facelets.compiler.UILeaf.encodeAll(UILeaf.java:183) at javax.faces.render.Renderer.encodeChildren(Renderer.java:168) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1779) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782) at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:424) at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:125) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594) 当我如下更改带括号的方法表达式时, <!-- <h:commandLink id="cmdbtn"> --> <!-- <f:ajax event="click" execute="@form" --> <!-- listener="#{screenShotBean.takeScreenshot()}" /> --> <!-- </h:commandLink> --> Then 不会抛出异常,但仍然被调用。 这是怎么造成的,如何解决? 仔细查看堆栈跟踪。这是相关部分: ... org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189) com.sun.faces.facelets.el.ELText$ELTextVariable.toString(ELText.java:217) com.sun.faces.facelets.el.ELText$ELTextComposite.toString(ELText.java:157) com.sun.faces.facelets.compiler.CommentInstruction.write(CommentInstruction.java:77) ... 因此它在注释块中评估 EL(可通过 CommentInstruction 识别)。注释块被视为模板文本。默认情况下,Facelets 也会评估模板文本中的 EL #{}。就像您在编写 <p>#{screenShotBean.takeScreenshot}</p> 时没有任何 JSF 标签一样。 您有多种选择: 完全删除评论块。 通过在注释中添加 \ 前缀来转义 EL 表达式,如 所示 \#{screenShotBean.takeScreenshot} 这样他们就不会被评价。 将整个注释块包裹在 <ui:remove> 中,这样它就不会出现在组件树中(也不会出现在生成的 HTML 输出中)。 通过将以下上下文参数添加到 web.xml 来禁用 Facelets 对 all 注释的解析: <context-param> <param-name>jakarta.faces.FACELETS_SKIP_COMMENTS</param-name> <param-value>true</param-value> </context-param> 请注意,通过这种方式生成的 HTML 输出中不会出现任何评论。 除了 BalusC 已经提供的 选项,您还可以将属性 rendered="false" 添加到您的 commandLink。 如果您希望能够快速切换多个组件,您可能需要考虑在 bean 中创建调试属性或使用项目阶段: rendered="#{facesContext.application.projectStage == 'Development'}" 您还可以使用上下文参数来跳过 web.xml 中的注释。 这是参数: javax.faces.FACELETS_SKIP_COMMENTS

回答 3 投票 0

类“packageName.DonacionBean”没有属性“donar” - 未检测到操作方法?

我在使用 EJB 和 JSF 的 Java 项目中遇到了一个问题,这非常令人沮丧。我有一个简单的设置,其中 XHTML 文件调用托管 bean 中定义的方法。 这是我的 .xhtml:...

回答 1 投票 0

JSF - 类“packageName.DonacionBean”没有属性“donar” - 未检测到操作方法?

我在使用 EJB 和 JSF 的 Java 项目中遇到了一个问题,这非常令人沮丧。我有一个简单的设置,其中 XHTML 文件调用托管 bean 中定义的方法。 这是我的 .xhtml:...

回答 1 投票 0

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