Struts2中UI标签之非表单标签

1.非表单标签主要用于在页面生成一些非表单的可视化元素,例如Tab页面,输出HTML页面的树形结构等。当然,非表单标签也包含在页面显示Action里封装的信息,非表单标签主要有如下几个:

a:生成一个超级连接(link)。

actionerror:如果Action实例的getActionError()方法返回不为null,则该标签负责输出该方法返回的系列错误。

actionmessage:如果Action实例的getActionMessage()方法返回不为null,则该标签负责输出该方法返回的系列消息。

component:使用此标签可以生成一个自定义组件。

div:此标签负责生成一个div片段。

fielderror:如果Action实例存在表单域的类型转换错误、校验错误、该标签负责输出这些提示信息。

tabbedPanel:生成HTML页面的Tab页。

tree:生成一个树形结构。

treenode:生成树形结构的节点。



2.下面,使用上面列出比较常用的非表单标签:

(1).actionerror和actionmessage标签:这两个标签用法完全一样,作用也几乎完全一样,都是负责输出Action实例里封装的信息,区别是actionerror标签负责输出Action实例的getActionError()方法的返回值,而actionmessage标签负责输出Action实例的getActionMessage()方法的返回值。这两个标签没有其专有的属性,所以使用起来挺简单的。


接下来对actionerror和actionmessage标签附上一个例子,首先,新建一个Struts2项目,项目名为MessageTest,新建一个MessageAction类。代码如下:

package com.gk.action;

import com.opensymphony.xwork2.ActionSupport;

public class MessageAction extends ActionSupport {

	
	public String execute() throws Exception {

		addActionMessage("第一个action一般消息");
		addActionMessage("第二个action一般消息");

		addActionError("第一个action错误消息");
		addActionError("第二个action错误消息");

		addFieldError("field1", "第一个字段错误消息");
		addFieldError("field2", "第二个字段错误消息");
		return SUCCESS;
	}

}


接着打开struts.xml文件,对Action进行配置,代码如下:

<?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.enable.DynamicMethodInvocation" value="true"></constant>
	<constant name="struts.devMode" value="true"></constant>
	<package name="message" namespace="/" extends="struts-default">
		<action name="message" class="com.gk.action.MessageAction">
			<result>/message.jsp</result>
		</action>
	</package>
</struts>

新建一个message.jsp页面,代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="/struts-tags"  prefix="s"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'message.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    输出Action一般性消息:<s:actionmessage/><br/>
    输出Action错误消息:<s:actionerror/><br/>
    输出字段错误消息:<s:fielderror></s:fielderror><br/>
  </body>
</html>


然后部署此项目到Tomcat服务器,开启Tomcat服务器,输入相应的地址后,效果如下:



(2).component标签:此标签用于使用自己的自定义组件,这是一个非常灵活的用法,如果经常需要使用某个效果片段,就可以考虑将这个效果片段定义成一个自定义组件,然后在页面中使用component标签来使用该自定义组件。


因为使用自定义组件还是基于主题,模板管理的,因此在使用component标签时,常常需要指定如下三个属性:

~ theme:自定义组件所使用的主题,如果不指定该属性,默认使用xhtml主题。

~ templateDir:指定自定义组件的主题目录。如果不指定,默认使用系统的主题目录,即template目录。

~ template:指定自定义组件所使用的模板。

注:除此之外,还可以在cmponent标签内使用param子标签,子标签表示向该标签模板中传入额外的参数。如果希望在模板中取得该参数,总是采用如下形式:

$parameters.paramname,或者$parameters['paramname']。

提示:自定义的模板文件可以采用FreeMarker、JSP和Velocity三种技术来书写。




3.以上内容仅供大家学习参考,谢谢!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值