2013-03-22 65 views
0

我想要一個自定義JSP標記,該標記具有屬於普通的bean表達式併爲列表命名。標籤將以特定的形式呈現列表。迭代器值的自定義標記屬性

我試圖寫與對於s屬性的定製標記:迭代器是這樣的:

<%@ tag body-content="empty"%> 
<%@ attribute name="list" required="true" %> 

<%@ taglib prefix="s" uri="/struts-tags"%> 

<s:set var="varList" >${list}</s:set> 
<s:iterator value="varList">(render item)</s:iterator> 

在一個不同的JSP我與豆表達式中使用它:

<my:listtag list="myObject.aList"/> 

我預期它遍歷「myObject.aList」,但不幸的是這不起作用。似乎發生的情況是,迭代器試圖遍歷「myObject」而不是「myObject.aList」。

這是怎麼回事,我怎麼能得到我想要的bahaviour?

非常感謝!

回答

0

好的,我們走吧。必須將屬性定義類型「收集」和迭代變量必須被賦予「%{#attr.list}」:

<%@ attribute name="list" required="true" type="java.util.Collection" %> 

<s:iterator value="%{#attr.list}">(render item)</s:iterator> 

在其他JSP我需要的叫它變量,而不是變量名稱:

<my:listtag list="${myObject.aList}"/> 

yay!