ognl.OgnlException: target is null for setProperty(null, "newsid", [Ljava.lan

昨天写那个项目,发现所有的JSP界面的属性都报ognl.OgnlException: target is null for setProperty(null, "newid", [Ljava.lang.String;@bc56a2)这个错误,通过上网查找原因,最后发现我的问题是没有再pojo定义实体对象时,写了有参的构造 方法,却没有添加一个无参数的构造函数,可struts中,在页面提交时,通过ognl,先调用无参数的构造函数,然后再调用相应的setter方法去可 构造实体对象,没有无参数的构造函数,导致报错。

同时我还整理了几点导致这个错误的原因,收集下啦:

1. 实体对象一定要有一个无参数的构造函数。如NewsBean.java中要有个无参构造

2、为offset设置setter方法和getter方法。 如NewsAction中的news对象,要get/set,我这里就是这个缘故。
3、可以删除提交过来的表单的name属性。 如将input改成<s:textfiled />
4.这个错误信息主要因为webwork.devMode = true引起,因为ww在此中配置下对任何提交到action的参数强制需要setter方法,而我们在使用token的时候一般都没有正确的为每一个 token设置该参数,为此提交的token信息就会在这里一起一些错误信息,如果需要屏蔽掉这些的话,可以设置webwork.devMode = false来避免这种错误信息的抛出,当然这些错误在程序调试的时候是有用处了,我们可以根据这些信息来删除不必要的参数

 

你可能感兴趣的:(ognl.OgnlException: target is null for setProperty(null, "newsid", [Ljava.lan)