如何处理 Primefaces 延迟加载中的错误?

2024-05-08

我无法让用户知道发生的异常PrimeFaces http://primefaces.org/ LazyDataModel#load方法。

我正在从数据库加载数据,当引发异常时,我不知道如何通知用户。

我尝试添加FacesMessage to FacesContext,但消息不会显示在 Growl 组件上,即使 Growl 设置为autoUpdate="true".

Using PrimeFaces 3.3 http://primefaces.org/downloads.html.


它不起作用,因为load()方法在渲染响应阶段被调用(您可以通过打印来检查这一点)FacesContext.getCurrentInstance().getCurrentPhaseId()),当所有消息都已被处理时。

对我有用的唯一解决方法是将数据加载到"page"DataTable 的事件监听器。

html:

<p:dataTable value="#{controller.model}" binding="#{controller.table}">
     <p:ajax event="page" listener="#{controller.onPagination}" />
</p:dataTable>

控制器:

private List<DTO> listDTO;
private int rowCount;
private DataTable table;

private LazyDataModel<DTO> model = new LazyDataModel<DTO>() {
        @Override
        public List<DTO> load(int first, int pageSize, String sortField,
                SortOrder sortOrder, Map<String, String> filters) {
            setRowCount(rowCount);
            return listDTO;
        }
    };

public void onPagination(PageEvent event) {
    FacesContext ctx = FacesContext.getCurrentInstance();
    Map<String, String> params = ctx.getExternalContext()
            .getRequestParameterMap();

    // You cannot use DataTable.getRows() and DataTable.getFirst() here,
    // it seems that these fields are set during Render Response phase
    // and not during Update Model phase as one can expect.

    String clientId = table.getClientId();
    int first = Integer.parseInt(params.get(clientId + "_first"));
    int pageSize = Integer.parseInt(params.get(clientId + "_rows"));

    try {
        listDTO = DAO.query(first, pageSize);
        rowCount = DAO.getRowCount();
    } catch (SQLException e) {
        ctx.addMessage(null,
                new FacesMessage(FacesMessage.SEVERITY_ERROR,
                    "SQL error",
                    "SQL error"));
    }
}

