struts2标签详解&Struts2常用标签总结

要在jsp中使用Struts2的标志,先要指明标志的引入。通过jsp的代码的顶部加入以下的代码:

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

 

If elseif  else

描述:

执行基本的条件流转。

参数:

名称

必需

默认

类型

描述

备注

test

 

boolean

决定标志里的内容是否显示的表达式

else标志没有这个参数

id

 

Object/String

用来标识元素的id。在UI和表单中为HTML的id属性

 

 

例子:

<s:set name="age" value="61"/>

 

<s:if test="${age > 60}">

    老年人

</s:if>

<s:elseif test="${age > 35}">

    中年人

</s:elseif>

<s:elseif test="${age > 15}" id="wawa">

    青年人

</s:elseif>

<s:else>

    少年

</s:else>

 

<s:set name="name" value="<%="'"+ request.getParameter("name")+"'" %>"/>

<%

  System.out.println(request.getParameter("name"));

 %>

<s:if test="#name=='zhaosoft'">

  zhaosoft here

</s:if>

<s:elseif test="#name=='zxl'">

  zxl here

</s:elseif>

<s:else>

  other is here

</s:else>

 

Iterator(迭代)

描述:用于遍历集合(java.util.Collection)或枚举值(java.util.iterator)

参数

名称

必需

默认

类型

描述

status

 

String

如果设置此参数,一个IteratorStatus的实例将会压入每一个遍历的堆栈

value

 

Object/String

要遍历的可枚举的(iteratable)数据源,或者将放入的新列表(List)的对想

id

 

Object/String

用来标识元素的id。在ui和表单中为HTML的id属性

 

I18n(国际化操作)

描述:

加载资源包到值堆栈。它可以允许text标志访问任何资源包的信息。而不只当前的action相关联的资源包。

名称

必需

默认

类型

描述

name

 

Object/String

资源包的类路径(如com.xxxx.resources.AppMsg)

id

 

Object/String

用来标识元素的id。在ui和表单中为HTML的id属性

 

Include

描述:包含一个servlet的输出(servlet或jsp的页面)

名称

必需

默认

类型

描述

value

 

String

要包含的jsp页面或servlet

id

 

Object/String

用来标识元素的id。在ui和表单中为HTML的id属性

 

 

param

描述:属性是可选的,如果提供,会调用Component的方法,addParameter(String,Object),如果不提供,则外层嵌套标签必须实现UnnamedParametric接口。

Value的提供有两种方式,通过value属性或者标签中间的text,不同之处:

<s:param name="name">zhaosoft</s:param>

参数会以String的格式放入statck

<s:param name="name" value="zhaosoft"/>

该值会以java.lang.Object的格式放入statck

名称

必需

默认

类型

描述

name

 

String

参数名

value

 

String

value表达式

id

 

Object/String

用来标识元素的id。在ui和表单中为HTML的id属性

 

set

描述:set标签赋予变量一个特定范围内的值。当希望给一个变量赋一个复杂的表达式,每次访问该变量而不是复杂的表达式时用到。其在两种情况下非常有用:复杂的表达式很耗时(性能提升)或者很难理解(代码的可读性提高)

参数:

名称

必需

默认

类型

描述

name

 

String

变量名字

scope

 

String

变量作用域,可以为application,session,request,page,action

value

 

Object/String

将会赋给变量的值

id

 

Object/String

用来标识元素的id。在ui和表单中为HTML的id属性

 

Text

描述:支持国际化信息的标签。国际化信息必须放在一个和当前action同名的resource bundle中,如果没有找到相应message,tag body将被当作默认的message,如果没有tag body,message的name会被作为默认message.

名称

必需

默认

类型

描述

name

 

String

资源属性的名字

id

 

Object/String

用来标识元素的id。在ui和表单中为HTML的id属性

 

url

描述:该标签用于创建url,可以通过”param”标签提供request参数。

当includeParams的值是all或get,param标签中定义的参数将有优先权,也就是说其会覆盖其他同名参数的值。

 

 

 

 

 

 

 

 

 

 

