JavaServer Faces(JSF)是一种模型 - 视图 - 展示器框架,通常用于创建基于HTML表单的Web应用程序。使用标准组件和渲染工具包,可以使用Facelets或JSP标记定义有状态HTML视图,并通过支持bean连接到模型数据和应用程序逻辑。
我正在开发一个 JSF 项目,我需要将 List 传递给复合组件。但是,当我尝试在 cc:attribute 的 type 属性中指定此泛型类型时遇到问题......
Primefaces 13 如何避免警告“无法自动确定‘lazy’属性,回退到 false。”
我正在使用 PF 13.0.3。我在 UITable 上收到此警告“无法自动确定惰性属性,回退到 false。要么在组件上定义惰性属性,要么确保...
我们的应用程序是基于 Spring Boot 构建的,前端是使用 primefaces 6.2 构建的...最近我们需要检查会话是否处于活动状态..即客户端每 40 分钟检查一次...
我该怎么做?我想显示来自实体的值,而不是字符串,但如何将其作为有效代码来执行? itemLabel="#{mandatoryFriendship.receiver == loginBean.currentMandatory ?
如何在不使用 HTML 表单的情况下以编程方式向 JSF 页面发送 POST 请求?
我有非常简单的 JSF bean,如下所示: 导入 org.jboss.seam.annotations.Name; @名称(样本.NAME) 公共课样本{ 公共静态最终字符串名称=“df”; 私有字符串文本=“
JSF:ExpressionLanguage if else 表达式
我该怎么做?我想显示来自实体的值,而不是字符串,但如何将其作为有效代码来执行? itemLabel="#{mandatoryFriendship.receiver == loginBean.currentMandatory ?
Primefaces 自动完成组件具有不同的值类型,用于建议和组件值
我不确定这是否可能......但我想使用 autoComplete 组件,其中 value 属性是 String 类型,并且completeMethod 返回一些重对象的列表。 我...
在使用 actionListener 完全填充的记录的对话框编辑后,JSF 使用 AJAX 更新数据表
我有一个 PrimeFaces 数据表,每行都有编辑按钮,可打开 Primefaces 动态对话框,但为了克服对话框渲染时的 LazyLoad 异常,我使用 actionListener 重新查询数据...
我可以使用ajax(存在于数据表中)从命令链接调用对话框。 要求-我单击的行(命令链接),对话框应显示单击的行的值。 问题 - f:
我在使用 JRebel、Spring、JSF Mojarra 2.0.3 和 WebLogic 10.3 热重载 Facelets 文件时遇到了一些问题。 JRebel 成功重新加载 /WebContent 下的常规 Java 类和 js/css 文件,...
如何在应用程序中使用新的@ClientWindowScoped注解?
Jakarta Faces 4.0 引入了新的 @ClientWindowScoped 注释。然而,在搜索规范和实现时,我没有找到任何其在应用程序中实际使用的示例。 也许...
FACELETS_REFRESH_PERIOD 的默认值是多少?
在 JSF 应用程序中,参数 javax.faces.FACELETS_REFRESH_PERIOD 可用于启用/禁用 XHTML 文件的自动重新加载。 我目前正在研究
如何将 Messages.properties 链接到 facesContext.getApplication().getMessageBundle()?
由于某种原因,以下代码不起作用,我不明白为什么。 @PostConstruct 私有无效初始化() { facesContext = FacesContext.getCurrentInstance(); 语言环境 = facesContext。
我希望用户向 JSF 的 inputText 组件输入一个或多个名称。 所以我正在考虑这样的托管 bean: 公共类 MyBean { 私有 String[] 名称; 公共字符串[]
如何在 p:inputTextarea PrimeFaces 中停用拼写检查?
我想停用 PrimeFaces 输入文本区域中的拼写检查。 在 p:inputTextarea 中不可能拼写检查=“假” 我想停用 PrimeFaces 中的拼写检查 inputTextarea。 spellcheck="false" 在 p:inputTextarea 中是不可能的 <p:inputTextarea value="#{mybean.cardescription}" cols="95" autoResize="true" rows="20"/> 使用以下内容: <h:head> <h:outputScript name="/js/util/disableSpellCheck.js"/> </h:head> $('inputTextId').attr('spellcheck','false') 虽然我参加聚会已经很晚了,但我认为有一种更干净的方法可以不用 Javascript 来完成它。当您包含命名空间 xmlns:pt="http://xmlns.jcp.org/jsf/passthrough" 时,您将属性传递给生成的 HTML,因此您可以直接在 JSF 代码中设置该属性: <p:inputTextarea value="#{mybean.cardescription}" cols="95" pt:spellcheck="false" autoResize="true" rows="20"/> 这适用于其组件中没有相应 JSF 属性的所有 HTML 属性。 此处选择 pt 是为了避免与 PrimeFaces 发生命名空间冲突。您还经常会发现 p 表示直通属性。
如何在 p:inputTextarea Prime Faces 中停用拼写检查?
我想停用 Prime Faces 输入文本区域中的拼写检查。 在 p:inputTextarea 中不可能拼写检查=“假” 我想停用 Prime Faces 中的拼写检查 inputTextarea。 spellcheck="false" 在 p:inputTextarea 中是不可能的 <p:inputTextarea value="#{mybean.cardescription}" cols="95" autoResize="true" rows="20"/> 使用以下内容: <h:head> <h:outputScript name="/js/util/disableSpellCheck.js"/> </h:head> $('inputTextId').attr('spellcheck','false') 虽然我参加聚会已经很晚了,但我认为有一种更干净的方法可以不用 Javascript 来完成它。当您包含命名空间 xmlns:pt="http://xmlns.jcp.org/jsf/passthrough" 时,您将属性传递给生成的 HTML,因此您可以直接在 JSF 代码中设置该属性: <p:inputTextarea value="#{mybean.cardescription}" cols="95" pt:spellcheck="false" autoResize="true" rows="20"/> 这适用于其组件中没有相应 JSF 属性的所有 HTML 属性。 此处选择 pt 是为了避免与 PrimeFaces 发生命名空间冲突。您还经常会发现 p 表示直通属性。
在我的 JSF 应用程序中,我尝试使用 Web 套接字将更新从后端推送到前端。后端在我正在收听的 ActiveMQ 主题上发布消息(在 @ApplicationScoped 级别...
我需要您的帮助来在对话框中显示错误消息。单击命令按钮后,对话框中不会显示任何消息。 尽管我尝试在对话框中显示该消息,但什么都没有......
我们的 Web 应用程序是用 JSF 开发的,允许用户在日历中安排会议。 目标是在应用程序设置中,每个用户都可以集成他们的 Google 帐户,以便
需要一些帮助来选择页面加载时的 PrimeFaces p:dataTable 第一行,这是到目前为止我的代码: 需要一些帮助选择 PrimeFaces p:dataTable 页面加载时的第一行,这是到目前为止我的代码: <p:dataTable id="dtbList" value="#{Controller.items}" var="item" widgetVar="dataTableList" lazy="true" selection="#{Controller.selectedValue}" rowKey="#{item.key}" scrollable="true" scrollHeight="133"> <p:ajax event="rowSelectRadio" listener="#{Controller.handleSelectList}" update="dtbList" oncomplete="resetScroll();"/> ... ... ... </p:dataTable> 我尝试使用ajax事件没有成功 <p:ajax event="page" onsuccess="PF('dataTableList').selectRow(0);"/> 想知道我哪里做错了。 如果您知道第一行的 rowKey(id),请尝试在 dataTable 组件中添加属性 dynamic="true",如下所示: <p:dataTable id="dtbList" value="#{Controller.items}" var="item" widgetVar="dataTableList" lazy="true" selection="#{Controller.selectedValue}" rowKey="#{item.key}" scrollable="true" scrollHeight="133" dynamic="true"> ... ... ... </p:dataTable> 并且,在你的bean(控制器)中创建一个由@PostConstruct注释的方法,这样你就可以选择最好的元素。 像这样: @PostConstruct public void init() { this.selectedValue = new SelectedValueEntityType(); this.selectedValue.setKey('yourKey'); } page 事件是在分页时触发的,因此不会在初始加载时触发。 您可能希望使控制器成为您已实现的 LazyDataModel 的属性(假设您这样做了;如果您正在使用 JpaLazyDataModel,请扩展它)。现在您可以通过 load 方法访问控制器。现在,您可以简单地检查是否未进行选择,并将在 load 方法中获取的第一个项目设置为控制器的选定项目。 另请参阅:https://primefaces.github.io/primefaces/12_0_0/#/components/datatable 我之前也遇到过同样的问题。 首先,您需要以编程方式构建 datatable 组件。 例如,backbean 将类似于以下内容 public class Controller { private DataTable dataTable; private CustomLazyDataModel customLazyDataModel; @PostConstruct public void init() { ExpressionFactory exFactory = FacesContext.getCurrentInstance().getApplication().getExpressionFactory(); ELContext elContext = FacesContext.getCurrentInstance().getApplication().getELContext(); dataTable = new DataTable(); dataTable.setId("dtbList"); dataTable.setValueExpression("value", exFactory.createValueExpression(elContext,"#{Controller.customLazyDataModel}", CustomLazyDataModel.class)); // This for selecting first row. dataTable.setSelection(new YourPOJOClass[]{customLazyDataModel.getDatasource().get(0)}); } } 这是您的自定义惰性数据模型的示例 @Getter @Setter public class CustomLazyDataModel extends LazyDataModel<YourPOJOClass> { // the loaded data source private List<YourPOJOClass> datasource; @Getter(AccessLevel.NONE) @Setter(AccessLevel.NONE) private boolean buildScreenPhase = false; // use this initialization function to create an instance of lazy // data model public static CustomLazyDataModel forBuildScreen() { CustomLazyDataModel customLazyDataModel = new CustomLazyDataModel(); // pass needed data instead of null customLazyDataModel.load(0, 7, null, null, null); customLazyDataModel.buildScreenPhase = true; return customLazyDataModel; } @Override public List<RowModel> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, String> filters) { // Your loading logic here from db or something else // to enhance loading data performance we will use // buildScreenPhase flag if (!buildScreenPhase) { // load data } else { buildScreenPhase = false; } } }