Struts2的ActionError&ActionMessage示例

简介:
本教程显示使用Struts2的 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> 

这里有一个简单的登录表单,如果用户名不等于“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" %>
<html>
<head>
<title>Struts2 ActionError & ActionMessage 示例</title>
<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>Struts2 ActionError & ActionMessage 示例</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>
<title>Struts2 ActionError & ActionMessage 示例</title>
<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 ActionError & ActionMessage示例</h1>
    <s:if test="hasActionMessages()">
        <div class="welcome">
            <s:actionmessage />
        </div>
    </s:if>
    <h4>
        <s:property value="getText('welcome.hello')" />
        <s:property value="username" />
    </h4>
</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.yiibai.user.action.LoginAction">
	 <result name="SUCCESS">/pages/welcome.jsp</result>
	 <result name="input">/pages/login.jsp</result>
     </action>
   </package>
	
</struts>
在Struts2,ActionError和ActionMessage功能和用法与Struts1非常相似。

6. 运行并测试

http://localhost:8080/struts2-errormsg/user/login.action


用户名是无效的,显示错误信息:<s:actionerror/>

用户名是有效的,显示欢迎信息:<s:actionmessage/>

 

源代码下载 – Struts2-ActionError-ActionMessage.zip


本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/p/6366169.html,如需转载请自行联系原作者

相关文章
|
XML 存储 JSON
SpringMVC之综合示例讲解(用示例来带你学习SpringMVC)
SpringMVC之综合示例讲解(用示例来带你学习SpringMVC)
73 0
|
存储 JSON 前端开发
SpringMVC示例|学习笔记
快速学习SpringMVC示例
118 0
SpringMVC示例|学习笔记
|
XML Java 数据格式
struts2+spring+mybatis整合小案例
最近学习ssm框架,模仿别人做了一个小案例 当然途中也遇到了蛮多的问题.借此机会.记录一下自己的过程 struts2+spring+mybatis的整合过程 1.说明: 个人采用的是deepin操作系统(深度linux)+Intellij Idea(相对与myeclipse我还是更喜欢idea 可能因为更智能)+tomcat7. 当然在windows下没什么不同,具
4269 0
|
XML Java 应用服务中间件
struts框架搭建及validator示例
struts框架搭建 struts必备jar包 struts的校验(validation) struts的validation框架需要的jar包 struts的validation.xml:Local DTD is missing for publicID xwork-validator-1.0.2.dtd
433 0
struts框架搭建及validator示例
|
Java Apache Maven
struts 结果类型
FreeMarker 一个模板引擎 即 FreeMarkergithub https://github.com/apache/freemarker网址 https://freemarker.apache.
1026 0
|
Java 数据安全/隐私保护 前端开发
|
Java 前端开发 应用服务中间件
|
编解码 Android开发
SpringMVC札集(02)——SpringMVC入门完整详细示例(下)
自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程0...
1293 0
|
前端开发 Java Android开发
SpringMVC札集(01)——SpringMVC入门完整详细示例(上)
自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程0...
1824 0
struts2获得请求参数的方式
1、用Action的属性接收参数       2、用DomainModel(域模型)接收参数       3、用ModelDriven接收参数       使用这种方式接受参数需要实现ModelDriven接口,
728 0