gpt4 book ai didi

java - 使用 BigDecimalConverter 的 Primefaces 输入会忽略空字符串

转载 作者:行者123 更新时间:2023-12-02 06:29:25 26 4
gpt4 key购买 nike

设置: Primefaces 3.4.2、JSF2

我有一个包含 4 个输入字段的表单,可在触发 onblur 时发布数据。

描述我将值放入所有 4 个输入字段中,并且效果正常。然后我开始一一删除这些值。对于具有 BigDecimalConverters 的所有字段,我无法删除这些值,一旦我离开该字段并开始在下一个字段中删除该值,该值就会返回到该字段。

我在 IE 和 Chrome 的开发者工具中使用了网络选项卡,我可以看到帖子发送了空值,然后它得到一个响应,表示该字段中应该有不同的数字。

有人知道什么会导致这种行为吗?

最佳答案

您遇到的问题归结为以下几点:

BigDecimal bg = new BigDecimal("");

上面的行将抛出一个java.lang.NumberFormatException,这又会导致转换错误。这就是字段值因字段验证/转换失败而被保留的原因。

根本原因是空白默认情况下不会作为 null 提交到服务器。它们作为空字符串提交。可以通过在 web.xml 中将上下文参数 javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL 设置为 true 来自定义此行为。这将导致空字段作为 null 发送,并且不会触发转换错误。

相关:

关于java - 使用 BigDecimalConverter 的 Primefaces 输入会忽略空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20214119/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com