转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html

<s:select name="singer"  list="{}" label="歌星" headerKey="0" headerValue="--歌手名单--" emptyOption="true">

                     <s:optgroup list="#{1:'任贤齐',2:'刘德华',3:'周杰伦'}" label="男歌手"/>

                     <s:optgroup list="#{1:'萧亚轩',2:'蔡依林',3:'she'}" label="女歌手"/>

</s:select>

             

<s:combobox label="来源调查" list="{'朋友介绍','电视广告','网络广告'}" name="from" />

             

              <s:updownselect

                            list="{'java','C#','VC','php','vb','vc','python'}"

                            moveDownLabel="下移一位"

                            moveUpLabel="上移一位"

                            selectAllLabel="全部选中"

                            label="您常用编程语言排名"

                            />

             

              <s:optiontransferselect

                            leftTitle="选择喜欢做的事:"

                            list="{'听歌','看电影','编程','玩游戏','chat'}"

                            name="love"

                            headerKey="0"

                            headerValue="喜欢做的事"

                            emptyOption="true"

                           

                            rightTitle="选择讨厌做的事:"

                            doubleList="{'跳舞','唱歌','打篮球','旅游','shopping'}"

                            doubleName="hate"

                            doubleHeaderKey="0"

                            doubleHeaderValue="不喜欢的事"

                            doubleEmptyOption="true"

                           

                            label="个人兴趣说明"

                           

                            leftUpLabel="上移"

                            leftDownLabel="下移"

                            rightUpLabel="上移"

                            rightDownLabel="下移"

                            addToLeftLabel="<—添加"

                            addToRightLabel="添加—>"

                            addAllToLeftLabel="<—添加(All)"

                            addAllToRightLabel="添加(All)—>"

                            selectAllLabel="全选"

                            />

<s:checkbox label="接受服务条款" value="false" name="user.accept"/>

有了前面的标签学习,这些标签很容易理解,只需结合显示效果和查看源码来加深它们的理解。但是特别要注意的是<s:checkbox>标签与</s:checkboxlist>的区别。

补充:使用struts2生成的表单标签会在标签内嵌套一些特殊的格式,在使用了struts2生成的标签所在网页内查看源代码可以发现多了一些如<tr><td>这样的格式化代码。如果不想struts2增加这些多余的格式化代码,可以在struts.xml中配置如下内容:

<!-- struts2生成的表单标签使用默认的主题,即不附加格式化标签 -->

<constant name="struts.ui.theme" value="simple"/>

6.其它常用标签的使用(代码参名为“补充”的文件夹下的tag.jsp)

(1)<s:set>标签

此标签主要用于设置一些属性值。

Scope:指定变量被设置的范围,该属性可以接受application、session、request、page或Action。如果没有设置该属性,则默认放置在OGNL Context中,我们可以通过#号来引用。

Value:赋给变量的值,如果没有设置该属性,则将ValueStack栈顶的值赋给变量。

Id/name/var:属性的引用名称,id/name均过时,建议用var来取代他们。

(2)<s:property>

Default:可选属性,如果需要输出的属性值为null,则显示属性指定的值

Escape:可选属性,指定是否格式化html代码。

Value:可选属性,指定需要输出的属性值,如果没有指定该属性,则默认输出ValueStack栈顶的值

Id:可选属性,指定该元素的标识

(3)<s:Iterator>

Value:可选属性,指定迭代的集合,如果没有指定该属性,则使用ValueStack栈顶的集合

Id:可选属性,指定集合里元素的id(已被标记为过时)

Status:可选属性,该属性指定迭代时当前迭代对象的一个实例,并把此实例放在ognl的上下文中,我们可以通过#号来引用这个实例。该实例包含如下几下方法:

Int  getCount:返回当前迭代了几个元素。

Int  getIndex:返回当前被迭代的元素的索引

Boolean  isEven:返回当前被迭代的元素的索引是否是偶数

Boolean  isOdd:返回当前被迭代的元素的索引是否是奇数

Boolean  isFirst:返回当前被迭代的元素是否是第一个元素

Boolean  isLast:返回当前被迭代的元素是否是最后一个元素

说明:因为iterator会把每次迭代的实例放在值栈的栈顶,而<s:property>默认访问的是值栈的栈顶元素。所以如下代码可行:

<s:set var="list" value="{'第一个','第二个','第三个'}"/>

<!-- iterator迭代的特点:会把迭代的对象放到值栈的栈顶 -->

<s:iterator value="#list">

       <s:property/>

</s:iterator>

如果想用status来实现一些功能,可参下面的代码:

<br/>-------------------奇数红色,偶数蓝色---------------<br/>

<s:iterator value="#list" status="i">

       <font color='<s:if test="#i.even">blue</s:if><s:else>red</s:else>' >

       <s:property/>

       </font><br/>

</s:iterator>

(4)url标签

       <br/><br/>-----------使用url---------------<br/>

       <s:set var="age" value="25" scope="request"/>

       <s:url action="asm" namespace="/" >

              <s:param name="age" value="#request.age"></s:param>

       </s:url>

说明:它会根据action及namespace并附加上下文路径构建一个链接。

<br/><!-- value的值中一定要用单引号引起,这样才表示它的值是一个字串 -->

       <s:set var="bdUrl" value="'http://www.baidu.com'" />

       <s:url value="#bdUrl" /> <br/>

       <s:url value="%{#bdUrl}" /> 

说明:由于url标签的value属性默认不支持ognl,所以我们要使用%{}来表示{}中的#bdUrl是一个ognl表达式。

(5)date标签

     <s:date name="date" format="yyyy年mm月dd日 E"> (显示为如:2012年12月12日 星期一)

(6)if else 标签

     <s:if test="判定语句">符合判定的执行语句</s:if>           依据上一个if标签<s:else>......</s:else>

posted on 2016-06-15 16:24  Sharpest  阅读(123)  评论(0编辑  收藏  举报