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

时间: 2024-10-05 22:05:54

Struts2的ActionError&ActionMessage示例的相关文章

使用Struts2搭建登录注册示例

使用Struts2来搭建mvc网站框架还是比较容易的,Struts2提供了各项辅助功能,保证了web开发的快速方便.下面使用struts2来搭建一个登录注册示例. 0 项目结构截图 1 搭建Struts2环境 1.1 导入struts2基本包 因为这是一个简单的示例,所以仅用到了struts最进本的功能,所以只需导入struts的基本包即可,具体包如下: 其中文件名中的版本号因不同版本而异.将上面这些包放入WEB-INF/lib目录下,然后在将包导入项目中. 1.2 在web.xml中配置Str

struts2零配置参考示例

<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name&

struts2+spring+hibernte整合示例

简单实现添加用户功能,仅供初学者参考,可自行扩展程序功能(增删改查). 这里贴下代码,需要的可以下载看(因为比较懒). applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.spri

Struts2+Hibernate+Spring 整合示例[转]

原文 http://blog.csdn.net/tkd03072010/article/details/7468769 Spring整合Struts2.Hibernate原理概述: 从用户角度来看,用户发出HTTP请求,当MVC框架的控制器组件拦截到用户请求时,将调用系统的业务逻辑组件,业务逻辑组件则调用系统的DAO组件,而DAO组件则依赖于SessionFactory和DataSource等底层组件实现数据库访问. 从系统实现角度看,Ioc容器先创建SessionFactory和DataSou

Struts2学习之路(七)—— Struts2标签

1.如何使用Strut2标签库的标签? 在JSP页面的源码顶部中加入代码 <%@ taglib uri="/struts-tags" prefix="s" %> 2.标签分类及使用: (1)属性标签 a)控制标签 if elseif else append generator iterator merge sort subset 示例代码: I. if elseif else <s:if test="%{false}">

struts2学习笔记之十三(表单标签和非表单标签)

表单标签 这些UI标签都可以指定cssClass,cssStyle来指定CSS样式,而且可以指定大量的onXxx属性,用于绑定JS函数 form : 表单 head :引入一些辅助的css样式单和js脚本 hidden :隐藏域 label :生成一个标签 password : 生成一个密码框 select :列表框 checkbox : 只是生成一个复选框 radio :不是生成一个单选框 file :生成一个文件上传域 textfield :单行文本域 textarea :多行文本域 sub

Struts2、SpringMVC、Servlet(Jsp)性能对比 测试

Struts2.SpringMVC.Servlet(Jsp)性能对比 测试 . Servlet的性能应该是最好的,可以做为参考基准,其它测试都要向它看齐,参照它. 做为一个程序员,对于各个框架的性能要有一个基本的认知,便于选型时做出正确的决策. 在测试中发现了什么也不要大喊大叫,因为这些都是Java程序员的基础知识. 人人都要了解. ----------------------------------------------------------------------------------

(二十二)Struts2 表单标签

表单标签列表是Struts UI标签的子集.这些标签有助于渲染Struts Web应用程序所需的用户界面,主要分为三类,本章将介绍这三种类型的UI标签: 简单UI标签 我们其实已经在前面的示例中使用了这些标签,接下来将在本章中重新回顾一下.以下是一个简单的视图页面email.jsp与几个简单的UI标签: <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncodi

1、Struts2的简单搭建方法

一.Struts2:是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet:用于jsp页面与Java代码之间的交互. 1.核心:Filter拦截器,对所有的请求进行拦截. 2.工作流程:http://localhost:8080/项目名/请求 --> 被web.xml中的Struts拦截器拦截到strus.xml文件-->找到对应的action里面对应的name,也就找到了对应的类-->通过action里面的method参数找到对应的执行方法,并返回一个字符串--&g