UI标志

 

单行文本框

Textfield标签输出一个HTML单行文本输入控件,等价于HTML代码<input type=”text”>

名称

必需

默认

类型

描述

maxlength

Integer

文本输入控件可以输入字符的最大长度

readonly

false

Boolean

当该属性为true时,不能输入

size

Integer

指定可视尺寸

id

 

Object/String

用来标识元素的id。在ui和表单中为HTML的id属性

 

例子:

<s:form action="register" method="post">

   <s:textfield name="username" label="用户名"></s:textfield>

</s:form>

 

 

 

文本框区

Textarea标签输出一个HTML多行文本输入控件,等价于HTML代码:<textarea />

名称

必需

默认

类型

描述

cols

Integer

列数

rows

Integer

行数

readonly

false

Boolean

当该属性为true时,不能输入

wrap

false

Boolean

指定多行文本输入控件是否应该换行

id

 

Object/String

用来标识元素的id。在ui和表单中为HTML的id属性

 

例子:

<s:textarea name="personal" cols="10" rows="5" label="个人简历"></s:textarea>

 

 

 

下拉列表

s:select 标签输出一个下拉列表框,相当于HTML代码中的<select/>

名称

必需

默认

类型

描述

list

Cellection Map Enumeration Iterator array

要迭代的集合,使用集合中的元素来设置各个选项,如果list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容

listKey

String

指定集合对象中的哪个属性作为选项的value

listValue

String

指定集合对象中的哪个属性作为选项的内容

headerKey

String

设置当用户选择了header选项时,提交的的value,如果使用该属性,不能为该属性设置空值

headerValue

String

显示在页面中header选项内容

emptyOption

false

Boolean

是否在header选项后面添加一个空选项

multiple

false

Boolean

是否多选

size

Integer

显示的选项个数

 

例子:

%@ page contentType="text/html;charset=GBK" %>

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

 

<h3>使用name和list属性,list属性的值是一个列表</h3>

<s:form>

    <s:select label="最高学历" name="education" list="{'高中','大学','硕士','博士'}"/>

</s:form>

 

<h3>使用name和list属性,list属性的值是一个Map</h3>

<s:form>

    <s:select label="最高学历" name="education" list="#{1:'高中',2:'大学',3:'硕士',4:'博士'}"/>

</s:form>

 

<h3>使用headerKey和headerValue属性设置header选项</h3>

<s:form>

    <s:select label="最高学历" name="education" list="{'高中','大学','硕士','博士'}"

       headerKey="-1" headerValue="请选择您的学历"/>

</s:form>

 

 

<h3>使用emptyOption属性在header选项后添加一个空的选项</h3>

<s:form>

    <s:select label="最高学历" name="education" list="{'高中','大学','硕士','博士'}"

       headerKey="-1" headerValue="请选择您的学历"

       emptyOption="true"/>

</s:form>

 

 

<h3>使用multiple属性设置多选</h3>

<s:form>

    <s:select label="最高学历" name="education" list="{'高中','大学','硕士','博士'}"

       headerKey="-1" headerValue="请选择您的学历"

       emptyOption="true"

       multiple="true"/>

</s:form>

 

<h3>使用size属性设置下拉框可显示的选项个数</h3>

<s:form>

    <s:select label="最高学历" name="education" list="{'高中','大学','硕士','博士'}"

       headerKey="-1" headerValue="请选择您的学历"

       emptyOption="true"

       multiple="true" size="8"/>

</s:form>

 

 

<h3>使用listKey和listValue属性,利用Action实例的属性(property)来设置选项的值和选项的内容</h3>

<s:form>

    <s:select label="最高学历" name="education" list="educations"

       listKey="id" listValue="name"/>

</s:form

 

 

 

doubleselect标签

doubleselect标签输出关联的两个HTML列表框,产生联动效果。

名称

必需

默认

类型

描述

list

Cellection Map Enumeration Iterator array

要迭代的集合,使用集合中的元素来设置各个选项,如果list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容

listKey

String

指定集合对象中的哪个属性作为选项的value,该选项只对第一个列表框起作用

