2013-03-22 60 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!