Control Tag trong Struts 2
Struts 2 cung cấp một tập hợp các thẻ (Tag) đa dạng để làm đơn giản hóa việc điều khiển luồng thực thi trang. Dưới đây là các Control Tag quan trọng trong Struts 2.
Thẻ if và else trong Struts 2
Các thẻ này thực hiện việc điều khiển luồng cơ bản như trong mọi ngôn ngữ. Thẻ if có thể được sử dụng với chính nó hoặc với thẻ else if và/hoặc với một hoặc nhiều thẻ else, như sau:
<s:if test="%{false}"> <div>Se khong duoc thuc thi</div> </s:if> <s:elseif test="%{true}"> <div>Se duoc thuc thi</div> </s:elseif> <s:else> <div>Se khong duoc thuc thi</div> </s:else>
Thẻ iterator trong Struts 2
Thẻ iterator này sẽ lặp qua một giá trị. Một giá trị có thể lặp có thể là java.util.Collection, java.util.Iterator. Trong khi lặp qua một iterator, bạn có thể sử dụng thẻ sort để sắp xếp kết quả hoặc thẻ subset để lấy một tập con của danh sách list hoặc mảng array.
Ví dụ sau lấy giá trị của phương thức getDays() của đối tượng hiện tại trên ValueStack và sử dụng nó để lặp qua. Thẻ <s:property/> in giá trị hiện tại của iterator.
<s:iterator value="days"> <p>day is: <s:property/></p> </s:iterator>
Thẻ merge trong Struts 2
Thẻ merge nhận hai hoặc nhiều list như là các tham số và sáp nhập chúng vào với nhau như sau:
<s:merge var="myMergedIterator"> <s:param value="%{myList1}" /> <s:param value="%{myList2}" /> <s:param value="%{myList3}" /> </s:merge> <s:iterator value="%{#myMergedIterator}"> <s:property /> </s:iterator>
Thẻ append trong Struts 2
Thẻ append nhận hai hoặc nhiều list như là các tham số và phụ thêm chúng vào cuối của nhau, như sau:
<s:append var="myAppendIterator"> <s:param value="%{myList1}" /> <s:param value="%{myList2}" /> <s:param value="%{myList3}" /> </s:append> <s:iterator value="%{#myAppendIterator}"> <s:property /> </s:iterator>
Thẻ generator trong Struts 2
Thẻ generator tạo một Iterator dựa trên thuộc tính val đã cung cấp. Thẻ generator sau tạo một iterator và in nó bởi sử dụng thẻ iterator.
<s:generator val="%{'aaa,bbb,ccc,ddd,eee'}"> <s:iterator> <s:property /><br/> </s:iterator> </s:generator>