JavaServer Faces(JSF)是一种模型 - 视图 - 展示器框架,通常用于创建基于HTML表单的Web应用程序。使用标准组件和渲染工具包,可以使用Facelets或JSP标记定义有状态HTML视图,并通过支持bean连接到模型数据和应用程序逻辑。
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创建一个非常简单的项目。我已经做了很多,但所有这些都不适合我。 他们都只插入一个
使旧的 httpssession 失效会删除当前 httpssession 的上下文
我的应用程序使用 @ViewScoped LoginBean 处理登录,该 LoginBean 注入了一个存储用户信息和当前 HttpSession 的 @SessionScoped SessionBean。 这个应用程序允许用户N单独
如何将 Web 应用程序从 Spring MVC 重新设计为 JSF?
我可以使用什么来进行数据访问、计时器等? Seam、jBoss、GlassFish?或者只是 Tomcat + JSF + Hibernate/JPA? 我只需要向 Spring MVC 页面添加一个 JSF 组件,但恐怕我必须重写整个...
h:commandLink / h:commandButton 的 oncomplete 属性未调用
我们正在从 JSF 1.2 迁移到 JSF 2.2.6 以及 RichFaces 4.5.2。面临未完成的问题没有被调用。 onclick 中的 JS 函数被调用,但 oncomplete 中的 JS 没有调用...
我在 JSF 中有一个命令按钮,当单击它时,它会执行一些 Java 代码。在执行此代码之前,我想执行一些检查,并且检查返回 true 我想显示一个弹出窗口,如何...
错误:jakarta.faces.view.facelets.TagAttributeException:jakarta.el.PropertyNotFoundException [重复]
在 wildfly-31.0.1.final 服务器中部署时出现错误 ERROR [nemo](默认任务 1)异常传递给 NewExceptionHandlerWrapper: jakarta.faces.view.facelets.TagAttributeException: /资源...
评估复合组件中是否设置了 MethodExpression 属性(获取 PropertyNotFoundException)
我有一个带有 MethodExpression 属性changeListener 的 UI 组件: 我有一个带有 MethodExpression 属性的 UI 组件 changeListener: <composite:interface> <composite:attribute name="changeListener" required="false" method-signature="void actionListener(javax.faces.event.ActionEvent)" /> .. </composite:interface> <composite:implementation> <p:remoteCommand name="ajaxOnChange" update="#{cc.attrs.onChangeUpdate}" oncomplete="#{cc.attrs.onchange}" actionListener="#{cc.attrs.changeListener}" /> .. </composite:implementation> 这个 changeListener 属性是一个可选方法表达式,用作 remoteCommand 中的 actionListener,我想仅在设置了 <p:remoteCommand> 属性时才渲染 changeListener。 我尝试了多种方法来检查属性是否设置,特别是: <c:if test="#{! empty cc.attrs.changeListener}"> 和 <p:remoteCommand rendered="#{cc.attrs.changeListener != null}" /> 但是我得到了 javax.el.PropertyNotFoundException,因为它尝试将属性评估为属性。 如何判断是否设置了可选方法属性? 谢谢 您已经在正确的方向上<c:if>了。 rendered 永远不会起作用。您只需要检查 EL 表达式 是否已设置,而不是实际将整个 EL 表达式作为值表达式进行计算并检查其结果是否不为空,如果 EL 表达式表示方法表达式,这当然会失败。 <c:if test="#{not empty cc.getValueExpression('changeListener')}"> ... </c:if> 然而,这个解决方案有点可怕:您在这里将方法表达式作为值表达式。然而,只要您没有实际评估所包含的 EL 表达式(就像您最初的 #{cc.attrs.changeListener} 尝试在幕后所做的那样),那么就没有什么问题。没有其他干净的方法,因为 JSF API 中没有像 UIComponent#getMethodExpression() 这样的东西。
Jakarta 部署时发生 wildfly-31.0.1.Final 错误
ERROR [nemo](默认任务 1)异常传递给 NewExceptionHandlerWrapper: jakarta.faces.view.facelets.TagAttributeException: /resources/components/new/commandLink.xhtml @53,44 test="#(lemp...
PrimeFaces 对话框 closeDynamic 不起作用
我们最近迁移到 PrimeFaces 11 并更改了代码以按照 https://primefaces.github.io/primefaces/11_0_0/#/core/dialogframework 打开和关闭对话框。 打开对话框,其中有...
在基于 JSF 2.1 和 Primefaces 6.0 的应用程序中,我尝试向数据表的标题添加工具提示。 在我当前的解决方案中,仅当精确指向鼠标时才会出现工具提示...
错误:jakarta.faces.view.facelets.TagAttributeBxception:jakarta.el.PropertyNotFoundException
在 wildfly-31.0.1.final 服务器中部署时出现错误 错误 [nemo](默认任务 1)异常传递给 NewExceptionHandlerWrapper: jakarta.faces.view.facelets.TagAttributeException: /资源...
Primefaces 14.0.0 中的图表导致 jQuery 出现错误
我从 Primefaces 13 更新到 Primefaces 14.0.0。图表功能已升级为使用 Chart.js,我相应地更新了我的代码。由于它不能开箱即用,所以我复制了示例......