关于target is null for setProperty的问题总结

来源:互联网 发布:内存兼容性测试软件 编辑:程序博客网 时间:2024/05/17 22:07
关于这种问题的几种可能性总结下:

1.       对应的属性没有加get set  方法

2.       提交表单中有更多的name属性而对应的action 或者model里面没有这个方法(这里重要就包括一个图片button  往往让人们难以发现)如下面表示:

<input type="image" name="Submit" value="提交" onclick="return checkpwd();" src="images/a_tj.gif"/>

错误信息: target is null for setProperty(null, "x", [Ljava.lang.String;@b0c40e)

3.       在没有spring帮助注入的前况下我们action里面的model 一定要手动new 出来并且在model里面添加空的构造方法

4.       Action里面的model 实例对象名字和我们表单中的名字不一致的时候

 

5、struts2中表单提交按钮:

<input type="Submit" name="Submit" value=" 查 询 " />

这样会报题目的错误.其实把submit的name属性删掉或者

<input type="button" name="Submit" value=" 查 询 " onclick="document.form.submit();"/>

都是可以解决的,估计凡是在struts2中没有定义getter,setter方法的form中的input都要被抛出异常

 

6、原来的model类中重写了构造方法,却没有提供默认的空构造函数。

加上public Book(){};即可。

 

7、最后还有一个坑爹的问题:你的属性命名规范。

例如:有一个表t_txn_info表对应的pojo类是TTxnInfo

你在action类中有一个属性private TTxnInfo tTxnInfo;

这样导致自动生成的setter/getter方法不能识别tTxnInfo,会识别成txnInfo.

曾经吃过亏。最好把tUser的第一第二个字母都小写——tuser,或者去掉t。

最后一直排查问题就是这个变量名的问题..

0 0