今天朋友请教一个struts2 以ognl方式上传的问题;刚开始我写了一个很正常,然后拿到他的部分源码进行修改,也陷入了同样的问题;
场景:
表单的一部分是
一个Action里封装一个TemplateType实例,TemplateType有一个属性是TableModel的实例;TableModel又有个基本类型的pageSize;只要bean里面提供了get和set方法,提交上去后,struts的拦截器会自动将parameter封装进Action里面的对象的;但是templateType始终是null;
我自己写了两个测试用的User和Apple实例,运行良好;
这两套Action基本完全一致,后来想到是否是ognl有一些规范?网上没找到,最后将TemplateType和TableModel这两个实例都改写成小写的,运行成功,pageSize无所谓;
[color=red]由此得出结论:使用ognl表达式,中间层的对象一定要小写才行啊!!![/color]
场景:
表单的一部分是
<input name="templateType.tableModel.pageSize" type="text"/>
一个Action里封装一个TemplateType实例,TemplateType有一个属性是TableModel的实例;TableModel又有个基本类型的pageSize;只要bean里面提供了get和set方法,提交上去后,struts的拦截器会自动将parameter封装进Action里面的对象的;但是templateType始终是null;
我自己写了两个测试用的User和Apple实例,运行良好;
这两套Action基本完全一致,后来想到是否是ognl有一些规范?网上没找到,最后将TemplateType和TableModel这两个实例都改写成小写的,运行成功,pageSize无所谓;
<input name="tt.pp.pageSize" type="text"/>
[color=red]由此得出结论:使用ognl表达式,中间层的对象一定要小写才行啊!!![/color]