网站地图    收藏    合作   
<

快捷菜单 返回顶部

Struts2 的非表单标签主要用于在页面中生成非表单的可视化元素,以及输出在 Action 中封装的信息,如输出错误提示信息等。

常用的非表单标签有 <s:actionmessage>、<s:actionerror> 和 <s:fielderror> 标签,它们分别用于显示动作信息、动作错误信息和字段错误信息。如果信息为空,则不显示。各标签的具体功能介绍如下。

为了让读者更好地了解这三个非表单标签的作用,下面通过具体的案例演示这三个非表单标签的使用。

1. 创建Action

在 struts2Demo04 项目的 src 目录下新建一个名称为 com.mengma.action 的包,并在包中新建一个名称为 MsgAction 的类,编辑后如下所示。
package com.mengma.action;

import com.opensymphony.xwork2.ActionSupport;

public class MsgAction extends ActionSupport {
    public String execute() throws Exception {
        this.addActionMessage("<s:actionmessage>标签输出的内容");
        this.addActionError("<s:actionerror>标签输出的内容");
        this.addFieldError("msg", "<s:fielderror>标签输出的内容");
        return SUCCESS;
    }
}
上述代码中,分别使用了addActionMessage、addActionError 和 addFieldError 三个方法输出错误信息。

2. 创建配置文件

在 src 目录下创建 Struts2 的配置文件 struts.xml,并添加 MsgAction 类的配置信息,其配置代码如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<action name="msg" class="com.mengma.action.MsgAction">
    <result>/non_formTags.jsp</result>
</action>

3. 创建显示页面

在项目的 WebContent 目录下创建一个名称为 non_formTags.jsp 的页面,编辑后如下所示。
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>errorTags</title>
</head>
<body>
    <s:actionmessage/>
    <s:actionerror/>
    <s:fielderror/>
    <s:fielderror value="msg"/><!-- 有无value效果一样 -->
</body>
</html>

4. 运行项目并查看结果

在浏览器的地址栏中输入地址 http://localhost:8080/struts2Demo04/msg,浏览器的显示结果如图 1 所示。


图 1  错误信息提示标签

从图 1 中可以看到,浏览器页面使用三个标签已经成功输出了 Action 中的信息,其中在 <s:fielderror> 标签中,有无属性 value 值的显示效果一样。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com