2017-02-04 65 views
2

在我的春節,啓動應用程序我有以下方法:春天驗證 - NULL或有效的URL

Decision create(@NotBlank String name, String url, @NotNull User author); 

現在直接在代碼我檢查以下條件:

if (!org.apache.commons.lang3.StringUtils.isEmpty(url) && !urlValidator.isValid(url)) { 
    throw new IllegalArgumentException("Decision url is not valid"); 
} 

在其他字 - url參數可以是null或有效的網址。

是否有可能用現有的驗證註釋(例如JSR-303)替換此代碼?

+1

只需使用['org.hibernate.validator.constraints.URL'](https://docs.jboss.org/hibernate/validator/5.2/api/org/hibernate/validator/constraints/URL.html)註釋。可移植性不是那麼重要 –

回答

1

Bean驗證規範不包含對url的約束,但一些實現者將約束添加爲像Hibernate Validator的@URL一樣的擴展,但記住擴展的使用損害了可移植性,以避免您可以基於正則表達式創建自己的驗證器。對於其他部分,您可以使用@NotBlank作爲您用於名稱字符串的url字符串空控件,它看起來像@NotNull,@NotBlank,NotEmpty約束之間有混淆。

看看這個答案是:https://stackoverflow.com/a/17137308/5964741

但是不管你選擇擴展或創建URL字符串自己的驗證空控制將是多餘的。