Struts标签基本知识

Struts标签基本知识

1.普通标签:控制执行的流程

1.1 控制标签:实现分支、循环等流程控制

if
elseif
else
append
generator
iterator
merge
sort
subset

1.2 数据标签:输出后台的数据和完成其他数据访问功能

a
action
bean
date
debug
i18n
include
param
property
push
set
text
url

2.UI标签:以丰富而可复用的HTML文件来显示数据

2.1 表单标签:用来生成HTML页面中的表单元素

checkbox
checkboxlist
combobox
doubleselect
head
file
form
hidden
inputtransferselect
label
optiontransferselect
optgroup
password
radio
reset
select
submit
textarea
textfield
token
updownselect

2.2 非表单标签:用来生成HTML的<div>标签及输出Action中封装的信息

actionerror
actionmessage
component
div
fielderror

2.3 Ajax标签

a
autocompleter
bind
datetimepicker
div
head
submit
tabbedPanel
textarea
tree
treenode

3.标签的使用

导入Struts2-core-xxx.jar包
在JSP文件中添加 <%@ taglib prefix="s" uri="/struts-tags" %>
  • 1.访问HTTP请求参数:#parameters[‘id’]或#parameters.id
  • 2.访问HTTP请求属性:#request[‘user]或#request.user
  • 3.访问session属性:#session[‘user’]或#session.user
  • 4.访问application属性:#application[‘user’]或#application.user
  • 5.创建List集合,value值为默认

    <s:select label="Country" name="country" list="{'America','China','Russia'}" value="%{'China'}" />
    
  • 6.创建一个Map集合

    <s:select label="Sex" name="sex" list="#{'0':'female','1':'male'}" />
    
  • 7.if标签:标签体

    <s:if test="'A' in {'A','B'}">
        In
    </s:if>
    
    <s:if test="'foo' not in {'foo','bar'}" >
        Not in
    </s:if>
    <s:else>
        In
    </s:else>
    
  • 8.iterator标签

    //begin:迭代数组或集合的起始位置
    //end:迭代数组或集合的结束位置
    //status:迭代过程中的状态,该属性可以获取迭代过程中的状态信息(元素个数,当前索引值,索引值奇偶性等)
    //step:指定每一次迭代后索引值增加的值
    //value:迭代数组或者集合对象
    //var:将生成的Iterator设置为page范围的属性
    //id:不推荐使用
    <s:iterator var="name" value="{'HTML','JAVA','CSS'}" status="st">
        <!-- 如果是奇数 -->
        <s:if test="#st.odd">
            <tr style="background-color:red;">
                <td><s:property value="name" /></td>
            </tr>
        </s:if>
    </s:iterator>
    
    // ?:获得所有符合逻辑的元素
    //^:获得符合逻辑的第一个元素
    //$:获得符合逻辑的最后一个元素
    <s:iterator value="people.{?#this.age > 20}" var="p">
        <s:property value="p.name" />
    </s:iterator>
    
  • 9.append标签

    <s:append var="newList">
        <s:param value="{'HTML入门','Java基础','css入门'}"></s:param>
        <s:param value="{'Struts教程','JavaWeb实战'}"></s:param>
    </s:append>
    
  • 10.generator标签:用来将指定字符串按指定分隔符分割成多个子串

    //converter:指定转换器
    //count:指定生成集合中元素个数
    //separator:指定字符串的分隔符
    //val:指定被解析的字符串
    //var:将生成的Iterator设置为pageContext范围的属性
    <s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" count="3" separator=","></s:generator>
    
  • 11.merge标签:用来将多个集合拼接成同一个集合
  • 12.sort标签:用于对指定的集合元素进行排序,在进行排序时,必须提供自己的排序规则,即自定义Comparator

    //Comparator:指定进行排序实例
    //id:不推荐使用,var可替代
    //source:指定排序集合,如不指定为ValueStack栈顶集合
    //var:将生成的Iterator设置为page范围的属性
    <s:sort comparator="#mycomparator" source="{'ccc','adds','bbbb'}"></s:sort>
    
  • 13.subset标签:取出指定集合的子集

    //count:指定子集中元素的个数
    //decider:指定一个decider对象,该对象决定是否选择该元素
    //id:不推荐
    //source:指定源集合
    //start:指定从第几个元素截取
    //var:将生成的Iterator设置为pageContext范围的属性
    <s:subset source="{'a','b','c','d'}" start="1" count="2"></s:subset>
    
  • 14.a标签:用于构造HTML页面中的超链接

    //action:指定超链接Action地址
    //href:超链接地址
    //namespace:指定Action地址
    //id:指定其id
    //method:指定Action调用方法
    
  • 15.action标签:用来在JSP页面中调用Action

    //executeResult:指定是否将处理结果页面显示在本页面,默认为false
    //var:将指定Action放入ValueStack中
    //name:指定调用的Action
    //flush:输出结果是否刷新,默认为true
    //ignoreContextParams:指定该页面中的参数是否传入指定Action,默认为false
    //namespace:指定调用Action的命名空间
    <s:action name="user" executeResult="true" namespace="/" />
    
  • 16.bean标签

    <s:bean name="com.model.User" var="usr">
        <s:param name="name" value="'tom'">
        <s:param name="age" value="20">
        <s:if test="#usr.age > 10">
            <s:property value="#usr.name" />
        </s:if>
    </s:bean>
    
  • 17.date标签:输出指定格式的日期

    //name:指定日期值
    //var:指定将日期放入ValueStack中
    //nice:指定是否输出指定日期和当前日期之间的时差
    //format:指定输出格式
    <s:date name="person.birthday" format="dd/MM/yyyy" />
    
  • 18.debug标签:主要用于开发者在开发过程中调试程序时输出更多的调试信息
  • 19.i18n标签:用来进行资源绑定,然后将其放入ValueStack

    //name:指定资源文件
    
  • 20.include标签:将一个JSP页面包含到该页面中
  • 21.param标签:用于为其他标签提供参数
  • 22.property标签:用于输出ValueStack中对象的属性值,可以使用其value属性来指定要输出的对象属性

    //value:指定要输出的值
    //default:指定默认输出值,如果输出值为null,则输出default属性值
    <s:property value="username" default="普通用户" />
    
  • 23.push标签:将一个值放到ValueStack的栈顶

    <s:push value="user">
        <s:property value="firstName" />
    </s:push>
    
  • 24.set标签:用于将某个值放入指定范围内

    //value:指定将赋给变量的值,如果没有则将ValueStack栈顶的值赋给变量
    //var:指定变量名,该变量将会放入ValueStack,也可使用name或id
    //scope:指定变量放入范围(application,request,session,page,action),默认为action范围
    <s:set var="personName" value="person.name" />
    <s:property value="#personName" />
    
  • 25.text标签:主要用来输出国际化资源文件信息

    //name:要获取的资源属性
    //searchValueStack:假如无法获取资源属性,是否要到stack中搜索其属性
    //var:命名得到的资源属性,然后放入ValueStack中
    
  • 26.url标签:用来生成URL映射地址

    //action:指定生成的URL地址的Action,如果不提供该属性,则使用value值为URL的地址值
    //anchor:指定URL的锚点
    //encode:指定是否对参数进行编码,默认为true
    //escapeAmp:指定是否对&符号进行编码,默认为true
    //includeContext:指定将当前上下文包含在URL地址中
    //includeParams:指定是否包含请求参数,其值只能为none、get或all,默认为get
    //method:指定Action调用方法
    //namespace:指定Action命名空间
    //value:指定生成URL地址,如果value属性不提供则使用action属性值为URL地址
    //var:指定该链接变量,并将其放入ValueStack中
    <!-- 生成映射地址url -->
    <s:url value="user.action" var="url" >
        <s:param name="id" value="10" />
    </s:url>
    <!-- 访问url对应的地址 -->
    <s:a href="%{url}">user</s:a>
    
  • 27.form标签

    //action:指定提交时对应的Action
    //namespace:指定action命名空间
    
  • 28.submit标签:产生提交按钮
  • 29.checkbox标签:创建复选框

    //name:指定该元素name
    //value:指定该元素value
    //label:生成一个label元素
    //fieldValue:指定真实的value,会屏蔽value属性值
    
  • 30.checkboxlist标签:用于一次性创建多个复选框

    //name:指定表单元素名字
    //list:要迭代的集合,使用集合中的元素来设置各个选项,如果list的属性为Map,则Map的key成为选项的value,Map的value会成为选项的内容
    //listKey:指定集合对象中的哪个属性作为选项的value
    //listValue:指定集合对象中的哪个属性作为选项的内容
    <s:checkboxlist name="characters" list="#{'a':'1','b':'2','c':'3'}" 
             label="choose a character" labelposition="top"
             listKey="key"
             listValue="value" />
    
  • 31.combobox标签:用于创建文本框和下拉列表框的组合

    //name:指定表单元素名字
    //list:指定集合,该集合中的元素对应生成的列表项
    //headerKey:headerValue的键,默认为"-1"
    //headerValue:用作标题的选项的文本,因为它是一个标题,所以是只读的,不能选择
    //label:生成一个label元素
    <s:combobox label="My Favourite Fruit" name="fruit" 
                list="{'apple','banana','grape','pear'}" 
                headerKey="-1"
                headerValue="----please select-----"
                emptyOption="true"
                value="banana" />
    
  • 32.doubleselect标签:创建两个相关联的列表框

    //list:指定要迭代的集合,使用集合中的元素来设置各个选项
    //listKey:指定集合对象中哪个属性作为选项的value,该选项只对第一个列表框起作用
    //listValue:指定集合对象中的哪个属性作为选项的内容,该选项只对第一个列表框起作用
    //doublelist:指定第二个列表框要迭代的集合
    //doubleListKey:指定集合对象中的哪个属性作为选项的value,该选项只对第二个列表框起作用
    //doubleListValue:指定集合对象中的哪个属性作为选项的内容,该选项只对第二个列表框起作用
    //doubleName:指定第二个列表框的name属性
    //multiple:是否多选,默认为false
    <s:doubleselect label="choose a city"
            name="province" list="{'四川省','山东省'}" doubleName="city"
            doubleList="top == '四川省' ? {'成都市','绵阳市'} : {'济南市','青岛市'}" />
    
  • 33.head标签:用于生成HTML的HEAD部分
  • 34.file标签:创建一个文件选择框
  • 35.hidden标签:创建一个隐藏表单元素
    1. inputtransferselect标签:用来获取输入转到列表框中,或从列表中移除,实际上该标签创建了多个表单元素的集合

      //list:要迭代的集合,使用集合中的元素来设置各个选项
      //listKey:指定集合对象中哪个属性作为选项的value
      //listValue:指定集合对象中哪个属性作为选项的内容
      //multiple:指定是否多选,默认为false
      //upLabel:设置向上移动按钮上的文本
      //downLabel:设置向下移动按钮上的文本
      //allowMoveUp:设置是否使用向上移动按钮,默认为true
      //allowMoveDown:设置是否使用向下移动按钮,默认为true
      //addLabel:设置添加输入到右边列表框的按钮上的文本
      <s:inputtransferselect 
              label="Favourite fruits"
              name="fruits"
              list="{'apple','banana','pear'}"
              upLabel="up"
              downLabel="down"
              removeAllLabel="removeall"
              removeLabel="remove"
              addLabel="add" />
      
  • 37.label标签:生成label标签
  • 38.optiontransferselect标签:创建一个选项转移列表组件

    //list:要迭代的集合,使用集合中的元素来设置各个选项
    //listKey:指定集合对象中的哪个属性作为选项的value,该选项只能对第一个列表框起作用
    //listValue:指定集合对象中的哪个属性作为选项的内容,该选项只对第一个列表框起作用
    //multiple:是否多选,默认为false
    //doubleList:要迭代的集合,使用集合中的元素来设置各个选项
    //doubleListKey:指定集合对象中的哪个属性作为选项的value,该选项只对第二个列表起作用
    //doubleListValue:指定集合对象中的哪个属性作为选项的内容,该选项只对第二个列表框起作用
    //doubleMultiple:是否多选,默认为false
    //doubleName:指定第二个列表框的name属性
    <s:optiontransferselect
            label="Favourite Cartoons Characters"
            name="leftSides"
            leftTitle="Left Title"
            rightTitle="Right Title"
            list="{'Popeye','He-Man','Spideman'}"
            multiple="true"
            headerKey="headerKey"
            headerValue="---Please Select---"
            emptyOption="true"
            doubleList="{'Superman','Mickey Mouse','Donald Duck'}"
            doubleName="rightSides"
            doubleHeaderKey="doubleHeaderKey"
            doubleHeaderValue="---Please Select---"
            doubleEmptyOption="true"
            doubleMultiple="true" />
    
  • 39.select标签:创建一个下拉列表框

    //list:要迭代的集合
    //listKey:指定集合对象中的哪个属性作为选项的value
    //listValue:指定集合对象中的哪个属性作为选项的内容
    //headerKey:设置当用户选择了header选项时,提交的value,如果使用该属性,不能为该属性设置空值
    //headerValue:显示在页面中header选项的内容
    //multiple:指定是否多选,默认为false
    <s:select label="Months"
            name="months"
            headerKey="-1" headerValue="Select Month"
            list="#{'01':'Jan','02':'Feb'}"
            listKey="key"
            listValue="value" />
    
  • 40.optgroup标签:生成一个下拉列表框的选项组

    //list:要迭代的集合
    //listKey:指定集合对象中的哪个属性作为选项的value
    //listValue:指定集合对象中的哪个属性作为选项内容
    <s:select label="My Selection"
            name="mySelection"
            value="%{'POPEYE'}"
            list="%{#{'SUPERMAN':'Superman','SPIDERMAN':'spiderman'}}">
            <s:optgroup label="Adult"
                    list="%{#{'SOUTH_PARK':'South Park'}}" />
            <s:optgroup label="Japanese"
                    list="%{#{'POKEMON':'pokemon','DIGIMON':'digimon'}}" />
    </s:select>
    
  • 41.password标签:创建一个密码输入框

    <s:password label="Password" name="password" maxlength="15" />
    
  • 42.radio标签:创建多个单选框

    <s:radio label="Gender" name="gender" list="#{'male':'男','female':'女'}"
            listKey="key"
            listValue="value" />
    
  • 43.reset标签:创建一个重置按钮
  • 44.textarea/textfield标签:创建文本框,textarea多行,textfield单行
  • 45.token标签:用于防止表单重复提交

    <s:form>
        <s:token />
    </s:form>
    
  • 46.updownselect标签:用来创建一个带有上下移动的按钮的列表框

    //list:要迭代的集合
    //listKey:指定集合对象中的哪个属性作为选项的value
    //listValue:指定集合对象中哪个属性作为选项的内容
    //multiple:指定是否多选,默认为false
    //moveUpLabel:设置向上移动按钮上的文本
    //moveDownLabel:设置向下移动按钮上的文本
    //allowMoveUp:设置是否使用向上移动按钮,默认true
    //allowMoveDown:设置是否使用向下移动按钮,默认true
    //allowSelectAll:设置是否使用全部选择按钮,默认为true
    //selectAllLabel:设置全部选择按钮上的文本
    <s:updownselect
            list="#{'england':'England','america':'America','germany':'Germany'}"
            name="country"
            headerKey="-1"
            headerValue="---choose a country---"
            emptyOption="true"
            moveUpLabel="up"
            moveDownLabel="down"
            selectAllLabel="all" />
    
  • 47.actionerror标签:用于输出错误信息到客户端
  • 48.actionmessage标签:用于输出提示信息到客户端
  • 49.component标签:主要用来使用自定义标签、模板、主题
  • 50.div标签:输出div标签
  • 51.fielderror标签:输出Action中的fieldErrors属性保存的字段错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值