gpt4 book ai didi

java - Spring "typemismatch"和必填字段

转载 作者:搜寻专家 更新时间:2023-10-30 21:34:02 37 4
gpt4 key购买 nike

在Spring Webflow 2.0.x的上下文中......

我通过在我的 messages.properties

中使用以下内容来处理表单绑定(bind)“typemismatches”,即尝试将 String 映射到 Integer 字段的结果
typeMismatch={0} contains invalid data.

这很好用。

问题是,如果发生 typeMismatch 错误的字段是“必需的”,那么我也会收到缺少必填字段的错误,我猜这是合乎逻辑的,因为提交的值从未被束缚。 (“必需”在 Commons Validation XML 文件中定义)

因此,当字段仅由于类型不匹配而丢失时,我不想看到“XXX is required field” 错误消息。我该如何解决这个问题?我考虑过重写 FormAction 上的 initBinder() 但很快就无处可去......

最佳答案

正如 Yves 提到的,在这三种方法中,我使用了自定义 validator 方法,而且非常简单。您可以使用自定义 validator 来检查表单字段是否已经包含必需的 xml 错误消息。如果该字段没有错误,那么您可以检查您的字符串验证。这样它只会显示一个。

您可以使用的另一种方法是尝试多个 xml 验证,一个是必需的,另一个是检查特定正则表达式的掩码。在您的情况下,如果您的字段是整数字段,那么您可以使用正则表达式检查数字来执行掩码。 mask 的顺序,required 或 required,mask 在 xml 中决定了哪个消息获得更高的优先级。

例如:

<field property="somefield" depends="required,mask" page="2">
<arg key="somelabel"/>
<var>
<var-name>mask</var-name>
<var-value>${somepattern}</var-value>
</var>
</field>

关于java - Spring "typemismatch"和必填字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3628476/

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