struts2标签:<s:generator>
来源:互联网 发布:摄像头录制软件免费版 编辑:程序博客网 时间:2024/05/21 09:20
有的时候,我们在数据库中,会在一个字段存放多个值,之间用特殊字符分割。
比如,需要某个字段存放了用户个人使用的编程语言(可以多选)
1.Java2.C
3.PHP
如果用户选择了1和2,那么,在数据库中的"编程语言"一栏里,可能会写入"1,2"(此处以逗号分隔).
当在查询页面需要显示编程语言时,我们不能直接显示"1,2",而是需要转换成"Java、C"。
方案1:我们可以在后台得到查询结果后转义,这个需要在后台遍历查询的结果集,效率不高。
方案2:我们可以使用struts2的标签<s:generator>实现上面的功能
<s:generator val="languageItem" separator="," converter="%{languageItemConverter}"><s:iterator status="row_languageItem"><s:if test="#row_languageItem.index != 0">、<s:property /></s:if><s:else><s:property /></s:else></s:iterator></s:generator>
val="languageItem":为后台保存"1,2"的变量;
separator=",":标明变量的分隔符;
converter="%{languageItemConverter}":指明languageItem的转换方法,我们需要在对应的Action中添加方法public org.apache.struts2.util.IteratorGenerator.Converter getLanguageItemConverter(){}。
<s:generator>内部需要嵌套使用<s:iterator>来遍历后台转换后产生的结果集,然后使用特定的方式显示(例子中是通过"、"来分隔显示转义后的字符)。
下面是此方法Action的部分代码:
*Action.java/** * 转义数据库中存放的用户个人使用的编程语言 * @return */ public Converter getLanguageItemConverter(){ return new Converter() { public Object convert(String value) throws Exception { String result = ""; switch (Integer.parseInt(value)) {case 1:result = "Java";break;case 2:result = "C";break;case 3:result = "PHP";break;} return result; } }; }
通过以上代码,页面上最终将显示的结果是:
Java、C
最后再提一下<s:generator>标签中的可选属性count,它是用来指定所生成迭代器中元素的数量。
以上面为例,如果设置count="1",页面将只显示:Java;
如果设置count="3",页面将显示:Java、C、Java;
也就是说,如果count的值大于转换后的结果集个数,他将会从头循环结果集,直到填满count设置的数量,
所以,如没有特殊要求,我们一般不设置此属性。
- struts2标签:<s:generator>
- Struts2的s:generator的标签
- Struts2 分割字符串标签s:generator
- struts2 标签 s:select
- struts2 s 标签
- struts2, 标签, s:iterator
- struts2 s:select 标签
- struts2 s:select 标签
- struts2 标签 s:select
- struts2 s:select 标签
- struts2--<s:debug>标签
- struts2 s标签
- Struts2标签<s:url>
- struts2标签<s:url>
- struts2--<s:debug>标签
- struts2 s标签
- struts2--<s:debug>标签
- struts2.0 S标签
- javascript 收藏经典代码
- Linux内核同步1
- poj 1074 Parallel Expectations
- 动态分配二元数组
- 关于右下角弹出框
- struts2标签:<s:generator>
- ARM微处理器的指令集概述(四)——MOV和LDR的区别
- 三角型面积
- !!!GTK+3.0 给控件和窗口添加背景图片
- 插件 API
- Rexsee API介绍:Android视频播放,Rexsee的VideoPlayer函数说明与源码
- 【Jsp标签库】.tld文件配置
- Google Chrome(谷歌浏览器)修改网页背景颜色的办法(比如修改为护眼的豆沙绿)
- indoor google map