Struts2 标签库 [Tablib]

Struts2 Taglib 抽象了不同表示技术,现在Struts2主要支持三种表示技术:JSP,FreeMarkerVelocity。但部分的Tag在三种表示技术下都可以使用,但是也有部分只能在某一种情况下使用。
 
Tab 可以分为两类:通用标签和UI标签。
 
4.1 节 通用标签
通用标签用来在页面表示的时候控制代码执行的过程,这些标签也允许从Action或者值堆栈中取得数据。例如地域,JavaBeansURLs,和action
 
控制标签控制程序执行,例如:ifelse,iterator
数据标签管理数据的取得和创建,例如:beanpush,i18n
 
控制标签
 
if 标签
描述
  If 标签用来控制基本的条件处理流程,通常和else标签或者elseif标签连用。
 
参数
名字
是否必须
默认值
可否使用表达式
类型
描述
id
 
String
用来表示该元素,对于UIForm标签来说直接转变为HTML id属性
test
 
Boolean
用来决定是否显示标签内部内容的表达式
 
例子
<s:if test="%{false}"></s:if>
   
Will Not Be Executed
<s:elseif test="%{true}"></s:elseif>
   
Will Be Executed
<s:else></s:else>
   
Will Not Be Executed
 
elseIf 标签
参考if标签
 
else 标签
参考if标签
 
append 标签
描述
用来做iterator标签的辅助,将不同iterator中的内容合在一个iterator中。
 
参数
名字
是否必须
默认值
可否使用表达式
类型
描述
id
 
String
用来保存结果iterator的对象在value context中的名字。
 
例子
Action
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; }
 
标签使用
<s:append id="myAppendIterator"></s:append>
     <s:param value="%{myList1}">
     <s:param value="%{myList2}">
     <s:param value="%{myList3}">
<s:iterator value="%{#myAppendIterator}"></s:iterator>
     <s:property></s:property>
 
generator 标签(JSP Tag
描述
val属性生成一个iterator
 
参数
例子
1:
生成一个简单的iterator,并且使用iterator标签打印出内容。
<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}"></s:generator>
 <s:iterator></s:iterator>
     <s:property></s:property>
 
 
2:
生成一个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:generator>
 <s:iterator></s:iterator>
     <s:property></s:property>
 
 
 
3:
生成iterator,使用了id属性,之后生成的对象放在pageContext中,可以通过指定的id来访问。
<s:generator id="myAtt" val="%{'aaa,bbb,ccc,ddd,eee'}" count="4" separator=","></s:generator>
<!---->
     <!---->
<!---->
 
4:
生成iterator,使用converter属性,这里的convertor仅仅将每一个对象添加了一个"converter-"前缀。
<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}" converter="%{myConverter}"></s:generator>
 <s:iterator></s:iterator>
     <s:property></s:property>
 
 
 
public class GeneratorTagAction extends ActionSupport {
 
  ....
 
  public Converter getMyConverter() {
     return new Converter() {
         public Object convert(String value) throws Exception {
             return "converter-"+value;
         }
     };
  }
 
  ...
 
}
 
iterator 标签
描述
迭代处理一个java.util.Connection或者java.util.Iterator对象
 
参数
名字
是否必须
默认值
可否使用表达式
类型
描述
id
 
String
Id
status
Boolean
如果指定,在循环的过程中会保留一个IteratorStatus类型的变量,该变量用来查询当前迭代的状态
value
 
String
被迭代的对象
 
 
例子
1
<s:iterator value="days"></s:iterator>
 

day is: <s:property></s:property>

 
2
<s:bean id="it" name="org.apache.struts2.example.IteratorExample"></s:bean>
  <s:param name="day" value="'foo'">
  <s:param name="day" value="'bar'">

 

你可能感兴趣的:(bean,UI,freemarker,jsp,velocity)