我现在是要吧把struts和spring整合在一起,但是出现了以下错误:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Error creating bean with name '/login' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'userdao' of bean class [nchu.fc.jspstudy.login.LoginAction]: Bean property 'userdao' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause org.springframework.beans.factory.BeanCreationException: Error creating bean with name '/login' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'userdao' of bean class [nchu.fc.jspstudy.login.LoginAction]: Bean property 'userdao' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:975)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:729)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:416)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:264)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:646)
org.springframework.web.struts.DelegatingActionProxy.getDelegateAction(DelegatingActionProxy.java:122)
org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:105)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause org.springframework.beans.NotWritablePropertyException: Invalid property 'userdao' of bean class [nchu.fc.jspstudy.login.LoginAction]: Bean property 'userdao' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:751)
org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:608)
org.springframework.beans.AbstractPropertyAccessor.setPropertyValue(AbstractPropertyAccessor.java:49)
org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:74)
org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:57)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:970)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:729)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:416)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:264)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:646)
org.springframework.web.struts.DelegatingActionProxy.getDelegateAction(DelegatingActionProxy.java:122)
org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:105)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.26 logs.
struts-config.xml文件的相关代码如下:
 <action path="/login" type="org.springframework.web.struts.DelegatingActionProxy" >
     <forward name="success" path="/index0.jsp"/>
     <forward name="failure" path="/loginFailed.jsp"/>
     <forward name="register" path="/adduser.jsp"/>
     <forward name="background" path="/admin.jsp"/>
     <forward name="userQue" path="/que.do?operType=userList"/>
     <forward name="userReply" path="/reply.do?operType=userList"/>
     <forward name="adminQue" path="/que.do?operType=adminList"/>
     <forward name="adminReply" path="/reply.do?operType=adminList"/>
    </action>
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/>
  </plug-in>  
  
applicationContext.xml文件如下:
<bean id="userdao" class="nchu.fc.jspstudy.user.UserDAO"></bean>
<bean name="/login" class="nchu.fc.jspstudy.login.LoginAction" singleton="false">
<property name="userdao">
<ref local="userdao"/>
</property>
</bean>
LoginaCtion代码如下
public class LoginAction extends Action {
/*
 * Generated Methods
 */
ActionForward actionForward = null; private String operType = ""; private IUserDAO userdao=null;; public IUserDAO getUserdao() {
return userdao;
} public void setUserdao(IUserDAO userdao) {
this.userdao = userdao;
} /**
 * Method execute
 * 
 * @param mapping
 * @param form
 * @param request
 * @param response
 * @return ActionForward
 */
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) { UserDTO cond = new UserDTO();
Connection conn = DatabaseManager.getConnection();
// UserDAO dao = new UserDAO(conn);
userdao.UserDAO(conn);
// 接受用户账号,用户密码
String userName = request.getParameter("userName");
String password = request.getParameter("password");
请到手帮忙下,谢谢了的···········