Struts标签基本知识

来源:互联网 发布:淘宝格子铺登录 编辑:程序博客网 时间:2024/04/29 03:50

Struts标签基本知识

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

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

ifelseifelseappendgeneratoriteratormergesortsubset

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

aactionbeandatedebugi18nincludeparampropertypushsettexturl

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

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

checkboxcheckboxlistcomboboxdoubleselectheadfileformhiddeninputtransferselectlabeloptiontransferselectoptgrouppasswordradioresetselectsubmittextareatextfieldtokenupdownselect

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

actionerroractionmessagecomponentdivfielderror

2.3 Ajax标签

aautocompleterbinddatetimepickerdivheadsubmittabbedPaneltextareatreetreenode

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属性保存的字段错误
0 0
原创粉丝点击