JavaServer Faces(JSF)是一种模型 - 视图 - 展示器框架,通常用于创建基于HTML表单的Web应用程序。使用标准组件和渲染工具包,可以使用Facelets或JSP标记定义有状态HTML视图,并通过支持bean连接到模型数据和应用程序逻辑。
我使用 Eclipse 和 JBoss Tools 为 Apache TomEE 8.0.16 服务器开发基于 JSF 2.3 和 JPA 2.2 的 Web 应用程序,并使用 Hibernate 作为 JPA 实现。我的项目有很多下拉菜单......
我想在注册用户时添加验证码验证。我正在使用 p:captcha。密钥设置正确,我可以在本地计算机中看到验证码。但在服务器上,验证验证码和
Primefaces:动态更改<p:ajax element?
JSF、Java Server Faces、Primefaces。 我正在努力寻找如何更改 的更新属性的解决方案 JSF、Java Server Faces、Primefaces。 我正在努力寻找如何更改 的更新属性的解决方案 场景:带有 的对话 <p:dialog modal="true"> <p:ajax event="close" update="COMPONENT IDs" listener="#{bean.onClose()}" /> 我想在打开对话框时更改更新属性。 我试过了 使用 EL 表达式值从 bean 获取变化的属性值。 这不起作用,因为属性值是在第一次渲染时设置的,并且再也不会设置 在bean的监听器方法中添加更新组件ID: PrimeFaces.current().ajax().update("component IDs"); 这有效。 但:不适用于 PrimeFaces 选择器 (PFS)。我需要那个。 就像更新=“@(.mystyle)” (我猜是因为在这种情况下,组件是由 jquery 在客户端选择的。) 有什么想法吗? 谢谢 彼得 彼得, 有一个允许动态update=""的开放票证,这也是一个开放的面孔规范问题。请参阅 Faces 规范问题:https://github.com/jakartaee/faces/issues/1499 但是您考虑过 PrimeFaces 中的观察者模式吗? https://www.primefaces.org/showcase/ui/ajax/observer.xhtml 基本上,您的对话框应该只是“触发事件”,并且您的组件应该订阅该事件。 如果任何组件不是 rendered="",它们显然不会关心该事件。 所以对话框的工作只是触发一个 closeDialog 事件,并且页面上呈现的任何关心该事件的组件都应该订阅?
我已使用 build.gradle 更新到 Omnifaces 3.3: 编译组:'org.omnifaces',名称:'omnifaces',版本:'3.3' 我的 EAR 可以在 3.2 上运行,但在部署 3.3 时出现以下错误: 21:07...
我有一个上传文件的小部件,我想在上传后预览文件。我正在使用 p:media 标签,但它没有显示上传的 pdf 文件。 但是,我有另一个小部件,其中有一个...
如何在 PrimeFaces 中通过 JavaScript 触发组件刷新?
是否可以从 javascript 更新 PrimeFaces 组件,以便强制刷新? 我正在对话框中使用此按钮进行 ajax 保存调用。 我已附上我的自定义 javascr...
我目前正在尝试使用 required="true" 进行简单验证 ...
如何验证每个带有 required="true" 的 <p:cellEditor><f:facet name="input"> 是否已填写?
所以我有这个 JSF 代码,它将显示数据表的一列,并且每一列都必须填写。我还将 rowEdit 按钮放在右侧。因此,在用户填写数据之前,必须单击
所以我有这个 JSF 代码,它将显示数据表的一列,并且每一列都必须填写。我还将 rowEdit 按钮放在右侧。因此,在用户填写数据之前,必须单击
<o:validateBean>:将List<DemoData>变成List<String>?
我想使用 在类级别验证我的 bean。该豆是: @命名 @ConversationScoped 公共类 ValidateClassLevelBean 实现可序列化 { ... @注入
浏览器的行为UTF-8页面带有额外字符,如U+FFFE(ajax错误)XML解析错误:格式不正确
我们正在使用 PrimeFaces 开发一些 JSF Web 应用程序。 可以在 inputText 中复制/粘贴带有非 UTF-8 字符(例如 ``(这是该字符))的文本并保存页面。但我...
自 java 8 以来,tomcat 日志中出现“位置 X 处未知类型常量池”
我在 Tomcat 服务器上部署了一个基于 Java JSF2 Web 的应用程序,自从我们迁移到 Java 8 / Tomcat 8 后,此错误在 tomcat 输出中出现很多: 十二月2016 年 05 月 10:51:07 上午 com.sun.faces。
Eclipse 2023-09、Java 17 和 xhtml 内容辅助不起作用
我正在运行 Eclipse 2023-09 (4.29.0)、Java 17 (Amazon Corretto 17.0.8_8),并注意到在 xhtml 页面上使用 Java 11 时可用的内容辅助似乎不再起作用。 我们
如何获取Primefaces Filtered DataTable字段中输入的值?
我有一个数据表: 我有一个数据表: <p:dataTable id="pDataTableListaRegistros" var="registro" value="#{arquivoBean.listaRegistros}" paginator="true" rows="20" filteredValue="#{arquivoBean.filteredListaRegistros}" styleClass="tabelaCentralizada"> 我想获取在过滤器字段“Code”、“Data do Registro”和“Usuário”中输入的值,以便在支持 bean 中进行操作。 您可以通过以下方式从数据表中获取过滤值: 通过绑定或遍历树从视图获取对数据表的引用。通过绑定,您将拥有: <p:dataTable binding="#{arquivoBean.theDataTable}" id="pDataTableListaRegistros" var="registro" value="#{arquivoBean.listaRegistros}" paginator="true" rows="20" filteredValue="#{arquivoBean.filteredListaRegistros}" styleClass="tabelaCentralizada"/> 在你的支持豆中: DataTable theDataTable = new DataTable(); //getter and setter 来自装订 Map<String, String> theFilterValues = theDataTable.getFilters(); //This returns a map of column-filterText mapping. 您可以向您的 bean 添加映射,例如: private Map<String, Serializable> filterValues = new HashMap<>(); 并使用 filterValue 的 p:column 属性将值绑定到地图,例如: <p:column headerText="Name" sortBy="#{item.name}" filterBy="#{item.name}" filterMatchMode="contains" filterValue="#{yourBean.filterValues['name']}"> #{item.name} </p:column> 此解决方案的优点是,当您更新表时,这些值将被保留。
我有一个数据表,并且特定行的复选框被禁用。但它没有显示为选定的。 我想将其显示为默认选中状态,尽管它默认处于禁用状态。 请帮助我如何做...
如何获取<p:dataTable> Primefaces中选定的单元格?
如果可能的话,我想获取Primefaces的选定单元格或列(id) 我的桌子是这样的: 如果可能的话,我想获取 Primefaces 的选定单元格或列(id)<p:dataTable> 我的桌子是这样的: <p:dataTable id="table" var="list" value="#{bean.list}" rowKey="#{list}" selectionMode="single" > <p:ajax event="rowSelect" listener="#{bean.onRowSelect}" /> <p:column headerText="Date" > <h:outputText value="#{list.SDate}" /> </p:column> <p:column headerText="Name" > <h:outputText value="#{list.IName}" /> </p:column> </p:dataTable> 通过这种方法,我可以使用以下方法选择行(行): <p:ajax event="rowSelect" listener="#{bean.onRowSelect}" /> 但是我无法获取选定的列 Date 或 Name 方法onRowSelect就像: public void onRowSelect(SelectEvent event) { myObject obj = (myObject)event.getObject(); // ... } 卡里姆, 我认为你忘记在你的ajax事件上添加update: <p:ajax event="rowSelect" listener="#{bean.onRowSelect}" update="table" /> 在 update 上,您需要放置表格 ID 或封装表格的元素。 如果表位于outputPanel内,您可以更新它的id而不是表。 update属性是发送屏幕信息所必需的 到你的背豆。 希望对您有所帮助... 祝你好运! 您可以执行类似的操作来获取特定列的值 <p:dataTable id="firsttable" var="list" value="#{bean.list}" rowKey="#{list}" selectionMode="single" > <p:column headerText="Date" > <h:outputText value="#{list.SDate}" /> </p:column> <p:column headerText="Name" > <h:outputText value="#{list.IName}" /> </p:column> </p:dataTable> // This is capture the value of selected column <h:inputText id="selectedId" value="#{bean.selectedColumn}" style="display:none"> <f:ajax listener="#{bean.onRowSelect}"></f:ajax> </h:inputText> 此脚本捕获所选行的值并设置 inputHidden jQuery.noConflict(); $(window).load(function () { $(document).delegate("#firsttable td", "click", function (event) { var columnNumber = jQuery(this).index();//get index of clicked row var colval=jQuery(this).find('div span').text()); // get the column value $("#selectedId").val(colval); //set value in the inputtext $("#selectedId").change(); //this will trigger the ajax listener }); }); 并在bean定义属性中获取输入文本值 String selectedColumn; public void onRowSelect(AjaxBehaviorEvent event) { String value=getSelectedColumn(); System.out.println(value); } 我认为 primefaces 没有任何内容可以选择列,您可能需要添加类似的内容 <h:outputText value="#{list.SDate}" > <f:ajax event="select" listener="#{bean.setSelectedColumn}"/> </h:outputText> 使用 event.getComponent() 进一步确定选择哪一列 关于 PrimeFaces DataTable、widgetVar、Javascript、jQuery: 我在使用 Primefaces widgetVar 获取 PrimeFaces 3.5 DataTable 的选定行时遇到了麻烦。 我在这里查看了 PF 来源... https://code.google.com/p/primefaces/source/browse/primefaces/trunk/src/main/resources/META-INF/resources/primefaces/datatable/datatable.js?r=10301 ...并且还使用Chrome调试器检查DataTable,但没有找到getSelectedRow方法。 我可能错过了一些有用的东西,但这是我的技巧,它有效。 var selectedRow = Array(); $('#idForm1\\:idDT tr.ui-state-highlight').each(function(i) { $(this).children('td').each(function(ii) { selectedRow.push($(this).text()); }); }); 数组 selectedRow 填充了所选数据表行的 <td> 文本值。
我有一个 h:inputText 控件,我可以在其中输入最多 7 位数字,它会将它们转换为十进制表示形式(即输入“9999999”,它将呈现“9999999.0”)。 然而,当...
我想制作响应式模式,请帮助我。 我想制作响应式模式,请帮助我。 <p:dialog id="idModal" widgetVar="modalWV" modal="true" width="600" header="Titulo Modal"> <h:panelGrid id="panelPermisoGuardar" columns="2" cellpadding="10" width="100%" //campos </p:panelGrid> </p:dialog> 这就是我在响应式屏幕上看到它时的样子 无响应模态 我是这样解决的 首先创建对话框,其中包含一个用于字段的面板。 <p:dialog id="modal" widgetVar="modalWV" modal="true" styleClass="modalResponsivo" header="Titulo Modal"> <h:panelGrid id="idPanel" columns="2" width="100%" columnClasses="ui-g-12 ui-md-2,ui-g-12 ui-md-10" layout="grid"> </h:panelGrid> </p:dialog> 然后为 'modalResponsivo' 类添加 css 规则 @media screen and (max-width: 768px ) { .modalResponsivo { width: 90% !important;} } @media screen and (min-width: 1024px ) { .modalResponsivo { width: 30% !important; } } 这看起来像全屏 Imagen 1 这就是响应式屏幕的样子 Imagen 2 您还可以在对话框属性中使用 % <p:dialog id="gmapDialog" widgetVar="dlg" width="90%" height="500" fitViewport="true" modal="true"> <p:autoUpdate/> <p:ajax event="close" update="gmapDialog"/> <embed class="w-full h-full" src="#{lightBoxBean.url}"/> </p:dialog>
我尝试将引导表库与 jsf 一起使用,但它对我不起作用。 我有一个 Facelet 模板,其中包含以下文件: 我尝试将引导表库与 jsf 一起使用,但它对我不起作用。 我有一个 Facelet 模板,其中包含以下文件: <h:outputStylesheet name="./css/bootstrap-datepicker.css"/> <h:outputStylesheet name="./css/bootstrap.css"/> <h:outputStylesheet name="./css/bootstrap-table.css"/> <h:outputStylesheet name="./css/sb-admin.css"/> <h:outputStylesheet name="./css/morris.css"/> <h:outputStylesheet name="./css/AdminLTE.css"/> <h:outputScript name="jquery/jquery-plugins.js" library="primefaces"/> <h:outputScript name="./js/jquery.js"></h:outputScript> <h:outputScript name="./js/addrow.js"></h:outputScript> <h:outputScript name="./js/modal.js"></h:outputScript> <h:outputScript name="./js/bootstrap.js"></h:outputScript> <h:outputScript name="./js/app.js"></h:outputScript> <h:outputScript name="./js/dashboard.js"></h:outputScript> <h:outputScript name="./js/demo.js"></h:outputScript> <h:outputScript name="./js/bootstrap-datepicker.js"></h:outputScript> <h:outputScript name="./js/flot-data.js"></h:outputScript> <h:outputScript name="./js/bootstrap-table-all.js"></h:outputScript> <h:outputScript name="./js/raphael.min.js"></h:outputScript> <h:outputScript name="./js/morris.js"></h:outputScript> <h:outputScript name="./js/formatter.js"></h:outputScript> <h:outputScript name="./js/jquery.formatter.js"></h:outputScript> 我创建了一个 xhtml 文件,它是该模板的客户端。 默认的引导程序在每个客户端中都可以正常工作,我可以使用 bootstrap.css 中的每个类 但是当我尝试在客户端 xhtml 中创建一个表时,如下所示: <table id="tsttable" class="table table-bordered table-hover" > <tr> <th>Azonosító</th> <th>Albetét típusa</th> <th>Utca neve</th> <th>Költségviselő neve</th> </tr> <tbody class="searchable"> <ui:repeat var="pack" value="# {mainViewController.showPackageContent()}" varStatus="status"> <tr> <td> <h:commandLink class="glyphicon glyphicon-pencil" value="#{pack.id}" actionListener="#{mainViewController.navigateToChosedCustomer(item.id)}"> </h:commandLink> </td> <td>#{pack.types.description}</td> <td>#{pack.BFlatDataCollection.addrStreet}</td> <td>#{pack.BAssocCaseCollection.userId.lastName} #{pack.BAssocCaseCollection.userId.firstName} </td> </tr> </ui:repeat> </tbody> </table> 然后,如果我将这个“data-toggle =“table”属性添加到表中,它不会有任何效果.. 但是如果我尝试使用这样的 js 在客户端 xhtml 中创建一个表,代码将创建引导表: $('#tsttable').bootstrapTable({ columns: [{ field: 'id', title: 'Item ID' }, { field: 'name', title: 'Item Name' }]}); 如何将 bootstrap table 与 jsf 一起使用?有人有什么想法吗? 谢谢你! Jsf 在这方面只不过是一个服务器端 html 生成器。如果你可以用纯 html 来实现(没有 $('#tsttable').bootstrapTable({...})),那么你也可以用 jsf 来实现。因此,弄清楚这一点将使上面的示例自动起作用。但弄清楚这一点应该是一个不同的问题
我一直在受苦并多次尝试使用教程中的primefaces创建一个非常简单的项目。我已经做了很多,但所有这些都不适合我。 他们都只插入一个