Struts2的标签主要分为两大类:即UI标签(UI Tag)和通用标签(Generic Tag);
在标签使用之前需要导入标签库:
<% @ taglib prefix="s" uri="/struts-tags"%>
一、UI标签分为3类:表单标签、非表单标签、AJAX标签:
1、表单标签:
<s:form></s:form>:获取相应的from值
<s:textfield></s:textfield>:文本输入框
<s:password></s:password>:密码输入框
<s:textarea></s:textarea>:文本域输入框
<s:radio list=""></s:radio>:单选按钮
<s:checkbox></s:checkbox>:复选框
<s:submit></s:submit>:提交标签
<s:reset></s:reset>:重置标签
<s:hidden></s:hidden>:隐藏域标签
这些标签基本上和HTML里的标签是一致的,用法也差不多,这里就不做详细的介绍了。
2、非表单标签
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()方法的返回值。这两个标签没有其专有的属性,所以使用起来挺简单的。
(2).component标签:此标签用于使用自己的自定义组件,这是一个非常灵活的用法,如果经常需要使用某个效果片段,就可以考虑将这个效果片段定义成一个自定义组件,然后在页面中使用component标签来使用该自定义组件。
因为使用自定义组件还是基于主题,模板管理的,因此在使用component标签时,常常需要指定如下三个属性:
~ theme:自定义组件所使用的主题,如果不指定该属性,默认使用xhtml主题。
~ templateDir:指定自定义组件的主题目录。如果不指定,默认使用系统的主题目录,即template目录。
~ template:指定自定义组件所使用的模板。
注:除此之外,还可以在cmponent标签内使用param子标签,子标签表示向该标签模板中传入额外的参数。如果希望在模板中取得该参数,总是采用如下形式:$parameters.paramname,或者$parameters['paramname']。
提示:自定义的模板文件可以采用FreeMarker、JSP和Velocity三种技术来书写。
3、AJAX标签
【1】div标签:
为了让div标签能够获取服务器数据,必须为该标签指定一个href属性,href属性必须是一个Action。
为了指定更新频率和更新延迟:可以指定如下2个属性:
(1)updateFreq : 指定更新Div内容的试卷间隔,单位是ms.如果不指定该属性,则只加载时更新
该div的内容。
(2) delay :指定更新div内容的时间延迟,单位是ms。如果不指定,则加载时立即开始记时,
准备开始刷新div的内容。若果没有指定updateFreq属性,则该属性毫无意义;
(3)如果服务器更新的内容包含了javascript代码,则需要指定指定服务器javascript代码的方法
executeScripts="true";
(4) showErrorTransportText :设置是否显示服务器的错误信息
(5) loadingText :设置当服务器响应还未加载时的显示信息;
(6)handler :指定的javascript函数
<s:url id="test" value="/Test.action" />
<s:div id="div1" theme="ajax" href="%{test}" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" updateFreq="1000" />
注意:Struts 2要求所有的Ajax标签指定href属性时,都应该指向一个由url标签生成的变量,
而不是直接给出Action名; 一旦有handler属性和href,那么href就会失效,只执行handler;
【2】标签 a:
<s:a id="link1" theme="ajax" href="%{test}" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow"
executeScripts="true" targets="div2"
formId="form" />
【3】标签submit
<s:submit type="submit" id="ajaxsubmit" theme="ajax" href="%{test}" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow" target="_blank" rel="external nofollow"
executeScripts="true" targets="div2"
formId="form" />
【4】标签 autocompleter: 与google搜索框类似的下拉选择搜索列表
<s:autocompleter theme="ajax" herf="%{books} forceValidOption="true"" />
【5】标签tabbedPanel:选项卡
<b>固定大小的选项卡,使用属性cssStyle和doLayout:</b>
<s:tabbedpanel cssStyle="width: 200px; height: 100px;" doLayout="true" id="tab4">
<s:div label="Tab 1" >
Local Tab 1
</s:div>
<s:div label="Tab 2" >
Local Tab 2
</s:div>
</s:tabbedpanel>
注:如果还想了解其他标签就去看本博的“struts2的标签之通用标签”。