永发信息网

Struts2,在表示层输出的值是ognl.NoConversionPossible,是什么意思?

答案:2  悬赏:70  手机版
解决时间 2021-02-07 13:50
我在action里private String list4[][]=null;
通过两层循环list4[i][j]=svrImp.getDatas(answerSQL4).get(0).toString();
在jsp表示层输出却是
ognl.NoConversionPossible
最佳答案
这个问题是struts2导致的。

我再在项目中也遇到类似的问题,页面上有一组checkbox,映射到action中的 int[]。当不选中任何checkbox时出错。

分析:
1、做了两断代码对比,都是生成一组checkbox,一个用手写的 ,另一个用struts2标签
结果:手写的,服务器得到的是null,可以正常处理;用struts2标签,得到false,无法转换为int[],出错。

2、看struts2源码
发现原因在于struts2 checkbox 的template 和interceptor.
在simple template中,对于每一个checkbox,都会生成一个hidden input,其name为"__checkbox_%checkbox的name%"
struts2缺省使用了一系列的intecerptor,其中就有CheckboxInterceptor。在这个interceptor中,会判断是否选择了任意一个checkbox,如果没有,则将其值设为false(字符串形式)

解决思路:
a. 在页面中加入一个与checkbox同名的hidden input,指定一个特殊的值,在action中进行参数校验时处理
b. 使用不同的模板
c. 禁用Checkbox Interceptor
d. 要求struts修改代码,或者自行修改,增加一个开关项,来选择是否为checkbox生成相应的hidden input
全部回答
可以私聊我~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
男友总是提前女友,是什么心理,求建议
绿伊舒纳米汗蒸养生馆地址好找么,我有些事要
怎么做水煮灌肠
可爱的-群名 -QQ名 - 特殊符号 -前缀
爱家超市地址在哪,我要去那里办事
【表示看的词语有】表示看的词语有哪些两个字
西昌北京东路星程酒店大堂电脑密码是什么
雨润堂怎么去啊,我要去那办事
为什么手机usb插在有的电脑上可以显示,有些不
紫林宾馆地址在哪,我要去那里办事
三角形问题在三角形ABC中,D是BC上一点,BD:DC
周师傅中式按摩地址在哪,我要去那里办事
feoh3和fecl3互相转换
骄阳电子地址在什么地方,想过去办事
太康按摩地址在什么地方,我要处理点事
推荐资讯
打耳眼多久才能换
带蜜蜡吊坠要注意什么 可以游泳带什么
鑫印象专业美发沙龙我想知道这个在什么地方
御医段鸿铭是什么人物具体点
溧阳市红晨机械厂地址有知道的么?有点事想过
七年级上册塞翁失马,其中其的一词多义塞翁失
单县千山公园附近有没有洗澡堂
每日每夜NO.021地址在哪,我要去那里办事
美丽其实很简单地址有知道的么?有点事想过去
18品的吉他可以弹出声吗,怎么弹
永昌万祥城西门地址在什么地方,想过去办事
一个四位数5( )6( ),它既是4的倍数,有是9的倍
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?