如何使用 XPage Java 代码在自定义控件内设置输入控件的有效方法?

2023-12-02

好吧,这很奇怪。

在 XPage 中,我的数据源是一个 Java 对象。托管 bean 或 PageController。我通过 Ext 来使用引导程序。图书馆。

我想要做的是将所有验证代码保留在 Java 对象中,而不是将任何内容附加到 XPage 上的控件。在 java 对象内部,我可以通过以下方式添加任何错误消息: FacesContext.getCurrentInstance().addMessage

因此任何错误都可以通过控件显示。

但如果我想向特定(单个)控件发送消息,我不知道该怎么做,以单个控件为目标。

实际上,我希望能够将此示例用于引导字段自定义控件:http://www.bootstrap4xpages.com/bs4xp/demos.nsf/reusableFields.xsp

并从我的 Java 类中设置 isValid 方法,以便引导字段通过 has-error 样式呈现为红色。

任何有关如何获取自定义控件内输入控件的 isValid 的建议,甚至是让我通过 java 进行验证但控制字段样式的替代方法,我们将不胜感激。

Thanks


我所做的是为组件使用自定义验证器。例如,

<xp:this.validators>
    <xp:customValidator validate="#{javascript:controller.validateDuration(this)}"></xp:customValidator>
</xp:this.validators>

在我的控制器类中:

public void validateDuration(UIComponent source) {
    // Do my checks...
    // If fails,
    BeanUtils.setControlInvalid(source, "Format Error at date time!");
}

BeanUtils 方法使特定组件无效并生成验证错误消息:

public static void setControlInvalid(UIComponent editableComponent, String message) {
    if(StringUtil.isEmpty(message) || editableComponent==null) return;

    if(editableComponent instanceof EditableValueHolder) {
        ((EditableValueHolder) editableComponent).setValid(false);
        postFacesMessage(editableComponent, FacesMessage.SEVERITY_ERROR, message);
    }

}