listValue

String

指定集合对象中的哪个属性作为选项的内容,该选项只对第一个列表框起作用

headerKey

String

设置当用户选择了header选项时,提交的的value,如果使用该属性,不能为该属性设置空值

headerValue

String

显示在页面中header选项内容

emptyOption

false

Boolean

 

multiple

false

Boolean

是否多选

size

Integer

显示的选项个数,该选项只对第一个列表框起作用

doubleId

String

指定第二个列表框的ID

doubleList

Cellection Map Enumeration Iterator array

要迭代的集合

doubleListKey

String

指定集合对象中的哪个属性作为选项的value,该选项只对第二个列表框起作用

doubleListValue

String

指定集合对象中的哪个属性作为选项的内容,该选项只对第二个列表框起作用

doubleSize

Integer

选项个数

doubleName

String

指定第二个列表框的name映射

doubleValue

Object

第二个列表框的初始选种项

 

实例:

<s:form name="test">

    <s:doubleselect label="请选择所在省市"

       name="province" list="{'四川省','山东省'}" doubleName="city"

       doubleList="top == '四川省' ? {'成都市', '绵阳市'} : {'济南市', '青岛市'}" />

</s:form>

 

<s:form action="doubleselectTag">

    <s:doubleselect

            label="请选择所在省市"

            name="province"

            list="provinces"

            listKey="id"

            listValue="name"

            doubleList="cities"

            doubleListKey="id"

            doubleListValue="name"

            doubleName="city"

            headerKey="-1"

            headerValue="---------- 请选择 ----------"

            emptyOption="true" />

</s:form>

 

复选框

名称

必需

默认

类型

描述

fieldValue

true

String

指定在复选框选中时,实际提交的值

 

复选框组,对应Action中的集合

名称

必需

默认

类型

描述

list

Cellection Map Enumeration Iterator array

要迭代的集合,使用集合中的元素来设置各个选项,如果list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容

listKey

String

指定集合对象中的哪个属性作为选项的value

listValue

String

指定集合对象中的哪个属性作为选项的内容

例子:checkboxlistTag.jsp

<%@ page contentType="text/html;charset=GBK" %>

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

<s:form>

    <s:checkboxlist name="interest" list="{'足球','篮球','排球','游泳'}" label="兴趣爱好"/>

</s:form>

 

单击复选框

 

文件选择组建

file标签输出一个HTML文件选择框。

名称

必需

默认

类型

描述

accept

input

String

HTML accept属性,指出接受文件的MIME类型

 

按钮

Submit标签输出一个按钮,submit标签和form标签使用可以提供异步表单提交功能。Submit标签可以输出以下三种类型的提交按钮:

Input: 等价于 HTML代码<input type=”submit”>

Image: 等价于 HTML代码 <input type="image">

Button:<button type="submit"></button>

名称

必需

默认

类型

描述

type

input

String

要使用的提交按钮的类型,有效值:input button image

src

String

为image类型的提交按钮设置图片地址。该属性对input和button类型的提交按钮无效

action

String

指定处理提交请求的action

method

String

指定处理提交请求的action的方法

实例

实例1.<s:submit type="image" method="login" src="images/login.jpg"></s:submit>

页面输出:

<input type="image" alt="Submit" src="images/login.jpg" id="user__login" name="method:login" value="Submit"/>

 

实例2.<s:submit type="button" action="selectTag" method="login" label="登陆"></s:submit>

页面输出:

<button type="submit" id="user_selectTag_login" name="action:selectTag!login" value="Submit">登陆</button>

 

Struts2预定义的前缀:

1。method   method:login

使用method前缀,来取代action默认的execute()方法的执行。

<s:form action="user">

   <s:textfield name="user.username" label="用户名"></s:textfield>

   <s:textfield name="user.password" label="密码"></s:textfield>

   <s:submit value="登陆" name="method:login"></s:submit>

   <s:submit value="注册" name="method:register"></s:submit>

</s:form>

 

注意:1。input类型的按钮,不能用label设置按钮上的文本,只能用value

