struts2的标签generator生成的IteratorGenerator类型转换为ArrayList的方法

不知道有没有人遇到过这种问题,使用struts的标签generator生成字符串数组之后,好像必须需要内边内嵌一个iterator进行遍历。

这样经常有问题就是generator生成的是org.apache.struts2.util.IteratorGenerator类型,而不是List。

本人偶然的发现了个转换方法,下面直接上代码,分享一下:


假设:

stackContext中#questions的数据的json格式如下:

[

    {

        "aAnswer": "Davy does not have a pet.##Davyls pet disappears.##Davyls pet turned into a butterfly.",

        "aId": 5464,

        "opOptions": "19248-Davy does not have a pet. _19250-Davyls pet turned into a butterfly._19249-Davyls pet disappears.",

        "qId": 5466,

        "qQuestion": "Main Characters: Davy and Caty Settings: Kidsl Club",

        "qtId": 1195,

        "qtInstruction": "qtInstruction.",

        "qtKnowId": 740,

        "qtStyle": 8

    }

]

 页面局部如下:

<s:property value="#questions[0].aAnswer" /><br/>

<s:generator var="answers" separator="##" val="#questions[0].aAnswer"/>

<s:property value="#answers" />--><s:property value="#answers.getClass()" /><br/>

<s:property value="#answers.toString()"/>--><s:property value="#answers.toString().getClass()" /><br/>

<s:property value="#answers.{#this}" />--><s:property value="#answers.{#this}.getClass()" /><br/>

<!-- 惊奇而又惊喜的发现,#answers虽然是org.apache.struts2.util.IteratorGenerator类型

但投影操作之后: #answers.{#this} 

或者 #answers.{#this.toString()} 

  却都是 java.util.ArrayList类型

 -->

猜你喜欢

转载自blog.csdn.net/u013887254/article/details/41047385