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

   Struts 2.1 Tags
最近学习  Struts 2.1 Tags 做了些笔记,贴出来大家一起学习下,希望大家多多交流。
 
别的都不说了,我就贴代码,代码里注释比较详细,呵呵。
 
文件目录,如下:
     Struts2.1 标签详细说明(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标签 -->  

你可能感兴趣的:(bean,UI,jsp,struts,dojo)