zzx0421 发表于 2013-2-6 09:59:12

Struts2标签库Tablib

Struts2 Taglib<span style="">抽象了不同表示技术,现在Struts2主要支持三种表示技术:JSP,FreeMarker和Velocity但部分的Tag在三种表示技术下都可以使用,但是也有部分只能在某一种情况下使用
 
Tab<span style="">可以分为两类:通用标签和UI标签
 
4.1<span style="">节 通用标签
<span style="">通用标签用来在页面表示的时候控制代码执行的过程,这些标签也允许从Action或者值堆栈中取得数据例如地域,JavaBeans,URLs,和action
 
控制标签控制程序执行,例如:if,else,iterator
数据标签管理数据的取得和创建,例如:bean,push,i18n
 
<span style="">控制标签
 
if<span style="">标签
<span style="">描述
  If<span style="">标签用来控制基本的条件处理流程,通常和else标签或者elseif标签连用
 
<span style="">参数
<span style="">名字
<span style="">是否必须
<span style="">默认值
<span style="">可否使用表达式
<span style="">类型
<span style="">描述
id
<span style="">否
 
<span style="">是
String
<span style="">用来表示该元素,对于UI和Form标签来说直接转变为HTML id属性
test
<span style="">是
 
<span style="">是
Boolean
<span style="">用来决定是否显示标签内部内容的表达式
 
<span style="">例子
<s:if test="%{false}">
    <div>Will Not Be Executed</div>
</s:if>
<s:elseif test="%{true}">
    <div>Will Be Executed</div>
</s:elseif>
<s:else>
    <div>Will Not Be Executed</div>
</s:else>
 
elseIf <span style="">标签
<span style="">参考if标签
 
else <span style="">标签
<span style="">参考if标签
 
append标签
<span style="">描述
<span style="">用来做iterator标签的辅助,将不同iterator中的内容合在一个iterator中
 
<span style="">参数
<span style="">名字
<span style="">是否必须
<span style="">默认值
<span style="">可否使用表达式
<span style="">类型
<span style="">描述
id
<span style="">否
 
<span style="">是
String
<span style="">用来保存结果iterator的对象在value context中的名字
 
<span style="">例子
Action<span style="">类
public class AppendIteratorTagAction extends ActionSupport {
 
 private List myList1;
 private List myList2;
 private List myList3;
 
 
 public String execute() throws Exception {
 
     myList1 = new ArrayList();
     myList1.add("1");
     myList1.add("2");
     myList1.add("3");
 
     myList2 = new ArrayList();
     myList2.add("a");
     myList2.add("b");
     myList2.add("c");
 
     myList3 = new ArrayList();
     myList3.add("A");
     myList3.add("B");
     myList3.add("C");
 
     return "done";
 }
 
 public List getMyList1() { return myList1; }
 public List getMyList2() { return myList2; }
 public List getMyList3() { return myList3; }
 
<span style="">标签使用
<s:append >
     <s:param value="%{myList1}" />
     <s:param value="%{myList2}" />
     <s:param value="%{myList3}" />
</s:append>
<s:iterator value="%{#myAppendIterator}">
     <s:property />
</s:iterator>
 
generator <span style="">标签(JSP Tag)
<span style="">描述
<span style="">从val属性生成一个iterator
 
<span style="">参数
<span style="">例子
例1:
<span style="">生成一个简单的iterator,并且使用iterator标签打印出内容
<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}">
 <s:iterator>
     <s:property /><br/>
 </s:iterator>
</s:generator>
 
例2:
<span style="">生成一个iterator,使用count属性因为count属性值为3,所以只有前三个内容(aaa,bbb,ccc)在生成的iterator中
Generate an iterator with count attribute
<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" count="3">
 <s:iterator>
     <s:property /><br/>
 </s:iterator>
</s:generator>
 
 
例3:
<span style="">生成iterator,使用了id属性,之后生成的对象放在pageContext中,可以通过指定的id来访问
<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" count="4" separator="," />
<%
 Iterator i = (Iterator) pageContext.getAttribute("myAtt");
 while(i.hasNext()) {
     String s = (String) i.next();
%>
     <%= s %> <br/>
<%

%>
 
例4:
<span style="">生成iterator,使用converter属性,这里的convertor仅仅将每一个对象添加了一个"converter-"前缀
<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" converter="%{myConverter}">
 <s:iterator>
     <s:property /><br/>
 </s:iterator>
</s:generator>
 
 
public class GeneratorTagAction extends ActionSupport {
 
  ....
 
  public Converter getMyConverter() {
     return new Converter() {
         public Object convert(String value) throws Exception {
             return "converter-"+value;
         }
     };
  }
 
  ...
 
}
 
iterator <span style="">标签
<span style="">描述
<span style="">迭代处理一个java.util.Connection或者java.util.Iterator对象
 
<span style="">参数
<span style="">名字
<span style="">是否必须
<span style="">默认值
<span style="">可否使用表达式
<span style="">类型
<span style="">描述
id
<span style="">否
 
<span style="">是
String
Id<span style="">,
status
<span style="">否
<span style="">否
<span style="">是
Boolean
<span style="">如果指定,在循环的过程中会保留一个IteratorStatus类型的变量,该变量用来查询当前迭代的状态
value
<span style="">否
 
<span style="">是
String
<span style="">被迭代的对象
 
 
<span style="">例子
<span style="">例1:
<s:iterator value="days">
  <p>day is: <s:property/></p>
</s:iterator>
 
<span style="">例2:
<s:bean >
  <s:param value="'foo'"/>
  <s:param value="'bar'"/>
</s:bean>
<p/>
<table border="0" cellspacing="0" cellpadding="1">
<tr>
  <th>Days of the week</th>
</tr>
<p/>
<s:iterator value="#it.days" status="rowstatus">
  <tr>
    <s:if test="#rowstatus.odd == true">
      <td style="background: grey"><s:property/></td>
    </s:if>
    <s:else>
      <td><s:property/></td>
    </s:else>
  </tr>
</s:iterator>
</table>
 
<span style="">例3:
<s:iterator value="groupDao.groups" status="groupStatus">
     <tr
class="<s:if test="#groupStatus.odd == true ">odd</s:if><s:else>even</s:else>">
         <td><s:property value="name" /></td>
         <td><s:property value="description" /></td>
         <td>
             <s:iterator value="users" status="userStatus">
                 <s:property value="fullName" />
<s:if test="!#userStatus.last">,</s:if>
页: [1]
查看完整版本: Struts2标签库Tablib