• Struts 2读书笔记struts 2的标签


               Struts 2提供了大量的标签来开发表现层页面。这些标签的大部分,都可以在各种表现层技术中使用。

              Struts 2 将所有标签分为以下三类:

                   UI(用户界面):主要用于生成HTML元素的标签

                  非UI标签:主要用于数据访问、逻辑控制等的标签

                  Ajax标签:用于Ajax支持的标签

     

              1、控制标签

               1)if/elseif/else :都是用来进行分支控制的

                语法格式为:

      
     <s: if test="表达式">
    	标签体
       </s:if>
        <s: elseif test="表达式">
    	标签体
       </s:elseif>
       
        <s: else test="表达式">
    	标签体
       </s:else>

               对于上面三个标签的组合使用,只有<s:if.../>可以单独使用。其余两个必须和<s:if.../>配合使用。在这个当中可以与多个<s:elseif.../>标签结合使用。

                2)、iterator用于将ListMapArrayList等集合进行循环遍历
                     迭代输出时,可以指定一下三个属性:

                    对于上面三个标签的组合使用,只有<s:if.../>可以单独使用。其余两个必须和<s:if.../>配合使用。在这个当中可以与多个<s:elseif.../>标签结合使用。

    属性

    说明

    value

    value属性指定的是被迭代的集合。如果没有指定value属性,则使用ValueStack栈顶的集合

    id

    id属性指定集合里元素的ID

    status

    status属性指定迭代的IteratorStatus实例。通过该实例可以判断当前迭代元素的属性

     

               3)、append标签:用于将多个集合对象拼接起来,组成一个新的集合。它允许通过一个<iterator.../>标签来完成对多个集合的迭代

                       该标签需要指定一个var属性,该属性确定拼接生成的新集合的名字。

                     <s:append.../>可以接受多个<s:param.../>子标签,每个子标签指定一个集合。

               4)、generator标签:可以将指定字符串按指定分隔符分隔成多个子串。

                 该标签有如下属性:

     属性

    说明

    count

    该属性指定生成集合中元素的总数

    separator

    该属性指定用于解析字符串的分隔符

    val

    该属性指定被解析的字符串

    converter

    该属性指定一个转换器,该转换器负责将集合中的每个字符串转换成对象

    var

    如果指定了该属性,则将生成的Iterator对象放入StackContext

     

               5)、merge标签:和append标签相似。

                    假如有两个集合{'abc','def','ghi'} {'123','456','789'}

                   通过append方式拼接,新集合的元素顺序为:

                        abc  def  ghi  123  456  789

                   通过merge方式拼接,新集合的元素顺序为:

                  abc  123  def  456  ghi  789

     

               6)、subset标签:用于取得集合的子集

                  该标签有如下属性:

    属性

    说明

    count

    该属性指定子集合中元素的个数。如果不指定该属性,则默认取得源集合的全部元素

    source

    该属性指定源集合。如果不指定该属性,则默认取得ValueStack栈顶的集合

    start

    该属性指定子集从源集合的第几个元素开始截取。默认从第一个

    decider

    该属性指定由开发者子集决定是否选中该元素

    var

    如果指定了该属性,则将生成的Iterator对象设置为page范围的属性

     

               7)、sort标签:用于对指定的集合元素进行排序。

                     进行排序时,必须提供自己的排序规则。即实现自己的Comparator

                     有如下几个属性:

    属性

    说明

    comparator

    该属性指定指定进行排序的Comparator实例

    source

    该属性指定被排序的集合。如果不指定,则默认对ValueStack栈顶的集合进行排序

    var

    如果指定了该属性,则将生成的Iterator对象设置成page范围的属性,不放入StackContext

     

               数据标签:

               数据标签主要用于提供各种数据访问相关的功能,包含显示一个Action里的属性,以及生成国际化输出等功能。

     

                1)、action标签

                      使用action标签可以允许在jsp页面中直接调用Action。如果指定了executeResult参数的属性值为true,该标签还会把Action的处理结果包含到本页面中来。

                     它有如下属性:

    属性

    说明

    var

    如果定义了该属性,那么该Action将会被放入ValueStack

    name

    指定该标签调用哪个Action

    namespace

    该属性指定了该标签调用的Action所在的namespace

    executeResult

    该属性指定了是否要将Action的处理结果页面包含到本页面中

    ignoreContextParams

    该属性指定了该页面中的请求参数是否需要传入调用的action

     

               2)、bean标签:用于创建一个javaBean实例。

                     它有如下两个属性:  

    属性

    说明

    name

    该属性指定了要实例化的javaBean的实现类

    var

    如果指定了该属性,则该JavaBean实例会被放入发哦Stack Context中,并放入requestScope

     

               3)、date标签:该标签用于格式化一个日期。还可以计算指定日期和当前时刻的时差

                     有如下属性:

    属性

    说明

    form

    如果指定了该属性,将根据该属性指定的格式来格式化日期

    nice

    该属性用于指定是否输出指定日期和当前时刻之间的时差。该属性值只能为truefalse

    name

    该属性指定要格式化的日期值

    var

    如果指定了该属性格式化后的字符串将被放入Stack Context

    注:如果既指定了nice="true",也指定了format属性,则会输出指定日期和当前时刻之间的时差,format属性会失效。

     

               4)、debug标签:它会在页面生成一个超级链接,通过该链接可以查看到ValueStackStack Context中所有的信息

     

               5)include标签:用于将一个jsp页面或者一个Servlet包含到本页面中。

                   它有如下属性:  

    属性

    说明

    value

    该属性指定需要被包含的jsp页面或者Servlet

               还可以为该标签指定多个<s:param.../>子标签,用于将多个参数值传入被包含的jsp页面或者Servlet

     

               6)、param标签:用于为其他标签提供参数

                     该标签有如下属性:

    属性

    说明

    name

    指定需要设置参数的参数名

    value

    指定需要设置参数的参数值

     

               7)、push标签:用于将某个值放到ValueStack的栈顶

                    有下面一个属性:

    属性

    说明

    value

    该属性指定需要放到ValueStack栈顶的值

               只有在push标签内时,被push标签放入ValueStack中的对象才存在;一旦离开了push标签,则刚刚放入的对象将会立即被移除ValueStack

     

               8)、set标签:该标签用于将某个值放入到指定的范围内。

                    Set标签有如下属性:

    属性

    说明

    scope

    指定新变量被放置的范围,该属性可以接受applicationsessionrequestpage或者action5个值。默认为action

    value

    指定将赋给变量的值

    var

    如果指定了该属性,则会将被放入到request范围中,并被放入ONGLStack Context

     

               9)、url标签:该标签用于生成一个URL地址。

               可以通过为url标签指定param子元素,从而向指定URL发送请求参数。

     

               10)、property标签:该标签的作用是输出指定值。

                      该标签有如下属性:

    属性

    说明

    default

    如果需要输出的属性值为null。则显示default属性指定的值

    escape

    指定是否escape HTML代码

    value

    指定需要输出的属性值

     

               表单标签

               1)checkboxlist标签:创建复选框。相当于HTML中的checkbox标签:

    属性

    说明

    list

    根据指定的集合来生成多个复写框

    listKey

    该属性指定集合元素中的某个属性作为复选框的value。如果集合是Map,则可以使用keyvalue指定Map对象的keyvalue作为复选框的value

    listValue

    该属性指定集合元素中的某个属性作为复选框的标签。如果集合是Map,则可以使用keyvalue指定Map对象的keyvalue作为复选框的标签

     

               2)、doubleselect标签:该标签用于生成一个级联列表框。当选择第一个下拉列表框时,第二个下拉列表框的内容会随着改变。

                该标签有如下属性:

    属性

    说明

    list

    指定用于输出第一个下拉类表框中选项的集合

    listKey

    该属性指定集合元素中的某个属性作为第一个下拉列表框的value。如果集合是Map,则可以使用keyvalue指定Map对象的keyvalue作为复选框的value

    listValue

    该属性指定集合元素中的某个属性作为第一个下拉列表框的标签。如果集合是Map,则可以使用keyvalue指定Map对象的keyvalue作为第一个下拉列表框的标签

    doubleList

    指定用于输出第二个下拉类表框中选项的集合

    doubleListKey

    该属性指定集合元素中的某个属性作为第二个下拉列表框的value。如果集合是Map,则可以使用keyvalue指定Map对象的keyvalue作为复选框的value

    doubleListValue

    该属性指定集合元素中的某个属性作为第二个下拉列表框的标签。如果集合是Map,则可以使用keyvalue指定Map对象的keyvalue作为第二个下拉列表框的标签

    doubleName

    指定第二个下拉列表框的name属性

     

               4)、head标签:用于生产HTML主要页面的head部分。

     

               5)、optiontransferselect标签:该标签会生成两个列表选择框。并生成系列的按钮用于控制各选项在两个下拉列表之间的移动、升降。当提交表单时,两个列表选择框对应的请求参数都会被提交。

                  该属性有如下属性:

    属性

    说明

    addAllToLeftLabel

    设置全部移动到左边按钮上的文本

    addAllToRightLabel

    设置全部移动到右边按钮上的文本

    addToLeftLabel

    设置移动到左边按钮上的文本

    addToRightLabel

    设置移动到右边按钮上的文本

    allowAddAllToLeft

    设置是否出现全部移动到左边的按钮

    allowAddAllToRight

    设置是否出现全部移动到右边的按钮

    allowAddToLeft

    设置是否出现移动到左边的按钮

    allowAddToRight

    设置是否出现移动到右边的按钮

    leftTitle

    设置左边列表框的标题

    rightTitle

    设置右边列表框的标题

    allowSelectAll

    设置是否出现全部选择按钮

    selectAllLabel

    设置全部选择按钮上的文本

    doubleList

    设置用于创建第二个下拉选择框的集合

    doubleListKey

    设置用于创建第二个下拉列表框的选项value的属性

    doubleListValue

    设置用于创建第二个下拉列表框的选项label的属性

    doubleName

    设置第二个下拉选择框的name属性

    doubleValue

    设置第二个下拉选择框的value属性

    doubleMultiple

    设置第二个下拉选择框是否允许多选

    list

    设置用于创建第一个下拉选择框的集合

    listKey

    设置用于创建第一个下拉列表框的选项value的属性

    listValue

    设置用于创建第一个下拉列表框的选项label的属性

    name

    设置第一个下拉选择框的name属性

    value

    设置第一个下拉选择框的value属性

    multiple

    设置第一个下拉选择框是否允许多选

     

               6)、select标签:该标签用于生成一个下拉列表框。

                    使用该标签是必须制定list属性。系统会使用list属性指定的集合来生成下拉列表框的选项

                    该标签有如下属性:

    属性

    说明

    listKey

    该属性指定集合元素中的某个属性作为复选框的value。如果集合是Map,则可以使用keyvalue指定Map对象的keyvalue作为复选框的value

    listValue

    该属性指定集合元素中的某个属性作为复选框的标签。如果集合是Map,则可以使用keyvalue指定Map对象的keyvalue作为复选框的标签

    multiple

    设置该列表是否允许多选

     

               7)、radio标签:该标签用于生成多个单选框;

     

               8)、optgroup标签:该标签用于生成一个下拉列表框的选项组:

                      该标签必须放在<s:select.../>标签中使用

     

               9)、token标签:该标签用于阻止多次提交表单的问题。如果需要该标签起作用,则应该在Struts 2的配置文件中启用TokenInterceptor拦截器

                  Token标签的实现原理是:在表单中增加一个隐藏域。每次加载该页面时,该隐藏域的值都会不同。而TokenInterceptor拦截器则拦截所有用户请求,如果两次请求时该token对应隐藏域的值相同,则会阻止表单提交。

     

               10)、updownSelect标签:该标签用于生产可以上下移动的列表框;

                 该标签的属性如下:

    属性

    说明

    allowMoveUP

    是否显示“上移”按钮

    allowMoveDown

    是否显示“下移”按钮

    allowSelectAll

    是否显示“全选”按钮

    moveUpLabel

    设置“上移”按钮上的文本

    moveDownLabel

    设置“下移”按钮上的文本

    selectAllLabel

    设置“全选”按钮上的文本

     

    读李刚《轻量级Java EE企业应用实战》
  • 相关阅读:
    直播平台的相关技术(转载)
    各种排序算法分析总结(待整理))
    算法:60.第k个排列
    三种随机化算法:舍伍德算法 拉斯维加斯算法 蒙特卡洛算法
    随机化算法之随机数
    caffe调试
    Euclideanloss_layer层解析
    布线问题(分支限界法)
    最大堆和最小堆
    机器学习知识框架
  • 原文地址:https://www.cnblogs.com/oversea201405/p/3752288.html
Copyright © 2020-2023  润新知