2、action前缀

使用action前缀,取代form标签指定的action,导向到另一个action进行处理。

<s:form action="login">

   <s:textfield name="user.username" label="用户名"></s:textfield>

   <s:textfield name="user.password" label="密码"></s:textfield>

   <s:submit value="登陆"></s:submit>

   <s:submit value="注册" name="action:register"></s:submit>

</s:form>

 

2、redirect前缀

使用redirect前缀请求重定向到其他的url,甚至可以是web英语程序外部的url。

<s:form action="login">

   <s:textfield name="user.username" label="用户名"></s:textfield>

   <s:textfield name="user.password" label="密码"></s:textfield>

   <s:submit value="登陆"></s:submit>

   <s:submit value="搜索" name="redirect:www.google.com"></s:submit>

</s:form>

2、redirect-action前缀

使用redirect-action前缀请求重定向到其他的action.

<s:form action="login">

   <s:textfield name="user.username" label="用户名"></s:textfield>

   <s:textfield name="user.password" label="密码"></s:textfield>

   <s:submit value="登陆"></s:submit>

   <s:submit value="搜索" name="redirect-action:register"></s:submit>

</s:form>

reset标签

reset标签输出一个重置按钮

名称

必需

默认

类型

描述

type

input

String

要使用的重置按钮的内容,input、button

 

<s:reset value="重置"></s:reset>

<s:reset type="button" label="重置"></s:reset>

updownselect标签

updownselect标签创建一个带有上下移动的按钮的列表框,可以通过上下移动按钮来调整列表框的选项的位置。

 

名称

必需

默认

类型

描述

list

Cellection Map Enumeration Iterator array

要迭代的集合,使用集合中的元素来设置各个选项,如果list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容

listKey

String

指定集合对象中的哪个属性作为选项的value

listValue

String

指定集合对象中的哪个属性作为选项的内容

headerKey

String

设置当用户选择了header选项时,提交的的value,如果使用该属性,不能为该属性设置空值

headerValue

String

显示在页面中header选项内容

emptyOption

false

Boolean

是否在header选项后面添加一个空选项

multiple

false

Boolean

是否多选

size

Integer

显示的选项个数

moveUplabel

 

String

设置向上移动按钮上的文本

moveDownLabel

 

String

设置向下移动按钮上的文本

selectAllLabel

 

String

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

allowMoveUp

Boolean

设置是否使用向上移动按钮

allowMoveDown

Boolean

设置是否使用向下移动按钮

allowSelectAll

Boolean

设置是否使用全部选择按钮

 

实例:

<s:form>

<!-- 使用简单集合来生成可上下移动选项的下拉选择框 -->

<s:updownselect name="a" label="请选择您喜欢的图书" labelposition="top"

    moveUpLabel="向上移动"

    list="{'Spring2.0宝典' , '轻量级J2EE企业应用实战' , 'JavaScript: The Definitive Guide'}"/>

   

   

<!-- 使用简单Map对象来生成可上下移动选项的下拉选择框

     且使用emptyOption="true"增加一个空选项-->

<s:updownselect name="b" label="请选择您想选择出版日期" labelposition="top"

    moveDownLabel="向下移动"

    list="#{'Spring2.0宝典':'2006年10月' , '轻量级J2EE企业应用实战':'2007月4月' , '基于J2EE的Ajax宝典':'2007年6月'}"

    listKey="key"

    emptyOption="true"

    listValue="value"/>

   

<s:bean name="com.zhaosoft.ui.formtag.BookService" id="bs"/>

<!-- 使用集合里放多个JavaBean实例来可上下移动选项的生成下拉选择框 -->

<s:updownselect name="c" label="请选择您喜欢的图书的作者" labelposition="top"

    selectAllLabel="全部选择" multiple="true"

    list="#bs.books"

    listKey="author"

    listValue="name"/>

</s:form>

 

package com.zhaosoft.ui.formtag;

public class BookService

{

    public Book[] getBooks()

