• Struts2的标签库


    Struts2的标签分为下面几类:

    1. 控制标签
    2. 数据标签
    3. 表单标签
    4. 非表单标签
    5. Ajax标签

    其中控制标签与数据标签为普通标签,表单标签、非表达标签与Ajax标签为UI标签。

     Struts 2标签库及其处理类被放在struts2-core-xxx.jar包中。

     要使用Struts2的标签库需在jsp页面中引入

    <%@ taglib  prefix="s" uri="/struts-tags" %>

     引入标签库后,在jsp中使用格式为:<s:xxxxx>  其中xxxxx是标签名 

     控制标签

    控制标签主要用于流程的控制,实现分支、循环等操作,也可以完成对集合的合并、排序等操作。

    if/elseif/else标签

    这是三个标签是进行程序分支控制的,其中<s:if>标签可以单独使用,而<s:elseif>和<s:else>标签使用前必须有<s:if>标签,与java中 if 的用法一致。

    标签用test属性进行条件判断,其值为boolean类型的表达式。

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

    append标签

    append标签用来将多个集合对象拼接成一个集合,使用var或id属性指定新集合的名字(一般用var)。

    <s:append var="newList">
        <s:param value="{'123', '456', '789'}"/>
        <s:param value="{'as', 'sd'}"/>
    </s:append>
    <s:iterator value="%{#newList}" id="lst">
        <s:property value="lst"/>
    </s:iterator>

    用新的名字取拼接后的集合。

    generator标签

    将指定字符串分割成多个子串,实际是转换成一个List集合,按顺序push到ValueStack中,如此就可以用<s:iterator>遍历。

    标签属性:

    iterator标签

    对集合数据进行迭代遍历。

    属性:

    merge标签

    将多个集合拼接成同一个集合。与append标签的用法相似,区别是二者拼接的结果集合的元素顺序不同。

    两个集合进行拼接:{"abc", "def", "ghi"}、{"123", "456", "789"}

    append拼接:

      {"abc", "def", "ghi", "123", "456", "789"}

    merge拼接:

      {"abc", "123", "def", "456", "ghi",  "789"}

     sort标签

    对指定集合元素进行排序,要提供自己的排序规则,即自定义一个实现Comparator的子类,并指定属性。 

    subset标签

    取出指定集合的子集, 

    数据标签

    a标签

     构造超链接

    action标签

     用来在JSP页面中直接调用Action,其属性可以决定调用Action的name和namespace。若设置executeResult属性为true,则可以直接得到调用Action返回的视图页面。

    bean标签

     用于创建一个JavaBean实例,通常与<s:param>标签结合使用,<s:bean>创建实例,<s:param>为该实例传入指定属性,因此指定javaBean必须提供对应的setter方法,要访问属性则提供getter方法。

     若不指定var属性,则该JavaBean实例只能在<s:bean>标签内访问。

    date标签

    用于输出指定格式的日期 

    debug标签

    用于输出ValueStack和StackContext中的信息,只有一个id属性,但一般不用。使用时直接将该标签添加到jsp页面中即可。 

    i18n标签

    用来进行资源绑定,然后将其放入ValueStack中。可以用来加载国际化资源文件,然后用<s:text>标签或在表单中使用key属性访问国际化资源文件。 

    include标签

    将一个jsp页面包含到该页面,有一个必需的value属性, 指定要包含的jsp页面。

    <s:include>标签可以与<s:param>标签结合使用,当包含其他jsp页面时需要指定参数,就可以添加<s:param>将参数值传入,如此传值是用request方式传入,取值是需用request对象取或EL表达式,且<s:param>要指定name属性

    <s:include value="two.jsp">
        <s:param name="name" value="jack">
    </s:include>

    param标签 

     用于为其他标签提供参数,如<s:bean>、 <s:include>

    <s:param name="age">10</s:param><s:param name="age" value="10"/>

    preperty标签

    用于输出ValueStack中对象的属性值,可以使用value属性指定要输出的对象属性。

     

     若不指定value的属性值,则默认会输出ValueStack栈顶的值。

    <s:property value="username" default="用户">

    push标签

    将一个值压入ValueStack的栈顶,可以方便的访问该值。该标签只有一个value属性。

    <!-- push压入值栈栈顶,property取值 -->
    <
    s:push value="user"> <s:property value="firstName"/> <s:property value="lastName"/> </s:push>

    set标签

     将某个值放入指定范围内,例如session、request等,其值通过scope属性来指定,scope属性值只能是application、request、session、page和action。

    <!--放入action中-->
    <s:set var="personName" value="person.name" />
    <!--取值-->
    <s:property value="#personName" />

    text标签

    用于输出国际化资源文件信息,jsp页面中用<s:i18n>指定国际化资源文件后,可以用<s:text>标签输入key对应的value。

     注意不能在一个标签中使用<s:text>标签

    <!--无效-->
    <s:textfield name="lastName" label="<s:text name="person.lastName"/>">

    url标签

    用于生成URL映射地址, 可以和<s:param>结合使用传入参数。

    表单标签

    form标签

    <s:form>标签用于生成html的form,可以添加action、namespace等属性

     在form标签中一般包含其他表单标签,在提交时将其他表单标签的值作为参数传入服务器。

    submit标签

    <s:submit>标签可以生成html的提交按钮,用于<s:form>标签中,用于提交表单。

     (不知道为什么,method属性在测试使用中无效)

    checkbox标签

    创建复选框,等同于<input type="checkbox"/> 

    与其他标签不同,value属性值为boolean类型,表示是否选中,fieldValue才是真值。

    checkboxlist标签 

    <s:checkboxlist>创建多个复选框。

    combobox标签

    用于创建文本框和下拉列表框的组合,看起来是两个组件,实际只有一个name属性,传入的请求参数为文本框中的值而不是列表框中的值。

    doubleselect标签

    创建两个相关联的列表框,即第二个列表框会根据第一个列表框的选择而变化(级联)。

    file标签

    <s:file>标签用于创建一个文件选择框,生成html的<input type="file">标签。

     一般用法:

    <s:file name="uploadFile" accept="text/*">

    hidden标签

    <s:hidden>标签可以创建一个隐藏表单元素,生成html的<input type="hidden"/>,此标签不会显示在页面中,常用于提交表单时传递额外的参数。

    <s:hidden name="id" value="%{id}">

    inputtransferselect标签

    主要用来获取输入转到列表框,或从列表中移除,实际该标签会创建多个表单元素的集合

    label标签

     生成html的<label/>标签,XHTML主题下可以生成两个<label/>标签,位于一行的两列,左列起提示作用,右列用于显示Action属性数据;SIMPLE主题下只生成一个。  

    <s:label name="name" value="Username">
    <s:label name="address" value="Address">

    optiontransferselect标签

    用于创建一个选项转移列表组件,由两个<select>标签以及他们之间用于将选项在两个<select>之间相互转移的按钮组成,表单提交时,将提交两个列表框中的选项。

     select标签

     可以创建一个下拉列表框,生成html的<select>标签

     

     optgroup标签

    <s:optgroup>标签用于生成一个下拉列表框的选项组,通常该标签放在<s:select>标签中,作为选项,一个下拉列表可以包含多个选项组,所以一个<s:select>标签中可以包含多个<s:optgroup>标签。

     

     password标签

     创建密码输入框,用于输入密码,不显示明文。常用属性有name、size和maxlength,size指定密码输入框的显示宽度以字符数为单位,maxlength限定输入的最大字符个数。

    <s:password label="Password" name="pwd" maxlength="15">

    radio标签

    用于生成多个单选框。

    reset标签

    创建一个重置按钮,用于重置表单内容。

    <s:reset value="重置">

     textarea/textfield标签

    两个标签都是创建文本框,区别是<s:textarea>创建的文本框是多行的,而<s:textfield>是单行的。

    一般指定其name和value属性即可。

    对于<s:textarea>还可以用cols和rows属性分别指定多行文本框的列数和行数。

    token标签

    <s:token>标签用于防止表单重复提交,实际在转换为html标签时 ,添加了一个隐藏域,存储了当前提交的值,由于每次提交的值都不一样,若拦截器在拦截信息时检测到两次提交表单时该隐藏域值相等,则阻止表单提交。

    只需简单添加在表单元素中就行。

    <s:form>
        <s:token/>
    </s:form>

    非表单标签

    非表单标签主要用于输出在Action中封装的信息。

    actionerror标签

    输出错误信息到客户端,将Action中的信息输出到页面中,实际是Action实例中的getActionErrors()方法返回值

    <s:actionerror/>

    actionmessage标签

    输出提示信息到客户端,实际是Action实例中的getActionMessage()方法返回值

    <s:actionmessage/>

    component标签

    用于使用自定义的标签、模板、主题等。

    div标签

    生成html的<div>标签

    fielderror标签

    用于输出Action中的fieldErrors属性保存的字段错误,fieldErrors是一个Map类型的属性,在数据校验、类型转换发生错误时,相关的信息会存储在该Map中,通过该标签就可以输出这些信息。

    <s:fielderror/>

     可以通过addActionErrors()、addActionMessage()、addFieldErrors()方法来手动添加信息,也可以通过上面的三个标签取对应数据。(这三个方法在Action中可以直接调用,是父类的方法)

  • 相关阅读:
    mongoDB学习第一天之增删改查
    django使用MySQL时部分配置
    centos部署Django项目的前提工作
    pytho中pickle、json模块
    php留言板的实现
    原本就有mysql,安装phpstudy使用里面自带的mysql导致原来的没服务
    ajax向php传参数对数据库操作
    JavaScript之图片懒加载的实现
    JavaScript之点赞特效
    ci框架根据配置自动生成controller控制器和model控制器(改版本)
  • 原文地址:https://www.cnblogs.com/liuyiyuan/p/12662002.html
Copyright © 2020-2023  润新知