标签:struts2之ui标签 ui标签之非表单标签 struts2
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.以上内容仅供大家学习参考,谢谢!
标签:struts2之ui标签 ui标签之非表单标签 struts2
原文地址:http://blog.csdn.net/u012561176/article/details/45098161