Struts2的Action接收jsp页面表单数据为null的原因及解决方法
学完Struts2后自己写小练习时发现,Action获取表单数据的三种方式都不成功,封装数据类型如String结果是null,基本数据类型如double是0。 怀疑过各种问题:struts2和spring整合导致的,然后删除spring部分,不行;jsp页面使用了struts2标签,改为普通的,不行。快绝望了。 后来发现Struts对变量的get和set方法有严格的要求,以get为例,如果你的变量分别是username,userName,uName,那么对应的get方法就是getUsername(),getUserName(),getUName(),总结起来就是首字母必须大写。Eclipse生成get方法一般是符合这一规范的,但是当变量名为uName时,默认生成的时getuName(),而不是正确的 getUName(),这时候就坑爹了,你怎么也发现不了这个问题,因为越是eclipse自动生成的代码,你越相信。 Struts2接收参数的三种方式: 如果使用前两种方式,在Action中的get和set方法要符合上述规范,如果是使用ModelDriven方式,因为此时Action中没有get和set方法,此时使用的是实体类定义中的get和set方法,因此实体类定义中的get和set方法必须符合上述规范。 问题解决。转载:.html