希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何处理 Primefaces 延迟加载中的错误? 的相关文章

  • 警告:implode() [function.implode]:传递的参数无效

    我收到以下错误 警告 implode function implode 在第 1335 行的 wp content themes mytheme functions php 中传递的参数无效 at function my get tags
  • AngularJS 和 Webpack 集成

    我正在寻找一些使用帮助webpack http webpack github io docs 对于大型 AngularJS 应用程序 我们使用基于功能的文件夹结构 每个功能 页面都有一个模块 并且它们有控制器 指令 我已经成功配置了 web
  • JPA 与 Hibernate.initialize 等效的命令

    我有一个惰性集合 我想在我的服务 控制器中随意初始化它 此时我能做的就是 Hibernate initialize myEntity getListOfThings 该命令依赖于 hibernate 并且不会使 JPA 的实现变得透明 JP
  • 我需要将 java EE、jsf、jboss eap 6.3 primefaces 应用程序迁移到 wildfly 8.2.1

    将 java EE 应用程序 jsf jboss eap 6 3 primefaces 迁移到 wildfly 8 2 1 该应用程序在 jboss 6 3 上正常运行 在 Wildfly 8 上部署该应用程序后 该应用程序存在错误 部署通
  • 如何使用 javascript 从 p:selectOneRadio 获取所选选项

    如何获取其中选择的电台p selectOneRadio使用 javascript jquery 自从p selectOneRadio不使用单选标签我不知道如何使用 CSS 选择器获取选中的选项
  • 更改 的默认按钮标签

    我在用
  • 隐藏错误报告窗口

    我有以下问题 我的 ASP Net 应用程序接收简单控制台程序的 C 源代码 使用 cl exe 命令行 VC 编译器 对其进行编译 并使用 System Diagnostics Process 运行它 ASP Net应用程序运行在PC上
  • 从 GetLastError() 函数返回的错误代码中获取文本

    我需要获取从 GetLastError 函数获得的错误代码的文本 我看到了一些示例 但我想要一个获取代码并返回字符串的函数 谢谢大家 我猜你想要这样的东西 DWORD dwLastError GetLastError TCHAR lpBuf
  • R:使用 RGDAL 和 RASTER 包时抛出错误

    给所有可能相关的人 这是源代码 GRA D1 lt raster files 1 Sets up an empty output raster GRA D1 lt writeStart GRA D1 filename GRA D1 tif
  • p:remoteCommand 无法在异步模式下工作

    如果有人可以在这里给我帮助 我将不胜感激 我在页面上有一个选项卡式布局 通过单击选项卡 p commandLink 我想初始化该选项卡的适当数据并更新显示内容的区域 由于我希望初始化能够延迟发生 当呈现选项卡内容时 因此我使用 Primef
  • 页面其余部分完成加载后延迟加载 html5 视频

    我有一个视频元素用作我正在构建的页面底部部分的背景 我试图通过将 src 存储为 data src 属性并使用 jQuery 在其他资源加载后将其应用到 src 属性 因为它不是英雄图像或任何东西 我想加载海报以节省加载时间 然后稍后加载视
  • 2015 年重新审视 Ember Handling 401

    我可以在 Ember Ember Data 中找到大量询问 回答如何从 Rails 后端处理 401 的老问题 许多 如果不是全部的话 在这一点上似乎已经过时了 我已经尝试了我能找到的一切 Ember 数据处理 401 https stac
  • 当我尝试从列表中删除元素时,如何忽略 ValueError?

    如果我打电话 如何忽略 不在列表中 错误消息a remove x when x不在列表中a 这是我的情况 gt gt gt a range 10 gt gt gt a 0 1 2 3 4 5 6 7 8 9 gt gt gt a remov
  • 抑制 R 中的错​​误消息

    我正在 R 中运行模拟研究 有时 我的模拟研究会产生错误消息 当我在函数中实现模拟研究时 当出现此错误消息时模拟停止 我知道抑制错误是不好的做法 但此时对我来说 除了抑制错误然后继续下一个模拟 直到达到我喜欢运行的模拟总数为止 没有其他选择
  • warnings() 在函数内不起作用?如何解决这个问题?

    op lt options warn 0 although doesn t work for any value of warn assign last warning NULL envir baseenv thisDoesntWork l
  • 对话框不会关闭 primefaces

    我的其中一个页面上有一个对话框 打开很好 如果您使用页面上的按钮 它会关闭 效果很好 但是 如果您尝试 x 退出对话框 它将不会关闭 我相信这与我在对话框上有一个输入字段有关 但我不确定 如果这是一个骗局 我深表歉意 我找不到类似的帖子
  • 为什么我不能将左大括号放在下一行?

    当我尝试编译以下代码时遇到奇怪的错误 package main import fmt fmt func main var arr 3 int for i 0 i lt 3 i fmt Printf d arr i 错误如下 unexpect
  • JavaScript 错误处理的最佳实践是什么?

    我希望开始让我的 JavaScript 更加防错 并且我找到了大量有关使用的文档try catch finally and throw 但我没有从专家那里找到大量关于何时何地抛出错误的建议 每段代码都应该包含在 try catch 中吗 还
  • 如何处理 AJAX 请求中的会话超时

    我相信你们都熟悉使用 AJAX 的投票系统 嗯 看那边 我有类似的东西 当你投票赞成或反对时 它使用 AJAX 从 votes php 请求新值 问题是我正在使用会话来获取用户 ID 因此一个人只能投票一次 如果他们在页面上坐了一个小时然后
  • Lazy 实现和 .NET 泛型

    我正在寻找进行延迟初始化的方法并发现Lazy

随机推荐