我正在处理一个Webflow应用程序,在该应用程序中,我可能必须提交当前表单才能删除子记录(很抱歉,工作流很复杂)。
问题是,如果用户在表单中输入垃圾数据,然后按下“删除”按钮,绑定和/或验证将失败,表单将永远不会被提交。
因此,如果他们输入垃圾数据,他们不能删除记录。
处理用户在Web表单中输入“垃圾”数据(尤其是在数值字段中输入非数值数据)的首选方法是什么?我有一个Spring表单支持对象,如下所示:
public class MyFormInfo implements Serializable {
private String myName;
private Integer myNumber;
}
如果用户在myName
字段中输入了垃圾,我可以在验证过程中忽略它。但是,如果用户在myNumber
字段中输入了垃圾,绑定失败,我没有好的方法来捕获它,我无法提交表单。
有人有好办法解决吗?
2条答案
按热度按时间fcy6dtqo1#
也可以看看这个answer,但总的来说,在转换时类型不匹配的情况下,没有好的方法来添加错误消息。
可用的机制(属性编辑器、转换器、Bean验证)并不用于处理类型不匹配。
最好的解决方案可能是在客户端通过Javascript通过一些只接受数字的字段掩码来进行验证。这样在服务器上类型不匹配只会在出现bug的情况下发生,所以未处理的错误是可以接受的。
要在服务器上执行此操作,可以向DTO添加String属性,并应用Bean验证:
然后通过bean验证可以将错误消息添加到页面中,请参见此example。
chy5wohz2#
如果要避免在整数字段中输入小数,可以这样做:
在HTML表单中,您可以执行以下操作:
在Java表单中,您可以执行以下操作: