永发信息网

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

答案:2  悬赏:70  手机版
解决时间 2021-02-07 13:50
  • 提问者网友:沦陷
  • 2021-02-06 21:51
我在action里private String list4[][]=null;
通过两层循环list4[i][j]=svrImp.getDatas(answerSQL4).get(0).toString();
在jsp表示层输出却是
ognl.NoConversionPossible
最佳答案
  • 五星知识达人网友:夜风逐马
  • 2021-02-06 23:14
这个问题是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
全部回答
  • 1楼网友:第幾種人
  • 2021-02-06 23:27
可以私聊我~
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