2014-02-20 29 views
0

我正在处理Webflow应用程序,我可能需要提交当前表单才能删除子记录(复杂的工作流程,不好意思)。Spring绑定 - 处理数字输入?

问题是,如果用户向表单中输入垃圾数据,然后按下“删除”按钮,则绑定和/或验证将失败,表单将不会被提交。

因此,如果他们输入垃圾数据,他们不能删除记录。

处理用户在Web表单中输入“垃圾”数据的首选方式是什么,特别是在数字字段中输入非数字数据?我有一个春天表单支持对象,看起来像这样:

public class MyFormInfo implements Serializable { 
    private String myName; 
    private Integer myNumber; 
} 

如果用户在myName领域进入垃圾我可以验证过程中忽略。但是,如果他们在myNumber字段中输入垃圾并且绑定失败,那么我没有任何好方法来捕获该问题,并且我无法提交表单。

有人有一个很好的方法来处理这个问题吗?

回答

1

看看这个answer,但总而言之,在转换时类型不匹配的情况下,没有好方法来添加错误消息。

可用的机制(属性编辑器,转换器,bean验证)并不意味着要处理类型不匹配。

最好的解决方案可能是通过一些只接受数字的字段掩码通过Javascript在客户端进行验证。然后在服务器上类型不匹配只会发生在一个错误的情况下,所以未处理的错误可能是可以接受的。

对于服务器上做这个,有可能一个String属性添加到DTO,并应用Bean验证:通过Bean验证

@Pattern(regexp = "{A-Za-z0-9}*") 
String numericField; 

然后可能的错误信息添加到页面中,看到这example

+0

谢谢,这几乎是我所害怕的。只是想要一些确认。 – user3120173