Spring MVCパスワードの例

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

SpringMVC-Password-Example-1

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

SpringMVC-Password-Example-2

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

SpringMVC-Password-Example-3

ソースコードをダウンロード

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