ダウンロードする – リンク://wp-content/uploads/2010/06/Struts2-Password-Example.zip[Struts2-Password-Example.zip]

Struts 2では、

<s:password>

を使用してHTMLパスワード・フィールドを作成できます。たとえば、キー属性、ラベル、および名前属性を使用して、「

s:password

」を宣言できます。

<s:password key="password"/>//or
<s:textfield label="Password" name="password"/>

どちらも同じHTML出力を生成します(デフォルトのxhtmlテーマ)。

<td class="tdLabel">
  <label for="registerUser__password" class="label">Password:</label>
</td>
<td>
  <input type="password" name="password" id="registerUser__password"/>
</td>

Struts 2 <s:password>の例

「パスワード」フィールドと「パスワードの確認」フィールドがあるページを開き、「パスワードの確認」が「パスワード」と一致していることを確認します。

1.プロパティファイル

#Global messages
username = Username
password = Password
confirmPassword = Confirm Password
submit = Submit

  • RegisterAction.properties **

#error message
username.required = Username is required
password.required = Password is required
cpassword.required = Confirm password is required
cpassword.notmatch = Confirm password is not match

2.アクション

  • RegisterAction.java **

package com.mkyong.user.action;

import com.opensymphony.xwork2.ActionSupport;

public class RegisterAction extends ActionSupport{

    private String username;
    private String password;
    private String confirmPassword;

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getConfirmPassword() {
        return confirmPassword;
    }

    public void setConfirmPassword(String confirmPassword) {
        this.confirmPassword = confirmPassword;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

   //business logic
    public String execute() {

        return "SUCCESS";

    }

   //simple validation
    public void validate(){
        if("".equals(getUsername())){
            addFieldError("username", getText("username.required"));
        }
        if("".equals(getPassword())){
            addFieldError("password", getText("password.required"));
        }
        if("".equals(getConfirmPassword())){
            addFieldError("confirmPassword", getText("cpassword.required"));
        }

        if(!(getPassword().equals(getConfirmPassword()))){
            addFieldError("confirmPassword", getText("cpassword.notmatch"));
        }
    }

}

3.ビューページ

Struts 2 ”

s:password

“タグの結果ページで、HTMLパスワードフィールドを作成します。

  • register.jsp **

<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
</head>

<body>
<h1>Struts 2 - password example</h1>

<s:form action="registerUser" namespace="/user">

    <s:textfield key="username"/>
    <s:password key="password"/>
    <s:password key="confirmPassword"/>

    <s:submit key="submit" name="submit"/>

</s:form>

</body>
</html>

  • welcome.jsp **

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>

<body>
<h1>Struts 2 - password example</h1>

<h2>Password : <s:property value="password"/></h2>
<h2>Confirm Password : <s:property value="%{confirmPassword}"/></h2>

</body>
</html>

4. struts.xml

すべて一緒にリンクする〜

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

   <constant name="struts.custom.i18n.resources" value="global"/>
   <constant name="struts.devMode" value="true"/>

   <package name="user" namespace="/user" extends="struts-default">
    <action name="register">
        <result>pages/register.jsp</result>
    </action>
    <action name="registerUser"
                class="com.mkyong.user.action.RegisterAction">
        <result name="SUCCESS">pages/welcome.jsp</result>
        <result name="input">pages/register.jsp</result>
    </action>
   </package>

</struts>

リファレンス

ドキュメンテーション]