我正在处理Webflow应用程序,我可能必须提交当前表单才能删除子记录(复杂的工作流程,抱歉)。
问题在于,如果用户将垃圾数据输入表单然后按下“删除”按钮,则绑定和/或验证将失败,并且永远不会提交表单。
因此,如果他们输入垃圾数据,他们就无法删除记录。
处理用户在网络表单中输入“垃圾”数据的首选方法是什么,特别是在数字字段中输入非数字数据?我有一个Spring表单支持对象,如下所示:
public class MyFormInfo implements Serializable {
private String myName;
private Integer myNumber;
}
如果用户在myName
字段中输入垃圾,我可以在验证期间忽略它。但是,如果他们在myNumber
字段中输入垃圾并且绑定失败,我没有办法陷阱,我无法提交表单。
有人有办法处理这个问题吗?
答案 0 :(得分:1)
同时查看此answer,但总的来说,在转换时类型不匹配的情况下,没有好的方法可以添加错误消息。
可用的机制(属性编辑器,转换器,bean验证)并不意味着处理类型不匹配。
最好的解决方案可能是通过Javascript通过一些只接受数字的字段掩码在客户端进行验证。然后在服务器上只有在出现错误时才会出现类型不匹配,因此未处理的错误是可以接受的。
为了在服务器上执行此操作,可以向DTO添加String属性,并应用bean验证:
@Pattern(regexp = "{A-Za-z0-9}*")
String numericField;
然后通过bean验证可以向页面添加错误消息,请参阅此example。