读书人

Struts2.1 标签详细说明(一)

发布时间: 2012-10-06 17:34:01 作者: rapoo

Struts2.1 标签详细说明(1)

?? Struts 2.1 Tags
最近学习? Struts 2.1 Tags 做了些笔记,贴出来大家一起学习下,希望大家多多交流。
?
别的都不说了,我就贴代码,代码里注释比较详细,呵呵。
?
文件目录,如下:
???? Struts2.1 标签详细说明(一)
?
?index.jsp 代码
Java代码?
1.?<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>??
2.?<%@page import="com.rao.bean.Sex"%>???
3.?<%@ taglib prefix="s" uri="/struts-tags"%>???
4.?<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>???
5.?<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">???
6.?<html>??
7.?<head>??
8.?? <title>My page</title>??
9.?? <s:head theme="xhtml"/>???
10.?? <sx:head parseContent="true"/>???
11.?</head>??
12.??
13.?? <body>??
?
1.???? Struts 2.1 Tags???
?
?
1.???? 一、控制标签<br/><hr size="3" color="red">???
?
1.????? #、if /elseif/ else @用于逻辑判断<br/>???
2.????? <s:set name="bir" value="-12"></s:set>???
3.????? <s:if test="#bir>=180 || #bir<0">???
4.???????? 你是何方妖怪???
5.????? </s:if>???
6.????? <s:elseif test="#bir<=18 && #bir>=0">???
7.???????? 未成年人不能进入!??
8.????? </s:elseif>??
9.????? <s:elseif test="#bir<=60 && #bir>=18">???
10.???????? 您已经成年!??
11.????? </s:elseif>??
12.????? <s:else>???
13.???????? 您已经老了!??
14.????? </s:else>???
15.????? <br/>--------------------------<br/>?
?
1.????? #、append @用于将多个集合合并<br/>??
2.????? <s:set name="appList1" value="{'111','222','333','444'}"></s:set>???
3.????? <s:set name="appList2" value="{'aaa','bbb','ccc','ddd'}"></s:set>???
4.????? <s:append var="newAppList">???
5.???????? <s:param value="appList1"></s:param>???
6.???????? <s:param value="appList2"></s:param>???
7.????? </s:append>??
8.????? <s:iterator value="#newAppList">???
9.???????? <s:property/> |???
10.????? </s:iterator>??
11.?????? <br/>--------------------------<br/>??
?
1.????? #、generator? <br/>??
2.????? generator标签,该标签可以将指定字符串按指定分隔符分割成多个字串。生成的多个字串可以用iterator标签进行迭代输出。可以这么理解:generator标签将一个字符串转换成一个List集合。在该标签体内,整个临时生成的集合将为Valuestack的顶端,但一旦该标签结束,生成的集合将被移除Valuestack。generator标签有如下几个属性:??
3.???? <br/>??
4.???? 1、count属性:指定生成集合中元素的总数。可选属性。<br/>???
5.???????
6.???? 2、val属性:必填属性,指定被解析的字符串。<br/>???
7.???????
8.???? 3、separator属性:这是一个必填属性,指定用于分割字符串的分隔符。<br/>???
9.???????
10.???? 4、converter属性:可选属性,指定一个转换器,转换器负责将生成的集合中的每个字符串转换成对象,通过这个转换器可以将一个含有分隔符的字符串解析成对象的集合。转换器必须一个继承org.apache.struts2.util.IteratorGenerator.Converter的对象。???
11.???? <br/>??
12.???? 5、var属性,可选属性。如果指定了该属性,则将生成的集合保存在Stack Context中。如果不指定该属性,则将生成的集合放入ValueStack的顶端,该标签一结束,生成的集合就被移除。该属性也可替换成id。???
13.???? <br/>??
14.????? <s:generator? val="'aaa,bbb,ccc,ddd'"? separator="," count="2">???
15.???????? <s:iterator>??
16.???????????? <s:property/>??
17.???????? </s:iterator>??
18.????? </s:generator><br/>??
19.??
20.?????? <br/>--------------------------<br/>??
?
1.????? #、iterator 用于迭代数据<br/>??
2.????? <s:set name="iterList" value="{'aaa','bbb','ccc','ddd'}"></s:set>???
3.????? <table border="1">???
4.????? <tr>?????
5.???????????????? <td>?? 索引?? </td>?????
6.???????????????? <td>?? 值?? </td>?????
7.???????????????? <td>?? 奇??? </td>?????
8.???????????????? <td>?? 偶???? </td>?????
9.???????????????? <td>?? 首???? </td>?????
10.???????????????? <td>?? 尾???? </td>?????
11.???????????????? <td>? 当前迭代数量??? </td>?????
12.???????????? </tr>?????
13.????????
14.???????? <s:iterator value="{'aaa','bbb','ccc','ddd','eee','fff'}" begin="1" status="s">???
15.???????????? <tr bgcolor="<s:if test="#s.odd">pink</s:if>">???
16.???????????????? <td><s:property value="#s.index"/></td>???
17.???????????????? <td><s:property/></td>??
18.???????????????? <td><s:property value="#s.even"/></td>???
19.???????????????? <td><s:property value="#s.odd"/></td>???
20.???????????????? <td><s:property value="#s.first"/></td>???
21.???????????????? <td><s:property value="#s.last"/></td>???
22.???????????????? <td><s:property value="#s.count"/></td>???
23.???????????? </tr>??
24.???????? </s:iterator>????????
25.????? </table>??
26.????????
27.????????
28.?????? <br/>--------------------------<br/>??
?
1.????? #、merge @和类似:用于将多个集合合并<br/>??
2.????? <s:set name="merList1" value="{'111','222','333','444'}"></s:set>???
3.????? <s:set name="merList2" value="{'aaa','bbb','ccc','ddd'}"></s:set>???
4.????? <s:append var="newMerList">???
5.???????? <s:param value="merList1"></s:param>???
6.???????? <s:param value="merList2"></s:param>???
7.????? </s:append>??
8.????? <s:iterator value="#newMerList">???
9.???????? <s:property/> |???
10.????? </s:iterator>??
11.?????? <br/>--------------------------<br/>??
?
1.????? #、sort @用于排序<br/>??
2.????? <s:bean var="myComparator" name="com.rao.comparator.MyComparator"></s:bean>???
3.????? <s:sort comparator="#myComparator" source="{1,45,56,0,345,3}">???
4.???????? <s:iterator>??
5.???????????? <s:property/>,??
6.???????? </s:iterator>??
7.????? </s:sort>??
8.?????? <br/>--------------------------<br/>??
?
1.????? #、subset @用户截取集合中的子集;?? 注:decider:可选属性,指定由开发者自己决定是否选中该元素.????
2.????? <br/>??
3.????? <s:set name="subList" value="{'@@@','***','&&&','###'}"></s:set>???
4.????? <s:subset source="#subList" start="1" count="2">???
5.???????? <s:iterator>??
6.???????????? <s:property/>,??
7.???????? </s:iterator>??
8.????? </s:subset>??
9.?????? <br/>--------------------------<br/>??
?
1.??????? 二、数据标签<br/>??
2.?????? <hr size="3" color="red">???
?
1.???? #、action @用于导入一个Action<br/>??
2.???? 使用action标签,可以允许在jsp页面中直接调用Action,在调用Action时候,可以指定需要被调用的Action的name和namespace.如果指定了executeResult参数的属性值为true,该标签会把Action的处理结果(视图资源)包含到本页面中. 使用action标签指定属性有:???
3.???? <br/>??
4.???? id: 可选属性,作为该Action的引用ID?? <br/>???
5.??????
6.???? name:必选属性,指定调用Action??? <br/>??
7.??????????
8.???? namespace:可选属性,指定该标签调用Action所属namespace??? <br/>??
9.??????????
10.???? executeResult:可选属性,指定是否将Action的处理结果包含到本页面中.默认值为false,不包含.??? <br/>???
11.??????????
12.???? ignoreContextParam:可选参数,指定该页面的请求参数是否需要传入调用的Action中,默认值是false,即传入参数.<br/>???
13.???????
14.???? s:param是以request方式的值的,而不是以参数传值,所以request.getParameter("")会获取不到值,通过request.getAttribute("")方式可以获取<br/>???
15.??
16.???? <s:action name="tagsAction1" ignoreContextParams="true" executeResult="true" namespace="/com/rao">???
17.???????? <s:param name="userName" value="'三毛'"></s:param>???
18.???? </s:action>??
19.???????
20.?????? <br/>--------------------------<br/>??
1.???? #、bean @用于导入一个javaBean,相当于:jsp:useBean 标签<br/>??
2.???? <s:bean name="com.rao.bean.UserBean" var="user">???
3.???????? <s:param name="userId" value="1001"></s:param>???
4.???????? <s:param name="userName" value="'张三'"></s:param>???
5.???? </s:bean>??
6.???? userId:<s:property value="#user.userId"/><br>???
7.???? userName:<s:property value="#user.userName"/>???
8.?????? <br/>--------------------------<br/>??
1.???? #、date @用于格式化日期<br/>??
2.???? <s:set name="dt" value="new java.util.Date()"></s:set>???
3.???? 当期系统时间是:<s:date name="dt" format="yyyy-MM-dd HH:ss:mm"/>???
4.?????? <br/>--------------------------<br/>
1.???? #、debug @用于调试程序,让开发人员一目了然的知道当前请求、值栈、栈中的各项参数<br/>??
2.???? <s:debug/>??
3.?????? <br/>--------------------------<br/>??
1.???? #、i18n @用于访问国际化资源文件的内容<br/>??
2.???????????????? 1.默认访问全局范围内的资源文件;???
3.???????????????? <br>??
4.???????????????? <s:text name="welcome">???
5.???????????????????? <s:param>三毛</s:param>??
6.???????????????????? <s:param>学习</s:param>??
7.???????????????? </s:text>??
8.???????????
9.???????????????? <hr>??
10.???????????????? 2.访问包范围内的资源文件;???
11.???????????????? <br>??
12.???????????????? <s:i18n name="com/rao/action/package">???
13.???????????????????? <s:text name="welcome">???
14.???????????????????????? <s:param>三毛</s:param>??
15.???????????????????????? <s:param>学习</s:param>??
16.???????????????????? </s:text>??
17.???????????????? </s:i18n>??
18.???????????????? <hr>??
19.???????????????? 3.访问Action范围内的资源文件;???
20.???????????????? <br>??
21.???????????????? <s:i18n name="com/rao/action/GlobalNativeAction">???
22.???????????????????? <s:text name="welcome">???
23.???????????????????????? <s:param>三毛</s:param>??
24.???????????????????????? <s:param>学习</s:param>??
25.???????????????????? </s:text>??
26.???????????????? </s:i18n>??
27.?????? <br/>--------------------------<br/>
1.???? #、include @用于导入一个jsp文件,等同于:jsp:include标签<br/>??
2.???? <s:include value="success.jsp"></s:include>???
3.?????? <br/>--------------------------<br/>??
1.???? #、param @用于给指定参数设置值<br/>??
2.???? <s:bean name="com.rao.bean.UserBean" var="user">???
3.???????? <s:param name="userId" value="1001"></s:param>???
4.???????? <s:param name="userName" value="'张三'"></s:param>???
5.???? </s:bean>??
6.???? userId:<s:property value="#user.userId"/><br>???
7.???? userName:<s:property value="#user.userName"/>???
8.?????? <br/>--------------------------<br/>
1.???? #、property @输出结果,很像EL表达式,但是可以依托于OGNL表带是很强大<br/>??
2.???? 同上??
3.?????? <br/>--------------------------<br/>??
1.???? #、push @该标签可以把程序员在ActionContext中引用的对像压入valuestack中,为以后访问对象提供了方便<br/>??
2.???? <s:push value="#request.user"><s:property value="userName"/></s:push>???
3.?????? <br/>--------------------------<br/>?
1.???? #、set @用户声明对象或属性<br/>??
2.???? <s:set name="uName" value="#request.user.userName"></s:set>???
3.???? <s:property value="#uName"/>,你好啊!???
4.?????? <br/>--------------------------<br/>??
1.???? #、text @用户获取国际化资源文件的内容<br/>??
2.???? 请参考 il8n标签??
3.?????? <br/>--------------------------<br/>?
1.???? #、url @用于组拼一个请求路径<br/>??
2.?
3.???? <s:url var="url1" action="MyAction" method="add">???
4.???????? <s:param name="id" value="%{23}"></s:param>???
5.???????? <s:param name="name" value="%{'tom'}"></s:param>???
6.???? </s:url>??
7.???? <s:property value="#url1"/>???
8.???? <br/>??
9.???? 注意:<br/>?????
10.???????? <s:set name="myurl" value="'http://www.baidu.com'"></s:set>??????
11.???????? value以字符处理:?? <s:url value="#myurl"></s:url><br>??????
12.???????? value明确指定以ognl表达式处理:??? <s:url value="%{#myurl}"></s:url>??????
13.???????
14.?????? <br/>--------------------------<br/>??
1.??????? 三、UI标签<br/>??
2.???? <hr size="3" color="red">???
3.???? <s:form>??
1.???? #、checkboxlist @复选框列表<br>??
2.?
3.????????? 1> .list 生成;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>??????
4.???????? name:checkboxlist的名字<br>?????
5.???????? list:checkboxlist要显示的列表<br>?????
6.???????? value:checkboxlist默认被选中的选项,checked=checked<br>?????
7.???????? <s:checkboxlist theme="simple" name="checkbox1" list="{'上网','看书','爬山','游泳','唱歌'}" value="{'上网','看书'}" ></s:checkboxlist>??????
8.???????? <br>?????
9.??????????
10.???????? 2> .Map 生成;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>??????
11.???????? name:checkboxlist的名字<br>?????
12.???????? list:checkboxlist要显示的列表<br>?????
13.???????? listKey:checkbox 的value的值<br>?????
14.???????? listValue:checkbox 的lablel(显示的值)<br>?????
15.???????? value:checkboxlist默认被选中的选项,checked=checked<br>?????
16.???????? <s:checkboxlist theme="simple" name="checkbox2" list="#{1:'上网',2:'看书',3:'爬山',4:'游泳',5:'唱歌'}" listKey="key" listValue="value" value="{1,2,5}" ></s:checkboxlist>??????
17.?????
18.????????? <br/>--------------------------<br/>??
1.????? #、combobox <br/>??
2.?
3.???? <s:combobox theme="simple" label="选择你喜欢的颜色" name="colorNames"? headerValue="------请选择------" headerKey="1"? list="{'红','橙','黄','绿','青','蓝','紫'}" />????
4.???? <br/>--------------------------<br/>??
1.????? #、radio @单选框<br/>???
2.?
3.????????? <%?????
4.???????????? Sex sex1 = new Sex(1,"男");???????
5.???????????? Sex sex2 = new Sex(2,"女");??????
6.???????????? List<Sex> list = new ArrayList<Sex>();???????
7.???????????? list.add(sex1);?????
8.???????????? list.add(sex2);?????
9.???????????? request.setAttribute("sexs",list);???????
10.???????? %>?????
11.?????????????????????? 这个与checkboxlist差不多;<br>?????
12.???????? 1>.如果集合为javabean:<s:radio theme="simple" name="sex" list="#request.sexs" listKey="id" listValue="name"></s:radio><br>??????
13.???????? 2>.如果集合为list:<s:radio theme="simple" name="sexList" list="{'男','女'}"></s:radio><br>??????
14.???????? 3>.如果集合为map:<s:radio theme="simple" name="sexMap" list="#{1:'男',2:'女'}" listKey="key" listValue="value"></s:radio><br>??????
15.???????? <hr>?????
16.????? <br/>--------------------------<br/>??
1.????? #、select @下拉列表框<br/>????
2.?
3.???????? 这个与s:checkboxlist差不多;<br>?????
4.???????? 1>.如果集合为javabean:<s:select theme="simple" name="sex" list="#request.sexs" listKey="id" listValue="name"></s:select><br>??????
5.???????? 2>.如果集合为list:<s:select theme="simple" name="sexList" list="{'男','女'}"></s:select><br>??????
6.???????? 3>.如果集合为map:<s:select theme="simple" name="sexMap" list="#{1:'男',2:'女'}" listKey="key" listValue="value"></s:select><br>??????
7.????????
8.????? <br/>--------------------------<br/>??
1.????? #、doubleselect @级联菜单 <br/>??
2.?
3.???? <!--?? 可以用直接指定,当然也可以跟数据库绑定的 -->??
4.????? <s:set name="proviList" value="{'江西省','湖北省'}"></s:set>???
5.????? <s:set name="jxList" value="{'南昌市','赣州市','九江市','上饶市','鹰潭市'}"></s:set>???
6.????? <s:set name="hbList" value="{'武汉市','恩施市','十堰市','荆州市','襄樊市'}"></s:set>???
7.????? <s:doubleselect theme="simple"? name="provi" doubleList="top=='江西省' ? #jxList : #hbList" list="#proviList" doubleName="city"></s:doubleselect>???
8.????? <br/>--------------------------<br/>??
1.????? #、optiontransferselect <br/>??
2.????? <s:optiontransferselect theme="simple" label="change" name="abc" doubleList="{'111','222','333','444'}" list="{'aaa','bbb','ccc','ddd'}" doubleName="number"></s:optiontransferselect>???
3.????? <br/>--------------------------<br/>??
4.????? #、updownselect @可上下选择的select <br/>??
5.????? <s:updownselect label="selectCity" emptyOption="true" name="selectCity" list="#jxList" headerValue="-Please Select The City-" headerKey="-1"></s:updownselect>???
6.?????? <br/>--------------------------<br/>??
7.????? #、sx:datetimepicker @日期选择控件 <br/>??
8.????? 使用步骤:声明:我这里用的是strut 2.1.8.1,在struts2.0的版本中可能有所不同;<br/>???
9.?????????????? 1.导入struts2-dojo-plugin-2.1.8.1.jar DoJo 插件包;<br/>???
10.?????????????? 2. 导入标签:<%--@ taglib prefix="sx" uri="/struts-dojo-tags"--%>;<br/>???
11.?????????????? 3.在需要使用的页面中的head标签之间加上<%-- <sx:head parseContent="true"/> --%>;<br/>???
12.????? <sx:datetimepicker label="birthday" name="bir" value="#dt"></sx:datetimepicker>???
13.?????? <br/>--------------------------<br/>??
14.????? #、sx:tabbedpanel @选项卡控件 <br/>??
15.?????? 声明:这个标签代码转至:http://blog.sina.com.cn/s/blog_6145ed810100ecud.html,版权归作者所有;写的挺好拿来大家共同学习。???
16.????????
17.?????? <!-- tabbedpanel标签 -->??

读书人网 >软件架构设计

热点推荐