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

Struts 2の

ActionError

および

ActionMessage

クラスの使用法を示すチュートリアル。

{空} 1。

ActionError

– エラーフィードバックメッセージを

<s:actionerror/>

を介してユーザに送信するために使用されます。

<s:if test="hasActionErrors()">
   <div class="errors">
      <s:actionerror/>
   </div>
</s:if>

{空} 2。

ActionMessage

– ユーザーに情報フィードバックメッセージを送信するために使用され、

<s:actionmessage/>

を介して表示されます。

<s:if test="hasActionMessages()">
   <div class="welcome">
      <s:actionmessage/>
   </div>
</s:if>

単純なログインフォームですが、ユーザ名が “mkyong”でない場合はエラーメッセージ(actionerror)を表示し、そうでない場合は別のページにリダイレクトして、ウェルカムメッセージ(actionmessage)を表示します。さらに、すべてのラベルおよびエラー・メッセージは、リソース・バンドル(プロパティー・ファイル)から検索されます。

1.フォルダ構造

このプロジェクトの構造を見る


Struts 2ログインフォルダ構造、title = "Struts2-login-form-folder-stucture"

2.プロパティファイル

メッセージを格納する2つのプロパティファイル。

#Welcome messages
welcome.hello = Hello

#error message
username.required = Username is required
password.required = Password is required

  • global.properties **

#Global messages
global.username = Username
global.password = Password
global.submit = Submit
global.reset = Reset

3.アクション

古典的なアクションクラスでは、ユーザー名が “mkyong”であることを確認する単純なチェックを行い、エラーメッセージを

addActionError()

または

addActionMessage()

で成功したメッセージに設定します。

package com.mkyong.user.action;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{

    private String username;
    private String password;

    public String getPassword() {
        return password;
    }

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

    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("mkyong".equals(getUsername())){
            addActionMessage("You are valid user!");
        }else{
            addActionError("I don't know you, dont try to hack me!");
        }
    }
}

4. JSPビュー

エラーメッセージをカスタマイズするCSSスタイルの2つの単純なJSPページ。

  • login.jsp **

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

<style type="text/css">
.errors {
    background-color:#FFCCCC;
    border:1px solid #CC0000;
    width:400px;
    margin-bottom:8px;
}
.errors li{
    list-style: none;
}
</style>

</head>

<body>
<h1>Struts 2 ActionError & ActionMessage Example</h1>

<s:if test="hasActionErrors()">
   <div class="errors">
      <s:actionerror/>
   </div>
</s:if>

<s:form action="validateUser">
    <s:textfield key="global.username" name="username"/>
    <s:password key="global.password" name="password"/>
    <s:submit key="global.submit" name="submit"/>
</s:form>

</body>
</html>

  • welcome.jsp **

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

<style type="text/css">
.welcome {
    background-color:#DDFFDD;
    border:1px solid #009900;
    width:200px;
}
.welcome li{
    list-style: none;
}
</style>

</head>
<body>
<h1>Struts 2 Struts 2 ActionError & ActionMessage Example</h1>

<s:if test="hasActionMessages()">
   <div class="welcome">
      <s:actionmessage/>
   </div>
</s:if>

<h2>

<s:property value="getText('welcome.hello')"/> :
<s:property value="username"/>

</h2>

</body>
</html>

5. 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"/>

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

</struts>

Struts 2では、ActionErrorの機能と使用法

6.それを実行する


Struts 2 ActionError 1、title = "struts2-actionerror-screen1"

ユーザー名が無効です。<s:actionerror/>でエラーメッセージを表示してください


Struts 2 ActionError 2、title = "struts2-actionerror-screen2"

ユーザー名は有効です、ウェルカムメッセージを表示します<s:actionmessage/>


Struts 2 ActionError 3、title = "struts2-actionerror-screen3"