PrimeFaces是一个JSF(Java Server Faces)组件库,附带了大量丰富的组件,这些组件利用了jQuery和jQuery UI。它支持jQuery UI ThemeRoller CSS框架和FontAwesome图标集。请注意,此标签不应与[PrimeNG]结合使用。
加载主题时出错,找不到“primefaces-start”库的“theme.css”资源
当我在 Tomcat 服务器上运行我的项目时,它显示以下错误: 加载主题时出错,找不到“primefaces-start”库的“theme.css”资源 这是堆栈跟踪: javax.servlet。
我想在更新 PrimeFaces 数据表后保留过滤器和当前页面。 为此,我尝试在使用命令链接更新后过滤数据表。然后我会将相同的页面放在过滤器之前...
jQuery 版本增加后,Primefaces 页面加载缓慢
我之前的 Primefaces 版本是 6.0。我将其升级到 Primefaces 10.0(在其网站上迁移部分的帮助下)。Clean&Build 和 Debug 中没有错误。虽然没有
如何在不向服务器发送数据的情况下关闭表单内的模式窗口并防止页面重新加载?
我有一个带有 javaee 和 primefaces 的网络,并且我已将 bootstrap 集成到该项目中。 我知道使用 p:dialog 我可以执行与引导模式窗口相同的行为,但我实现了
如何将 primefaces 添加到我的 jsp 和 servlet 导航栏
我几乎所有的项目都在 jsp 和 servlet 中,现在我想将 primefaces 中的页面添加到我的导航栏...无论我尝试过什么,它都不会将其添加到我的项目中。 ..我是吗
我有一个树表和两个按钮: 一个用于倒塌树和 另一个用于扩展, 但它们不起作用。在支持 bean 上,我做了 root.setExpanded(true);和 root.setExpanded(false);乙...
我从这个 Primefaces http://blog.primefaces.org/?p=1512 博客中复制了有关简单密码验证的确切代码 我从这个 Primefaces http://blog.primefaces.org/?p=1512 关于简单密码验证的博客中复制了确切的代码 <h:outputLabel for="pwd1" value="Password 1: *" /> <p:password id="pwd1" value="#{registerMB.password}" feedback="false" match="pwd2" label="Password 1" required="true" /> <h:outputLabel for="pwd2" value="Password 2: *" /> <p:password id="pwd2" value="#{registerMB.password}" feedback="false" label="Password 2" required="true" /> <f:facet name="footer"> <p:commandButton value="Register" action="/pages/public/login" /> <p:commandButton value="Cancel" immediate="true" action="/pages/public/login" /> </f:facet> 验证有效,但我只能得到验证错误。永远不会显示密码 1 应与密码 2 匹配的消息。还有这个配置吗? 我下载了 Primefaces 3.4.1 尝试添加以下内容 p:password 标签内的 validatorMessage 属性 id="pwd2": <p:password id="pwd2" value="#{registerMB.password}" feedback="false" label="Password 2" required="true" validatorMessage="password 1 should match password 2"/> 添加 p:message 标签以在 h:form 标签下方显示错误 <p:messages id="messages" showDetail="true" autoUpdate="true"/> 添加<p:messages id="messages" showDetail="true" autoUpdate="true"/> 就像 int Primefaecs 密码展示 <h:form id="form"> <p:panel header="Match Mode"> <p:messages id="messages" showDetail="true" autoUpdate="true"/> <h:panelGrid columns="2" id="matchGrid"> <h:outputLabel for="pwd1" value="Password 1: *" /> <p:password id="pwd1" value="#{passwordBean.password5}" match="pwd2" label="Password 1" required="true"/> <h:outputLabel for="pwd2" value="Password 2: *" /> <p:password id="pwd2" value="#{passwordBean.password5}" label="Password 2" required="true"/> </h:panelGrid> <p:commandButton id="saveButton" update="matchGrid" value="Save" /> </p:panel> </h:form> 您可以使用命名空间 jsf/core 中的元素命名属性 xmlns:f="http://xmlns.jcp.org/jsf/core" <div class="mb-3"> <h:outputLabel for="passwordInput" value="Password" styleClass="label"/> <h:inputSecret id="passwordInput" value="#{auth.userRegistration.password}" required="true" requiredMessage="Password is required" styleClass="form-control" maxlength="30"> <f:validator validatorId="passwordValidator" /> <f:attribute name="password2" value="#{password2}"/> </h:inputSecret> <h:message for="passwordInput" styleClass="error"/> </div> <div class="mb-3"> <h:outputLabel for="passwordInput2" value="Confirm Password" styleClass="label"/> <h:inputSecret id="passwordInput2" binding="#{password2}" required="true" maxlength="30" requiredMessage="Password are not matched" styleClass="form-control"/> <h:message for="passwordInput2" styleClass="error"/> </div>
如何通过javascript使用costum过滤器(selectCheckboxMenu)保存和恢复primefaces数据表的过滤器状态?
我有一个 primefaces 数据表,想使用 selectCheckboxMenu 对其进行过滤 我有一个 primefaces 数据表,想使用 selectCheckboxMenu 对其进行过滤 <p:column filterBy="#{entity.category}" headerText="Category" filterMatchMode="in"> <f:facet name="filter"> <p:selectCheckboxMenu label="Category" onchange="PF('datatable').filter()"> <f:selectItems value="#{bean.categoryOptions}"/> </p:selectCheckboxMenu> </f:facet> <h:outputText value="#{entity.category}" /> </p:column> 过滤器本身效果很好。我可以过滤数据表,并且在重新加载站点后也只有过滤后的值。 我的问题是重新加载后数据表的过滤状态消失了。我看到过滤器有效,但我在数据表的标题中没有看到过滤器的值。 带有数据表的表单: <h:form id="form"> <p:dataTable var="entity" value="#{bean.list}" widgetVar="datatable" filterEvent="enter" id="datatable" lazy="true"> <p:ajax event="filter" process=":form:filters" onstart="saveDatatableState()"></p:ajax> ... columns ... </p:dataTable> <h:inputHidden id="filters" value="#{bean.filters}" /> <h:inputHidden id="page" value="#{bean.page}" /> <h:inputHidden id="npages" value="#{bean.npages}" /> <h:inputHidden id="scrollPos" value="#{bean.scrollPos}" /> </form> <script src="js/DataTableFilterStorage.js" /> <script> $(function(){ loadDatatableState(); }); </script> 过滤器值通过 JavaScript 保存和加载。这些方法位于文件 DataTableFilterStorage.js 中: function saveDatatableState(){ var filterNormal = $('form .ui-column-filter').serialize(); var filterCustomText = $('form .ui-column-customfilter .ui-inputfield').serialize() if (filterNormal != "" && filterCustomText != "") { $(fFilter).val(filterNormal + '&' + filterCustomText); } else { $(fFilter).val(filterNormal + filterCustomText); } var page = $('.ui-paginator-page.ui-state-active:first').text(); if(!page) page = 0; var scrollPos = $('body').scrollTop(); if(!scrollPos) scrollPos = 0; $(#page).val(page); $(#npages).val($('#yui-pg0-0-rpp').val()); $(#scrollPos).val(scrollPos); } function loadDatatableState(){ var filters = $(#filters).val().split('&'); if (filters != ""){ for(var i = 0; i < filters.length; i++){ var f = filters[i].split("="); if(f.length != 2 || f[1].length < 1) continue; $('#'+f[0].replace(/%3A/g, '\\:')).val(decodeURIComponent(f[1]).replace('+', ' ')); //For Dropdown-Menues $('#'+f[0].replace(/%3A/g, '\\:') + ' option:selected').val(decodeURIComponent(f[1]).replace('+', ' ')); } } var handler = function(e, xhr, settings) { if($(#page).val().length > 0 && $(#page).val() != 1){ var p = $('a.ui-paginator-page[page='+$(#page).val()+']:first'); if(p.length > 0){ p.attr('id', 'currentPage'); var event = document.createEvent("HTMLEvents"); event.initEvent("click", true, true); document.getElementById('currentPage').dispatchEvent(event); } } $(#form).unbind('ajaxComplete', handler); }; $(#form).ajaxComplete(handler); }; 正常文本字段、下拉菜单(单选选项)和输入掩码中的过滤器值已正确保存和加载,但 selectCheckboxMenu 中的过滤器值却未正确保存和加载。 过滤器未正确保存的原因是$(#filter).val($('form .ui-column-filter').serialize());行。它仅保存类型为“ui-column-filter”的过滤器。 selectCheckboxMenu 中的过滤器的类型为 ui-column-customfilter。我尝试通过将行更改为 $(#filter).val($('form .ui-column-customfilter').serialize()); 来选择值,但它不起作用。 该解决方案必须在 IE 11 下工作。我使用的是 Primefaces 5.2 和 JSF 2.0。 您可以使用自 Primefaces 6.1 以来实施的新 multiViewState 功能 来保持 dataTable 状态。
我有 PrimeFaces 标签 selectCheckboxMenu。 我有 PrimeFaces 标签 selectCheckboxMenu。 <p:selectCheckboxMenu dynamic="true" filter="true" filterMatchMode="startsWith" label="Cities" style="width: 15rem" panelStyle="width: 15rem" scrollHeight="250" value="#{checkboxView.selectedCities}"> <f:selectItems value="#{checkboxView.cities}"/> </p:selectCheckboxMenu> 我正在努力实现这一点: 当我打开此列表时,如果没有选中其他复选框,则仅选中顶部复选框; 当我选中列表中的一个复选框时,顶部的复选框将取消选中; 我认为 js 可以帮助我,我试图在文档中找到一些东西,但找不到。 您期望的结果的第二部分默认按预期工作 iirc。关于前面的内容,如果您希望在打开菜单后选择列表中的第一项(如果我理解正确的话),请使用方法toggleItem()并将其与js函数结合起来。
Primefaces fileUpload - ajax 调用哪个事件
我正在使用 Primefaces 5.3,我想在上传文件时进行 ajax 调用 我正在使用 Primefaces 5.3,我想在上传文件时进行 ajax 调用 <p:fileUpload id="fileUp" fileUploadListener="#{carEditDocumentController.handleFileUpload}" label="#{msg['document.selectDocument']}" auto="true" required="true" requiredMessage="#{msg['error.required']}" mode="advanced" skinSimple="true" update="carDocumentNewName"> <p:ajax listener="#{carEditDocumentController.checkDocument()}" event="???" update="carDocumentError"/> </p:fileUpload> 上传文件时需要执行哪个事件监听? 谢谢你。 我不知道有任何相关事件。但我相信还有其他两种选择: 只需从 fileUploadListener 调用 checkDocument() 即可。 在oncomplete中调用remoteCommand: <p:fileUpload ... oncomplete="rc()" /> <p:remoteCommand name="rc" update="carDocumentError" actionListener="#{carEditDocumentController.checkDocument()}" /> 您可以使用 valueChangeListener 属性,该属性在执行侦听器方法后执行,在本例中它将加载文件。 一个例子是这样的: <p:fileUpload ... oncomplete="rc()" valueChangeListener="#{carEditDocumentController.checkDocument()}" />
嘿,我被这个问题困扰了很长时间,找不到解决方案。 现在,假期结束后,问题仍然在等着我,我不知道该做什么,也没有动力。我...
嘿,我被这个问题困扰了很长时间,找不到解决方案。 现在,假期结束后,问题仍然在等着我,我不知道该做什么,也没有动力。我...
我们刚刚购买了 PrimeFaces 主题“Sentinel”。然而我注意到 Chrome 中的表格有一个奇怪的样式。表页眉和页脚有橙色边框。我的同事看不到...
如何防止 Primefaces 在子菜单文本和三角形图标之间缠绕?
当子菜单标签太长时,Primefaces 会将右指三角形放在下一行: 我怎样才能让 Primefaces 将三角形放在同一条线上,就像我的短子菜单一样......
水平滚动时如何防止 Primefaces 旋钮标签显示在旋钮圆圈之外?
我正在使用 Primefaces 13。我有一个数据表,其中有一列使用 p:knob 显示数字。如果所有列都不适合视口,并且我水平滚动数据表,则...
如何将 JavaScript Blob 上传到 JSF 而不将其转换为 Base64 字符串?
我在 JS 中将音频录制为 blob。如何上传它而不将其转换为 Base64 字符串并通过 或 发送?
如何上传JavaScript blob而不将其转换为base64字符串?
我已经在js中将音频录制为blob,那么如何在不将其转换为base64字符串并通过或发送的情况下上传它?
无法使用 PrimeReact Context 中的“changeTheme”
我正在尝试使用 prime Reacts 网站上记录的changeTheme 功能 我在这里设置了一个非常基本的在线沙箱 //CSS 导入“./App.css”; 导入 {
我有一个命令按钮和一个对话框。问题是对话框出现后就消失了(1-2 毫秒后)。我的命令按钮或其对话框有问题吗? 我有一个命令按钮和一个对话框。问题是对话框出现后就消失了(1-2 毫秒后)。我的命令按钮或其对话框有问题吗? <p:commandButton id="showDetailsButton" title="Details" onclick="details.show();" process="@this" update=":tabView:myForm:myDialogId" icon="ui-icon-search"> </p:commandButton> <p:dialog id="myDialogId" header="Details" widgetVar="details" resizable="false" height="600" width="450" > //some stuff </p:dialog> 将 onclick 更改为 oncomplete,现在工作正常。 <p:commandButton id="showDetailsButton" title="Details" oncomplete="details.show();" process="@this" update=":tabView:myForm:myDialogId" icon="ui-icon-search"> 默认情况下,<p:commandButton>呈现为 <button type="submit" ....> ... </button> 编辑:如果您已通过指定ajax禁用了ajax=false行为,请阅读下面的评论。 因此它将触发回发。因此,您的页面向服务器发出 POST 请求并刷新。 顺便说一句,这里不需要 PrimeFaces 命令按钮,只需使用 <input type="button" onclick="details.show()" value="Details"/> 从命令按钮中删除进程和更新。他们刷新页面/部分。而你不希望这样。 如果您在表单标记内创建了另一个表单,则应确保它在外部,因为不知情的更新操作可能会中断该过程。