Struts2的ActionError&ActionMessage示例
本教程顯示使用Struts2的 ActionError 和 ActionMessage 類。
1. ActionError – 是用來發送錯誤信息反饋給用戶 - 通過 <s:actionerror/> 來顯示。
<s:if test="hasActionErrors()">
<s:actionerror/>
2. ActionMessage – 用於發送信息的反饋消息給用戶,通過 <s:actionmessage/> 來顯示。
<s:if test="hasActionMessages()">
<s:actionmessage/>
這裏有一個簡單的登錄表單,如果用戶名不等於「yiibai.com」將顯示錯誤消息(actionerror),否則重定向到另一個頁面,顯示歡迎信息(ActionMessage)。此外,所有的標籤和錯誤消息檢索來自資源包(屬性文件)。
1. 文件夾結構
在MyEclipse中創建一個web工程,名稱爲:struts2-errormsg,看這個項目結構,如下圖:
2. 屬性文件
一共有兩個屬性文件用來存儲信息,其中 LoginAction.properties 文件放在 com.yiibai.user.action 包下。
LoginAction.properties
#Welcome messages
welcome.hello = 你好
#error message
username.required = 用戶名不可以爲空
password.required = 密碼不可以爲空
global.properties
#Global messages
global.username = 用戶名
global.password = 密碼
global.submit = 提交
global.reset = 重置
3. 動作-Action
一個經典的動作類,做一個簡單的檢查,以確認用戶名是否等於「yiibai.com",並使用 addActionError()設置錯誤信息或addActionMessage()設置成功的消息。
package com.yiibai.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("yiibai.com".equals(getUsername())){
addActionMessage("You are valid user!");
}else{
addActionError("I don't know you, dont try to hack me!");
}
}
}
4. JSP頁面視圖
兩個簡單的JSP頁面以及CSS樣式自定義錯誤消息。
login.jsp
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
Struts2 ActionError & ActionMessage 示例
welcome.jsp
**<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
Struts 2 ActionError & ActionMessage示例
5. struts.xml
鏈接所有的在一起
在Struts2,ActionError和ActionMessage功能和用法與Struts1非常相似。
6. 運行並測試
http://localhost:8080/struts2-errormsg/user/login.action
*
*
用戶名是無效的,顯示錯誤信息:<s:actionerror/>
用戶名是有效的,顯示歡迎信息:<s:actionmessage/>