我現在感覺有點衝突。我有一個Web應用程序,使用Stripes作爲MVC框架,使用Spring/Hibernate作爲後端。我在我的MVC層的帳號註冊方法,需要以下驗證:我應該在我的MVC層和服務層中複製驗證嗎?
- 用戶名是不是已經採取
- 所提供的電子郵件地址尚未與其他帳戶相關聯
我有一個Stripes(MVC層)中的驗證方法檢查這兩種情況,但想知道我的服務層是否應該複製這些檢查?如果服務層接口作爲Web服務公開,那麼我認爲驗證將是一個好主意,但是如果它僅用於Web應用程序的上下文中,它是否需要?
編輯:我不打算重複驗證碼 - 我的意思是在兩個地方重複驗證方法調用。
我看到我的選擇是:
- 複製兩個MVC驗證呼叫和業務層
- 只有在MVC層
- 執行此驗證只需要在服務層執行此驗證。
這裏最好的做法是什麼?我正在尋找建議/意見,我應該選擇哪個選項以及爲什麼。
請注意,對註冊表單的輸入字段進行簡單的驗證檢查(如檢查空格),我認爲這些應該僅由MVC驗證處理;我只關心更復雜的驗證。
是的,我不是說我會複製驗證碼 - 我的意思是我會在兩個地方調用相同的驗證碼 – JMM 2010-06-29 14:15:50
就像你提到的那樣,你確實需要兩次驗證,除了控制器層之外,您還有其他客戶端。我可能會看到潛在的想要有不同的驗證邏輯 – 2010-06-29 14:49:05