public static void postFacesMessage(UIComponent component, Severity severity, String msg) {
    if(StringUtil.isEmpty(msg) || component==null) return;

    FacesContext fc=FacesContext.getCurrentInstance();

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

如何使用 XPage Java 代码在自定义控件内设置输入控件的有效方法? 的相关文章

随机推荐

  • 在内联汇编中访问 C++ 类成员

    问题 如何从非 POD 类中访问程序集中的成员变量 详细说明 我已经为类成员函数编写了一些内联汇编代码 但令我困惑的是如何访问类成员变量 我已经尝试过offsetof宏 但这是一个非 POD 类 我当前使用的解决方案是将全局范围的指针分配给
  • 提供密钥时,Google 静态地图始终返回 403

    如果我在地图请求中提供 API 密钥 我总是会收到 403 Forbidden 响应 无需指定 一切都会顺利 我可以到达地图 问题是我必须使用 API 密钥才能监控使用情况和每用户配额 这是一个例子 http jsfiddle net de
  • MySQL中如何存储科学计数法数字

    我想在 MySql 中存储科学记数法数字 我已将它们保存到具有数据类型的字段中decimal 问题是它以正常表示法存储它 至少当我在 MAMP 附带的 Web 控制台中查看数字时看起来是这样 因此您需要为该字段分配更多字节 我相信这会导致拥
  • WebAPI / Owin - 登录后身份未授权

    我正在使用 WebAPI Owin 3 0 实现简单的登录 密码身份验证 这是我的配置方法 public void ConfigureAuth IAppBuilder app Configure the db context and use
  • C++ 类成员的默认值是多少

    C 中结构成员和类成员的默认值是什么 这些规则有何不同 例如 类 结构 基元 等之间 关于默认值的规则是否存在不同的情况 在 C 中 结构和类在这方面没有区别 他们都被称为只是类别类型 一般情况下 类类型的成员没有默认值 为了让类成员获得确
  • Rust 中 tribonacci 序列的惯用实现

    我是 Rust 新手 但作为 Haskell 的粉丝 我非常欣赏这种方式match在 Rust 中工作 现在 我面临着一种罕见的情况 我确实需要失败 从某种意义上说 我希望执行几个重叠案例的所有匹配案例 这有效 fn options sta
  • 有没有一种 CSS 方法可以保证正方形适合窗口而不滚动?

    我可以在 JavaScript 中轻松完成此操作 但想知道是否可以使用直接 CSS 在窗口中保留一个适合窗口大小的方形 div 无论它是什么 我发现的任何解决方案都不能解决高度小于宽度的问题 从逻辑上讲 我想要的是 当窗口宽度小于高度时 给
  • 仅保存活动工作表的宏

    在下面的代码中 它保存了完整的工作簿 我只想保存活动工作表 Sub sbVBS To SAVE ActiveWorkbook ActiveWorkbook Save End Sub 将工作表复制到任何位置都会自动在前台创建一个新工作簿 并将
  • 致命:git 的构建不支持 git-add--interactive (NO_PERL=1)

    当我执行 git add i 时 它会弹出此错误 致命 git 的构建不支持 git add interactive NO PERL 1 我迫切需要帮助 使用 Git 2 25 2020 年第一季度 五年后 Perl 不应再成为git ad
  • chrome vs FF/IE/Opera 在计算表格单元格宽度时? (表格布局:固定)

    我现在已经搜索了差不多半天了 但我找不到为什么chrome6 7似乎是与IE8 FF3 6 Opera相比唯一不添加填充到指定宽度的浏览器一个表格单元格的 当然 如果您使用 table layout fixed 这变得至关重要 因为他们突然
  • 为什么我网站上的所有 html 表单都禁用 Internet Explorer 自动完成功能?

    当为表单打开 Internet Explorer 自动完成功能时 HTML 表单中每个字段的条目应被缓存 并在用户第二次开始在表单中输入内容时显示为提示 在我的网站上 该网站上存在的任何表单都不会显示自动完成功能 但其他网站却毫无问题地保留
  • 根据数据表值在 gridview 中设置复选框

    我有一个带有复选框字段和几个绑定字段的 gridview 控件 复选框字段不直接映射到数据库中的字段 相反 我想从数据库中的字段读取值并 选中 一些复选框 例如 给定数据库中的以下数据 gt 数据表 PROCESSED NAME DATE
  • mongoDB 32位2GB限制,最佳实践

    Mongo 新手 在 Windows XP 上运行 32 位 Mongo 2 0 1 目前没有运行 64 位的选项 我想使用 Mongo 来映射减少一组 60 个文件 每个文件都是同一个 20 000 行 x 100 列表的每月快照 理想情
  • Rails 如何显示父对象的属性

    我正在尝试使用 Rails 4 制作一个应用程序 我有 2 个表 user rb 和 profile rb User has one profile Profile belongs to User 用户具有名为 first name 和 l
  • 在函数中传递未知数量的参数

    在我当前的项目中 我必须实现多个函数来处理不同数量的UITextField在我的应用程序的多个屏幕中 我想如果我可以实现一个可以接受任意数量的函数 那么效率会更高UITextField 是否可以在 swift 3 上实现这些功能 Swift
  • ImportError:当我使用系统运行服务时,没有名为“schedule”的模块

    我写了一个脚本叫coinview py它可以运行在linux 当我尝试将其运行为systemd 它会引发错误 error ImportError No module named schedule I use pip3显示时间表 它已经存在
  • 上传文件时未定义索引

    这是我的错误 注意 未定义索引 文件中 C xampp htdocs Project Template1 users index php 第 21 行 注意 未定义索引 文件输入 请在第 23 行 C xampp htdocs Projec
  • 将电子邮件输入到我的 python/flask 应用程序代码中的第一步是什么?

    我正在研究如何制作一个可以直接与电子邮件交互的网络应用程序 就像你会发送到 电子邮件受保护 应用程序会将其分解并确定它来自谁 它们是否在数据库中 主题行是什么等 我正在使用 最熟悉Python和Flask 谁能帮助我开始正确的方向 如何让电
  • 编译/缩小的 jsx 文件比原始文件大

    去掉所有空格后 原始jsx文件大小为189k 编译 缩小后的文件大小 js 为 217k 没有任何依赖项 我已经使用了所有 webpack babel 优化来缩小代码大小 treeshaking 除外 我计划缩短成员变量 函数名称以减少文件
  • 如何使用 XPage Java 代码在自定义控件内设置输入控件的有效方法?

    好吧 这很奇怪 在 XPage 中 我的数据源是一个 Java 对象 托管 bean 或 PageController 我通过 Ext 来使用引导程序 图书馆 我想要做的是将所有验证代码保留在 Java 对象中 而不是将任何内容附加到 XP