Struts2的非表单标签 图片看不了?点击切换HTTP 返回上层
Struts2 的非表单标签主要用于在页面中生成非表单的可视化元素,以及输出在 Action 中封装的信息,如输出错误提示信息等。
常用的非表单标签有 <s:actionmessage>、<s:actionerror> 和 <s:fielderror> 标签,它们分别用于显示动作信息、动作错误信息和字段错误信息。如果信息为空,则不显示。各标签的具体功能介绍如下。
为了让读者更好地了解这三个非表单标签的作用,下面通过具体的案例演示这三个非表单标签的使用。
上述代码中,分别使用了addActionMessage、addActionError 和 addFieldError 三个方法输出错误信息。

图 1 错误信息提示标签
从图 1 中可以看到,浏览器页面使用三个标签已经成功输出了 Action 中的信息,其中在 <s:fielderror> 标签中,有无属性 value 值的显示效果一样。
常用的非表单标签有 <s:actionmessage>、<s:actionerror> 和 <s:fielderror> 标签,它们分别用于显示动作信息、动作错误信息和字段错误信息。如果信息为空,则不显示。各标签的具体功能介绍如下。
- <s:actionmessage> 标签:如果 Action 实例的 getActionMessage() 方法返回不为 null,则该标签负责输出该方法返回的系列消息。
- <s:actionerror> 标签:如果 Action 实例的 getActionError() 方法返回不为 null,则该标签负责输出该方法返回的系列错误。
- <s:fielderror> 标签:如果 Action 实例存在表单域的类型转换错误和校验错误,则该标签负责输出这些错误提示。
为了让读者更好地了解这三个非表单标签的作用,下面通过具体的案例演示这三个非表单标签的使用。
1. 创建Action
在 struts2Demo04 项目的 src 目录下新建一个名称为 com.mengma.action 的包,并在包中新建一个名称为 MsgAction 的类,编辑后如下所示。1 2 3 4 5 6 7 8 9 10 11 12 | 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; } } |
2. 创建配置文件
在 src 目录下创建 Struts2 的配置文件 struts.xml,并添加 MsgAction 类的配置信息,其配置代码如下所示:1 2 3 4 5 6 7 | <?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 的页面,编辑后如下所示。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <%@ 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 值的显示效果一样。