    {

       return new Book[]

       {

           new Book("Spring2.0宝典","zhaosoft"),

           new Book("轻量级J2EE企业应用实战","zhaosoft"),

           new Book("基于J2EE的Ajax宝典","zhaosoft")

       };

    }

}

 

 

 

optiontransferselect标签

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

名称

必需

默认

类型

描述

list

Cellection Map Enumeration Iterator array

要迭代的集合,使用集合中的元素来设置各个选项,如果list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容,该选项只对第一个列表框起作用

listKey

String

指定集合对象中的哪个属性作为选项的value,该选项只对第一个列表框起作用

listValue

String

指定集合对象中的哪个属性作为选项的内容,该选项只对第一个列表框起作用

headerKey

String

设置当用户选择了header选项时,提交的的value,如果使用该属性,不能为该属性设置空值

headerValue

String

显示在页面中header选项内容

multiple

false

Boolean

是否多选

size

Integer

显示的选项个数,该选项只对第一个列表框起作用

doubleId

String

指定第二个列表框的ID

doubleList

Cellection Map Enumeration Iterator array

要迭代的集合,使用集合中的元素来设置各个选项,如果doubleList的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容,该选项只对第二个列表框起作用

doubleListKey

String

指定集合对象中的哪个属性作为选项的value,该选项只对第二个列表框起作用

doubleListValue

String

指定集合对象中的哪个属性作为选项的内容,该选项只对第二个列表框起作用

doubleHeaderKey

String

设置当用户选择了header选项时,提交的的value,如果使用该属性,不能为该属性设置空值

doubleHeaderVale

String

显示在页面中header选项内容

doubleEmptyOption

String

是否在第二列表框的header后面添加一个空选项

doubleMultiple

true

Boolean

是否多选

doubleSize

Integer

选项个数

doubleName

String

指定第二个列表框的name映射

doubleValue

Object

第二个列表框的初始选种项

leftTitle

String

左边列表框的标题

rightTitle

<-

String

右边列表框的标题

addToLeftLable

 

String

 

addToRightLable

 

 

 

 

addAllToLeftLable

 

 

 

 

addAllToRightLable

 

 

 

 

leftUpLabel

 

 

 

 

leftDownLabel

 

 

 

 

rightUpLabel

 

 

 

 

rightDownLabel

 

 

 

 

allowAddToLeft

 

 

 

 

allowAddToright

 

 

 

 

allowAddAllToLeft

 

 

 

 

allowAddAllToRight

 

 

 

 

allowSelectAll

Boolean

设置是否使用全部选择按钮

allowUpdownOnLeft

 

 

 

 

allowUpDownOnRight

 

 

 

 

 

例子:

<s:head/>

<s:form>

    <s:optiontransferselect

    label="最喜爱的图书"

        name="javaBook"

        list="{'《Java Web开发详解》', '《Struts 2深入详解》', '《Java快速入门》'}"

        doubleName="cBook"

        doubleList="{'《VC++深入详解》', '《C++ Primer》', '《C++程序设计语言》'}"/>

</s:form>

---------------------------

<s:form>

    <s:optiontransferselect

    label="最喜爱的图书"

        name="book1"

        leftTitle="Java图书"

        rightTitle="C/C++图书"

        list="{'《Java Web开发详解》', '《Struts 2深入详解》', '《Java快速入门》'}"

        headerKey="-1"

        headerValue="--- 请选择 ---"

        emptyOption="true"

        doubleName="book2"

        doubleList="{'《VC++深入详解》', '《C++ Primer》', '《C++程序设计语言》'}"

        doubleHeaderKey="-1"

        doubleHeaderValue="--- 请选择 ---"

        doubleEmptyOption="true"

        addToLeftLabel="向左移动"

        addToRightLabel="向右移动"

        addAllToLeftLabel="全部左移"

        addAllToRightLabel="全部右移"

        selectAllLabel="全部选择"

        leftUpLabel="向上移动"

        leftDownLabel="向下移动"

        rightUpLabel="向上移动"

        rightDownLabel="向下移动"/>

</s:form>

原文:http://blog.csdn.net/zxl315/article/details/2886456

