用了好久的struts1.2版本,今日却遇见一怪事:
1、事情描述:今日用航信酒店XML接口做酒店预订,因订单字段有60多个,为了省去命名的麻烦,就挪用了其接口中的字段,等到actionForm、action、业务bean等都建立好后,预订时却出现空指针错误!以为是疏忽掉了某个字段,就检查了两遍,可怎么对都没少!!又调试才发现,原来传来的form和actionForm里的值全是null,怎么会没传过来应有的值呢?继续调试,发现页面中确实有值存在,可到了框架中,值就不见了!!!
2、解决办法:随后,本人手动在表单中添加了一隐藏域...调试时却惊奇的发现,居然获得了手动添加的值,其他的还是没获得,对比两种表单项,发现区别是命名时开头的字母的大小写,会不会是这个原因呢?改了其他字段的开头字母,问题果然解决了!!!(本人建actionform时使用了MyEclipse的自动生成GET、SET方法功能)
3、其他解决方法:除了上面所说的form中字段命名以小写字母开头外,还可以用以下方法解决
在actionform里把自动生成的get set 方法更改正确(自动生成的有错误,这可能是struts里的一个bug吧!)