一、
16:02:03,539 ERROR [http-apr-8088-exec-4] SpringObjectFactory:38 - Error building bean
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'zhidao.issue.front.question.model.Question': Unsatisfied dependency expressed through constructor argument with index 0 of type [java.lang.String]: : No matching bean of type [java.lang.String] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [java.lang.String] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:730)
......
at java.lang.Thread.run(Thread.java:662)
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [java.lang.String] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
......
at java.lang.Thread.run(Thread.java:662)
上面是报错信息,我是再写一个页面传数据到action时候,得不到实体类的值,然后发现是少了一个无参的构造方法。另外我在百度搜了到类似的报错,还有其他问题:
1. 对应的属性没有加get set 方法
2. 提交表单中有更多的name属性而对应的action 或者model里面没有这个方法(这里重要就包括一个图片button 往往让人们难以发现)如下面表示:
<input type="image" name="Submit" value="提交" οnclick="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=" 查 询 " οnclick="document.form.submit();"/>
都是可以解决的,估计凡是在struts2中没有定义getter,setter方法的form中的input都要被抛出异常
个人给出的意见是先查实体类是否有相关的get/set方法和无参的构造方法,其次查action里面的变量名是否正确,spring的注入是否正确,最后检查前端页面的表单提交等属性是否正确。