相关文章:

http://www.open-open.com/lib/view/open1331393920452.html

http://www.cnblogs.com/focusj/archive/2011/01/04/2057651.html



  1. Struts2常用标签总结  
  2. 一 介绍  
  3. 1.Struts2的作用      
  4. Struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,struts2的主题、模板都提供了很好的扩展性。实现了更好的代码复用。Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求。  
  5.     Struts2的标签库有一个巨大的改进之处,struts2标签库的标签不依赖于任何表现层技术,也就是说strtus2提供了大部分标签,可以在各种表现技术中使用。包括最常用的jsp页面,也可以说Velocity和FreeMarker等模板技术中的使用  
  6. 2.Struts2分类  
  7. 1)UI标签:(User  Interface, 用户界面)标签,主要用于生成HTML元素标签,UI标签又可分为表单标签非表单标签  
  8. 2)非UI标签,主要用于数据访问,逻辑控制等的标签。非UI标签可分为流程控制标签(包括用于实现分支、循环等流程控制的标签)和数据访问标签(主要包括用户输出ValueStack中的值,完成国际化等功能的)  
  9. 3)ajax标签  
  10. 3.Struts2标签使用前的准备:  
  11. 1)在要使用标签的jsp页面引入标签库:     
  12. <%@ taglib uri="/struts-tags" prefix="s"%>  
  13. 2)在web.xml中声明要使用的标签    这样是struts2 2.3.1.2版本的引入方式  
  14. <filter>  
  15.         <filter-name>struts2</filter-name>  
  16.                          <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
  17.     </filter>  
  18. 4.标签的使用  
  19. 1)property标签  
  20.     用于输出指定的值:  
  21.     <s:property value="%{@cn.csdn.hr.domain.User@Name}"/><br/>  
  22.         <s:property value="@cn.csdn.hr.domain.User@Name"/><Br/><!-- 以上两种方法都可以 -->  
  23.         <s:property value="%{@cn.csdn.hr.domain.User@study()}"/>  
  24.     以上可以访问某一个包的类的属性的集中方式,study()是访问方法的方法,并输出。  
  25.   
  26.   
  27.     以下用java代码代替的,访问某一个范围内的属性  
  28.     <%  
  29.     //采用pageContext对象往page范围内存入值来 验证#attr搜索顺序是从page开始的 ,搜索的顺序为:page,reques,session,application。  
  30. set存值的时候存到的是request中,在jsp页面中访问的时候不用加任何的标识符,即可直接访问,如果不同的作用域不一样了,  
  31. pageContext.setAttribute("name""laoowang", PageContext.PAGE_SCOPE);  
  32. %>  
  33. <s:property value="#attr.name" />   
  34.   
  35.   
  36. 假设在action中设置了不同作用域的类  
  37. 不同的作用域的标签的访问:  
  38.         
  39.   <h3>获取的是requet中的对象值</h3>  
  40.   第一种方式:<s:property value="#request.user1.realName"/>  
  41.   <br/>  
  42.   第二种方式:<s:property value="#request.user1['realName']"/>  
  43.    <br/>  
  44.   第三种方式:<s:property value="#user1.realName"/>  
  45.    <br/>  
  46.     第四种方式:<s:property value="#user1['realName']"/>  
  47.       <br/>  
  48.        第五种方式:${requestScope.user1.realName }  || ${requestScope.user1['realName'] }  
  49.          
  50.    第六种:<s:property value="#attr.user1.realName"/>  
  51.   attr对象按page==>  request sessionapplictio找的  
  52.     
  53.     
  54.   <h3>获取session中的值</h3>  
  55.     第一种方式:<s:property value="#session.user1.realName"/>  
  56.   <br/>  
  57.   第二种方式:<s:property value="#session.user1['realName']"/>  
  58.     
  59.     
  60.     第五种方式:${sessionScope.user1.realName }  || ${sessionScope.user1['realName'] }  
  61.     
  62.   <h3>获取application中的对象的值</h3>  
  63.     第一种方式:<s:property value="#application.user1.realName"/>  
  64.   <br/>  
  65.   第二种方式:<s:property value="#application.user1['realName']"/>  
  66.     
  67.     
  68.     第五种方式:${applicationScope.user1.realName }  || ${applicationScope.user1['realName'] }  
  69.       
  70. 2)iterator标签的使用  
  71.     第一种:list集合  
  72.         <!-- 设置set集合  value-->  
  73.         <!-- status 可选属性,该属性指定迭代时的IteratorStatus实例 -->  
  74.         <!-- value="#attr.list"   list存放到了request中  可以value="#request.list"  
  75.                     statu.odd返回当前被迭代元素的索引是否是奇数  
  76.                 -->  
  77.     <s:set name="list" value="{'a','b','c','d'}"></s:set>  
  78.         <s:iterator var="ent" value="#request.list" status="statu">  
  79.             <s:if test="%{#statu.odd}">  
  80.                 <font color="red"><s:property value="#ent" />  
  81.                 </font>  
  82.             </s:if>  
  83.             <s:else>  
  84.         <s:property value="#ent" />  
  85.         </s:else>  
  86. </s:iterator>  
  87.       
  88. 第二种:map集合中的使用  
  89.     <h3>Map集合</h3>  
  90.                 <!-- map集合的特点:   
  91.                   语法格式:# {key:value,key1:value1,key2:value2,.....}     
  92.  以上的语法中就直接生成了一个Map类型的集合,该Map对象中的每个key-value对象之间用英文的冒号隔开     
  93.    ,多个元素之间用逗号分隔。     
  94.                 -->  
  95.             </div>  
  96.   
  97.             <s:set var="map" value="#{'1':'laowang','2':'老王','3':'猩猩'}"></s:set>  
  98.             遍历Map:  
  99.             <br />  
  100.             <s:iterator value="#map">  
  101.                 <s:property value="key" />:::<s:property value="value" />  
  102.                 <Br />  
  103.             </s:iterator>\  
  104.   
  105. 第三种:集合的变量  
  106. <h3>遍历集合:::</h3>  
  107.             <div>  
  108.                 <!-- 遍历出价格大于3000的 -->  
  109.                 <s:iterator var="user" value="#session['users']">  
  110.                     <s:if test="%{#user['price']>3000}">  
  111.                         <s:property value="#user['price']"/>  
  112.                     </s:if>  
  113.                 </s:iterator>  
  114.                   
  115.                   
  116.                 <hr color="blue"/><!-- $是取出价格 大于3000的最后一个值 -->  
  117.                 <s:iterator var="u" value="#session.users.{$(#this['price']>3000)}">  
  118.                     <s:property value="price"/>  
  119.                 </s:iterator>  
  120.             </div>  
  121. 注:users是User的对象,price是User中的一个属性  
  122.   
  123. 简述一下iterator的介绍:  
  124. iterator标签用于对集合进行迭代,这里的集合包含List、Set和数组。  
  125. <s:set name="list" value="{'zhangming','xiaoi','liming'}" />  
  126. <s:iterator value="#list" status="st">  
  127.     <font color=<s:if test="#st.odd">red</s:if><s:else>blue</s:else>>  
  128.     <s:property /></font><br>  
  129. </s:iterator>   
  130. value:可选属性,指定被迭代的集合,如果没有设置该属性,则使用ValueStack栈顶的集合。  
  131. id:可选属性,指定集合里元素的id。  
  132. status:可选属性,该属性指定迭代时的IteratorStatus实例。该实例包含如下几个方法:  
  133.     int getCount(),返回当前迭代了几个元素。  
  134.     int getIndex(),返回当前迭代元素的索引。  
  135.     boolean isEven(),返回当前被迭代元素的索引是否是偶数  
  136.     boolean isOdd(),返回当前被迭代元素的索引是否是奇数  
  137.     boolean isFirst(),返回当前被迭代元素是否是第一个元素。  
  138.     boolean isLast(),返回当前被迭代元素是否是最后一个元素。  
  139.   
  140.   
  141. 3if else语句的使用  
  142.     <s:set name="age" value="21" />  
  143. <s:if test="#age==23">  
  144.     23  
  145. </s:if>  
  146. <s:elseif test="#age==21">  
  147.     21  
  148. </s:elseif>  
  149. <s:else>  
  150.     都不等  
  151. </s:else>   
  152.   
  153. 4)URL标签  
  154.     <!-- 声明一个URL地址 -->  
  155.         <s:url action="test" namespace="/tag" var="add">  
  156.             <s:param name="username">laowangang</s:param>  
  157.             <s:param name="id">12</s:param>  
  158.         </s:url>  
  159.         <s:a href="%{add}">测试URL</s:a>  
  160.         <s:a action="test" namespace="/tag"></s:a>  
  161.     以上的两个<s:a>标签的作用是一样的。  
  162. 5)data标签  
  163. <%  
  164.             pageContext.setAttribute("birth",new Date(200,03,10),PageContext.REQUEST_SCOPE);  
  165.          %>  
  166.         <s:date name="#request.birth" format="yyyy年MM月dd日"/>  
  167.         <s:date name="#request.birth" nice="true"/>  
  168.     这个标签是按照format的格式去输出的。  
  169.   
  170. 6)表单  
  171.   
  172.               
  173.         <h1>from表单</h1>  
  174.         <s:form action="test" namespace="/tag">  
  175.             <s:textfield label="用户名" name="uname" tooltip="你的名字" javascriptTooltip="false"></s:textfield>  
  176.             <s:textarea  name="rmake" cols="40" rows="20" tooltipDelay="300" tooltip="hi" label="备注" javascriptTooltip="true"></s:textarea>  
  177.             <s:password label="密码" name="upass"></s:password>  
  178.             <s:file name="file" label="上传文件"></s:file>  
  179.             <s:hidden name="id" value="1"></s:hidden>  
  180.               
  181.             <!--   
  182.             <select name="edu">  
  183.                 <option value="listKey">listValue</option>  
  184.              -->  
  185.             <s:select list="#{'1':'博士','2':'硕士'}" name="edu" label="学历" listKey="key" listValue="value"></s:select>  
  186.               
  187.             <s:select list="{'java','.net'}" value="java"></s:select><!-- value是选中的 -->  
  188.               
  189.             <!-- 必须有name -->  
  190.             <s:checkbox label="爱好 " fieldValue="true" name="checkboxFiled1"></s:checkbox>  
  191.               
  192.             <!-- 多个checkbox -->  
  193.             <s:checkboxlist list="{'java','css','html','struts2'}" label="喜欢的编程语言" name="box" value="{'css','struts2'}"></s:checkboxlist>  
  194.           
  195.           
  196.             <!-- map集合前要加# -->  
  197.             <s:checkboxlist list="#{1:'java',2:'css',3:'html',4:'struts2',5:'spring'}" label="喜欢的编程语言" name="boxs" value="{1,2}"></s:checkboxlist>  
  198.               
  199.               
  200.             <!-- listKey   
  201.                 listValue  
  202.                   
  203.                 <input type="text" name="boxs" value="listKey">显示值listValue  
  204.              -->  
  205.                       
  206.             <!-- radio -->          
  207.             <%  
  208.                 //从服务器传过来值   
  209.                 pageContext.setAttribute("sex","男",PageContext.REQUEST_SCOPE);  
  210.                 pageContext.setAttribute("sex1","男",PageContext.REQUEST_SCOPE);  
  211.              %>  
  212.             <s:radio list="{'男','女'}" name="sex" value="#request.sex"></s:radio>      
  213.               
  214.               
  215.             <s:radio list="#{1:'男',2:'女'}" name="sex1" listKey="key" listValue="value" value="#request.sex1"></s:radio>           
  216.           
  217.             <!-- 防止表单提交的方式 -->  
  218.             <s:token></s:token>  
  219.                               
  220.             <s:submit value="提交"></s:submit>  
  221.         </s:form>  


转载 http://www.open-open.com/lib/view/open1331393920452.html

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值