2011-04-07 82 views
1

對於我們的項目,我使用Spring MVC構建了一個註冊表單。 但是其中一個要求是用戶必須確認她/他的電子郵件和密碼。 我創建了2個字段,電子郵件和電子郵件(確認)和密碼,密碼(確認)。 當我想檢查電子郵件是否等於電子郵件(確認)和密碼等於密碼(確認)。 是否需要將確認字段添加到我的模型中?我不確定將確認字段添加到我的模型是否是一個好主意,因爲它沒有相關信息。春季確認密碼和電子郵件字段MVC

也許你有什麼想法?

回答

1

我認爲,最方便的方法是將這些屬性添加到您的ViewModel,但ViewModel不一定100%必須對應您的模型。例如,數據庫表用戶沒有password_confirm列,也沒有在數據實體(或模型)中使用確認密碼,但在View(UI)中使用此數據字段,因此ViewModel具有此屬性。

+0

順便說一句,你可以添加JavaScript檢查 - 客戶端驗證,但你一定不要忘記,一些客戶端禁用JavaScript。所以,驗證參數也是服務器端,除非你不關心JavaScript少瀏覽器。 – VikciaR 2011-04-08 07:06:26

1

Sandar,

沒有必要提供在模型或控制器的任何額外的領域,只是僅在查看部分創建領域。

創建四個輸入標籤,如:提交表單調用一個JavaScript函數,用於例如前

<form.... onsubmit="return checkConfirmFields();> 

<input type="text" name="email"/> 
<input type="text" name="confirmEmail"/> 
<input type="password" name="pass"/> 
<input type="password" name="confirmPass"/> 
<input type="submit" value="Register"/> 

</form> 

現在上面例子中的checkConfirmFields和編寫簡單的邏輯來比較你的電子郵件,密碼和確認字段,並相應地返回true或false。

希望您在使用Spring MVC時必須具備javascript的基本概念。

+0

+1好方法,但如果您希望將驗證錯誤消息用於確認違規看起來像其他驗證錯誤消息,那麼將確認字段至少包含在DTO中是有好處的。 – 2011-04-07 07:42:42

+1

@Willie:agree。但是整個項目中的錯誤信息可能與div class =「errorMessage」有關,所以這就是我們如何才能將類指派給錯誤消息,同時也顯示它從javascript ... – Nirmal 2011-04-07 07:49:06

+0

我們'重新也使用JavaScript驗證,但它更好地使用服務器端驗證。當用戶沒有啓用javascript時,他可以在沒有任何驗證的情況下提交表單。 – Sander 2011-04-07 07:57:13