我为我的web应用程序使用Spring MVC。 我需要验证用户输入的URL是否有效,并想知道是否有什么可以为我做基本检查(例如以http/https开头,有域名等)。使用Spring-MVC验证URL的最佳实践?
仅ValidationUtils相关含有非常基本的检查,我知道我可以在validate()方法写一个正则表达式却宁愿避免它INM情况下,有人已经做了:)
感谢
我为我的web应用程序使用Spring MVC。 我需要验证用户输入的URL是否有效,并想知道是否有什么可以为我做基本检查(例如以http/https开头,有域名等)。使用Spring-MVC验证URL的最佳实践?
仅ValidationUtils相关含有非常基本的检查,我知道我可以在validate()方法写一个正则表达式却宁愿避免它INM情况下,有人已经做了:)
感谢
结束使用UrlValidator
从apache commons。
在过去,我一直使用Hibernate Validator。只需使用@URL
约束在表单bean中注释相应的字段即可。
如果你以前从未使用过Hibernate的ORM部分,不要让它吓倒你。验证器部分不依赖于ORM的东西,并将它集成到Spring中是very straightforward。
如果因为某些原因你不能使用Hibernate Validator ...或者你只是想坚持你所熟悉的东西,那么正则表达式的好地方是RegExLib.com;几种可以匹配URI的模式are listed there。
我知道这个问题是相当古老的,但我只是需要相同的,我想我会在SpringFramework中使用PropertyEditors。
更准确地说,有URLEditor,您可以使用它来将字符串表示转换为实际的URL对象。
下面是各个文档的链接:
在我的情况,我想使用Spring的验证中下面的代码来检查是否由输入的字符串用户是否有效URL:
try {
PropertyEditor urlEditor = new URLEditor();
urlEditor.setAsText(field.getValue());
} catch (IllegalArgumentException ex) {
errors.rejectValue("nameOfTheFieldToBeValidated", "url_is_invalid");
}
但是,至于现在我不确定它是否是我可以配置哪个协议将被接受为有效(即, URLEditor似乎也接受以“classpath:”开头的URL)
好吧,只是为了让你知道,我也使用从Apache公共的UrlValidator。 – SebastianRiemer
据我了解,Spring拦截器允许您修改HttpRequest和HttpResponse。当然,您可以在那里应用URL有效性检查,但如果是这种情况,我更喜欢使用Validator界面。我的问题更多地是关于Spring中是否有可以验证URL的代码,而不是使用凌乱的正则表达式。像“The Awnry Bear”这样的东西只有在纯粹的Spring中才与Hibernate一起展示。 – Joly