Struts2的标签之UI标签

时间:2021-08-27 04:42:48

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}" updateFreq="1000" /> 
   
    注意:Struts 2要求所有的Ajax标签指定href属性时,都应该指向一个由url标签生成的变量,
          而不是直接给出Action名;  一旦有handler属性和href,那么href就会失效,只执行handler;


【2】标签 a:


   <s:a id="link1" theme="ajax" href="%{test}" 
      executeScripts="true" targets="div2" 
      formId="form" />




【3】标签submit


     <s:submit  type="submit"  id="ajaxsubmit" theme="ajax" href="%{test}" 
      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的标签之通用标签”。