struct2php,struts2标签<s:generator>

有的时候,我们在数据库中,会在一个字段存放多个值,之间用特殊字符分割。

比如,需要某个字段存放了用户个人使用的编程语言(可以多选)

1.Java

2.C

3.PHP

如果用户选择了1和2,那么,在数据库中的"编程语言"一栏里,可能会写入"1,2"(此处以逗号分隔).

当在查询页面需要显示编程语言时,我们不能直接显示"1,2",而是需要转换成"Java、C"。

方案1:我们可以在后台得到查询结果后转义,这个需要在后台遍历查询的结果集,效率不高。

方案2:我们可以使用struts2的标签实现上面的功能

val="languageItem":为后台保存"1,2"的变量;

separator=",":标明变量的分隔符;

converter="%{languageItemConverter}":指明languageItem的转换方法,我们需要在对应的Action中添加方法public org.apache.struts2.util.IteratorGenerator.Converter getLanguageItemConverter(){}。

内部需要嵌套使用来遍历后台转换后产生的结果集,然后使用特定的方式显示(例子中是通过"、"来分隔显示转义后的字符)。

下面是此方法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

最后再提一下标签中的可选属性count,它是用来指定所生成迭代器中元素的数量。

以上面为例,如果设置count="1",页面将只显示:Java;

如果设置count="3",页面将显示:Java、C、Java;

也就是说,如果count的值大于转换后的结果集个数,他将会从头循环结果集,直到填满count设置的数量,

所以,如没有特殊要求,我们一般不设置此属性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值