当自定义Tag位于iterate标签体时,如何获取<bean:write>的值?

09-03-13 rurorani
正在作一个struts 1.1的项目 jdk1.4

由于特殊需求, 使用了自定义的标签TAG

比如说是叫做 <extag:button/>

一种典型的应用是 <extag:button name="aa" value="按钮" onclick="return submit('aaa','<bean:write name=#beanA# property=#propA#/>')"/>

在自定义的Tag Class里, 使用正则表达式匹配出此Bean的名字和属性, 然后用RequestUtils.lookup() 方法获取value, 并替换<bean:write> (也就是说自己写了一个阉割版bean write)

在普通情况下这个Tag可以正常使用.

问题来了, 当时没考虑到, 如果这个Tag位于<logic:iterate>内时, 如何获取bean的值?

大家知道 iterate时, 会指定一个bean, 属性为其中的一个列表, 对这个list进行循环, 然后指定id比如说为 r

那么在iterate内的 自定义tag里的 自定义beanwrite 是这么写的:

<bean:write name=#r# property=#propA#/>

显然这个是不行的.

现在比较迷茫, 该如何获取循环体内的值?

猜你喜欢