Spring MVCパスワードの例
Spring MVCでは、<form:password />タグを使用してHTMLパスワードフィールドをレンダリングできます。 例えば、
次のHTMLコードをレンダリングします
Note
Springのドキュメントには、「showPassword」属性にパスワード値が表示されると記載されていますが、私のテストでは失敗しました。自分で試してみてください。
このチュートリアルでは、Springのフォームタグ「password」をrender two HTML passwordフィールド(「password」および「confirmPassword」)に使用する方法を示します。 さらに、両方のパスワードフィールドに検証チェックを追加します。空白であってはならず、「パスワード」フィールドは「confirmPasswod」フィールドと一致する必要があります。
1. コントローラ
フォーム値を処理するためのSimpleFormController。
ファイル:PasswordController.java
package com.example.customer.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
import com.example.customer.model.Customer;
public class PasswordController extends SimpleFormController{
public PasswordController(){
setCommandClass(Customer.class);
setCommandName("customerForm");
}
@Override
protected ModelAndView onSubmit(HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors)
throws Exception {
Customer customer = (Customer)command;
return new ModelAndView("CustomerSuccess","customer",customer);
}
}
2. モデル
パスワード値を保存するCustomerオブジェクト。
ファイル:Customer.java
package com.example.customer.model;
public class Customer{
String password;
String confirmPassword;
//getter and setter methods for password and confirmPassword
}
3. フォームバリデーター
パスワード検証クラスを作成して、両方のパスワードフィールドをチェックします。空白にすることはできません。「password」と「confirmPassword」は一致する必要があります。 それ以外の場合は、リソースバンドル(プロパティファイル)から対応するメッセージを取得します。
ファイル:PasswordValidator.java
package com.example.customer.validator;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;
import com.example.customer.model.Customer;
public class PasswordValidator implements Validator{
@Override
public boolean supports(Class clazz) {
//just validate the Customer instances
return Customer.class.isAssignableFrom(clazz);
}
@Override
public void validate(Object target, Errors errors) {
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password",
"required.password", "Field name is required.");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "confirmPassword",
"required.confirmPassword", "Field name is required.");
Customer cust = (Customer)target;
if(!(cust.getPassword().equals(cust.getConfirmPassword()))){
errors.rejectValue("password", "notmatch.password");
}
}
}
ファイル:message.properties
required.password = Password is required! required.passwordConfirm = Confirm password is required! notmatch.password = Password and Conform password is not match!
4. View
Springのフォームタグ「password」を使用して2つのHTMLパスワードフィールドをレンダリングし、いくつかのCSSスタイルを配置してエラーメッセージを強調表示するJSPページ。
ファイル:CustomerForm.jsp
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
Spring's form password example
Password :
Confirm Password :
フォームが送信された場合、成功したページをレンダリングし、送信されたパスワード値を表示します。
ファイル:CustomerSuccess.jsp
Spring's form password example
Password : ${customer.password}
Confirm Password : ${customer.confirmPassword}
5. Spring Beanの構成
それをすべてリンクしてください〜
/WEB-INF/pages/ .jsp
6. Demo
ページへのアクセス - http://localhost:8080/SpringMVCForm/password.htm

フォームの送信中に「パスワード」が「confirmPassword」と一致しない場合は、エラーメッセージを表示して強調表示します。

フォームが正常に送信された場合、送信されたパスワード値を表示するだけです。

ソースコードをダウンロード
ダウンロード–SpringMVCForm-Password-Example.zip(9KB)