Struts2 分割字符串标签s:generator

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts2 分割字符串标签s:generator相关的知识,希望对你有一定的参考价值。

Struts2 分割字符串标签s:generator
 有些时候会从后台返回一个字符串,可以通过Strut2的标签s:generator进行分割。
 
generator标签,该标签可以将指定字符串按指定分隔符分割成多个字串。生成的多个字串可以用iterator标签进行迭代输出。可以这么理解:generator标签将一个字符串转换成一个List集合。在该标签体内,整个临时生成的集合将为Valuestack的顶端,但一旦该标签结束,生成的集合将被移除Valuestack。generator标签有如下几个属性:
1、count属性:指定生成集合中元素的总数。可选属性。
2、val属性:必填属性,指定被解析的字符串。
3、separator属性:这是一个必填属性,指定用于分割字符串的分隔符。
4、converter属性:可选属性,指定一个转换器,转换器负责将生成的集合中的每个字符串转换成对象,通过这个转换器可以将一个含有分隔符的字符串解析成对象的集合。转换器必须一个继承org.apache.struts2.util.IteratorGenerator.Converter的对象。
5、var属性,可选属性。如果指定了该属性,则将生成的集合保存在Stack Context中。如果不指定该属性,则将生成的集合放入ValueStack的顶端,该标签一结束,生成的集合就被移除。该属性也可替换成id。
    s:generator将字符串分割成一个数组,分割后通过s:iterator标签
 
    1. <s:generator val="‘a,b, c‘" separator="," id="iter1">   
    2. </s:generator>  
    3. <s:iterator status="st" value="#request.iter1" id="name">   
    4.     <tr >   
    5.         <td><s:property value="name"/></td>   
    6.     </tr>   
    7. </s:iterator>   
当s:generator标签需要分割的字符串为Action传递的值时,写明参数名称即可


   <s:generator val="%{type}"   separator="#">
   <s:iterator>
      <s:property /><br/>
   </s:iterator>
</s:generator>



      <s:generator val="%{type}"  separator="#" id="tt" >   在这里产生一个名为tt的list
   <s:iterator status="st" value="#tt" id="ty" >  加#是引用产生的那个list  id是当前标签的别名
       <s:property value="ty"/><br/> 
   </s:iterator>
</s:generator>

 

以上是关于Struts2 分割字符串标签s:generator的主要内容,如果未能解决你的问题,请参考以下文章

struts2 s:if标签 如何判断字符串

Struts2 FTL 标签和地图

关于Struts2 标签<s:property>中文乱码问题

Struts2 - 在textfield标签的value属性中转义字符串

struts2框架之标签

Struts2标签库