Struts 2 ActionError&ActionMessageの例
ダウンロードする – リンク://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.フォルダ構造
このプロジェクトの構造を見る

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.それを実行する

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

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

リファレンス
ドキュメンテーション]