异常信息如下:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name '/jsp/user' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'dao' of bean class [wudi.cn.struts.action.UserAction]: Bean property 'dao' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
applictionContext.XML代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/mldn"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"></ref>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.connection.autocommit">true</prop>
<prop key="hibernate.show_sql">false</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>wudi/cn/vo/User.hbm.xml</value>
</list>
</property>
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="iuserdao" class="wudi.cn.dao.IUserDAO" abstract="true">
</bean>
<bean id="iuserdaoimpl" class="wudi.cn.impl.IUserDAOImpl"
parent="iuserdao">
<property name="hibernateTemplate">
<ref bean="hibernateTemplate" /></property>
</bean>
<bean name="/jsp/user"
class="wudi.cn.struts.action.UserAction">
<property name="dao">
<ref bean="iuserdaoimpl" />
</property>
</bean>
</beans>
UserAction代码如下:
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package wudi.cn.struts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.actions.DispatchAction;
import wudi.cn.dao.IUserDAO;
import wudi.cn.struts.form.UserForm;
import wudi.cn.util.MD5Code;
import wudi.cn.vo.User;
/**
* MyEclipse Struts
* Creation date: 09-08-2008
*
* XDoclet definition:
* @struts.action path="/user" name="userForm" input="/form/user.jsp" parameter="status" scope="request" validate="true"
*/
public class UserAction extends DispatchAction {
/*
* Generated Methods
*/
private IUserDAO dao=null; /** dao属性已经在这定义了
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward register(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UserForm userForm = (UserForm) form;
// 先判断验证码是否正确
String ccode = (String) request.getSession().getAttribute("ccode");
String checkcode = userForm.getCheckcode();
if (!(checkcode.equals(ccode))) {
ActionMessages errors = new ActionMessages();
errors.add("checkcode", new ActionMessage("checkcode.error"));
super.saveErrors(request, errors);
return mapping.getInputForward();
}
// 如果正确,则需要向数据库中插入
User user = null;
try {
user = this.dao.queryByUserid(userForm.getUserid());
if (user == null) {
MD5Code md5 = new MD5Code();
user = new User();
user.setUserid(userForm.getUserid());
user.setUserpwd(md5.getMD5ofStr(userForm.getUserpwd()));
user.setUserques(userForm.getUserques());
user.setUserans(userForm.getUserans());
// System.out.println("** " + userForm.getUserques());
user.setSex("男");
user.setGrade(1);
// 查询此用户是否存在
this.dao.register(user);
// 成功之后要将用户名和用户等级保存在session之中
request.getSession().setAttribute("userid", user.getUserid());
request.getSession().setAttribute("grade", user.getGrade());
return mapping.findForward("registersuccess");
} else {
ActionMessages errors = new ActionMessages();
errors.add("exist", new ActionMessage("user.userid.exist"));
super.saveErrors(request, errors);
return mapping.getInputForward();
}
} catch (Exception e) {
e.printStackTrace();
return mapping.findForward("registerfailure");
}
}
public IUserDAO getDao() {
return dao;
}
public void setDao(IUserDAO userdao) {
this.dao = userdao;
} setter/gettter方法在这已经定义了 可是还报错
}
请各位帮忙解决一下 谢谢了
frameborder="0" src="http://tpc.googlesyndication.com/safeframe/1-0-2/html/container.html#xpc=sf-gdn-exp-1&p=http%3A//bbs.csdn.net" id="google_ads_iframe_/8456/IDG.CN_B2B_csdn.net_0" name="1-0-2;78719;
-
|
|
比Nagios、Cacti更好用的监控软件 免费试用 有意外惊喜
|
|
scrolling="no" frameborder=0 height=0 width=0 src="http://cm.g.doubleclick.net/push?client=ca-pub-7443704194229694" style="position:absolute">
我们将对此广告进行审核,以便改善用户在今后的体验。
即将关闭广告:%1$d 秒
{"uid":1,"hostPeerName":"http://bbs.csdn.net","initialGeometry":"{\"windowCoords_t\":45,\"windowCoords_r\":1138,\"windowCoords_b\":628,\"windowCoords_l\":99,\"frameCoords_t\":4674,\"frameCoords_r\":1056,\"frameCoords_b\":4764,\"frameCoords_l\":328,\"styleZIndex\":\"auto\",\"allowedExpansion_t\":0,\"allowedExpansion_r\":0,\"allowedExpansion_b\":0,\"allowedExpansion_l\":0,\"xInView\":0,\"yInView\":0}","permissions":"{\"expandByOverlay\":false,\"expandByPush\":false,\"readCookie\":false,\"writeCookie\":false}","metadata":"{\"shared\":{\"sf_ver\":\"1-0-2\",\"ck_on\":1,\"flash_ver\":\"19.0.0\"}}","reportCreativeGeometry":false}" scrolling="no" marginwidth="0" marginheight="0" width="728" height="90" data-is-safeframe="true" style="box-sizing: content-box; border-width: 0px; border-style: initial; vertical-align: bottom;">
-
id="cproIframe_u1636200_2" width="200" height="22" src="http://pos.baidu.com/acom?adn=0&at=128&aurl=&cad=1&ccd=24&cec=UTF-8&cfv=0&ch=0&col=zh-CN&conBW=0&conOP=1&cpa=1&dai=2&dis=0&hn=0&layout_filter=tabcloud%2Cimage<r=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DrY_IUM_6_fCFdCC2sxGRG8uJuKMrQuqjDcBETv3y-7kH-6J_4HYPLjm2K7ulCYCG%26wd%3D%26eqid%3Dadb898e400008d3a00000005566ea0e6<u=http%3A%2F%2Fbbs.csdn.net%2Ftopics%2F270003732&lu_161=2&lunum=6&n=csdnbaidu_cpr&pcs=1204x560&pis=10000x10000&ps=4690x672&psr=1366x768&pss=1204x4720&qn=22346fc8212f9c4e&rad=&rsi0=200&rsi1=22&rsi5=4&rss0=%23FFFFFF&rss1=%23FFFFFF&rss2=%23000000&rss3=&rss4=&rss5=&rss6=%23000000&rss7=&scale=&skin=&td_id=1636200&titFF=%E5%AE%8B%E4%BD%93&titFS=12&titTA=left&tn=baiduTlinkInlay&tpr=1450091315477&ts=1&version=2.0&wn=0&xuanting=0&dtm=BAIDU_DUP2_SETJSONADSLOT&dc=2&di=u1636200&ti=org.springframework.beans.NotWritablePropertyException%E5%BC%82%E5%B8%B8%E7%9A%84%E9%97%AE%E9%A2%98-&tt=1450091315467.1205.1486.1486" align="center,center" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="box-sizing: content-box;">
-
id="cproIframe_u1636201_3" width="200" height="22" src="http://pos.baidu.com/acom?adn=0&at=128&aurl=&cad=1&ccd=24&cec=UTF-8&cfv=0&ch=0&col=zh-CN&conBW=0&conOP=1&cpa=1&dai=3&dis=0&hn=0&layout_filter=tabcloud%2Cimage<r=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DrY_IUM_6_fCFdCC2sxGRG8uJuKMrQuqjDcBETv3y-7kH-6J_4HYPLjm2K7ulCYCG%26wd%3D%26eqid%3Dadb898e400008d3a00000005566ea0e6<u=http%3A%2F%2Fbbs.csdn.net%2Ftopics%2F270003732&lu_161=2&lunum=6&n=csdnbaidu_cpr&pcs=1204x560&pis=10000x10000&ps=4802x794&psr=1366x768&pss=1204x4839&qn=992fd13c7eff9189&rad=&rsi0=200&rsi1=22&rsi5=4&rss0=%23FFFFFF&rss1=%23FFFFFF&rss2=%23000000&rss3=&rss4=&rss5=&rss6=%23000000&rss7=&scale=&skin=&td_id=1636201&titFF=%E5%AE%8B%E4%BD%93&titFS=12&titTA=left&tn=baiduTlinkInlay&tpr=1450091315477&ts=1&version=2.0&wn=0&xuanting=0&dtm=BAIDU_DUP2_SETJSONADSLOT&dc=2&di=u1636201&ti=org.springframework.beans.NotWritablePropertyException%E5%BC%82%E5%B8%B8%E7%9A%84%E9%97%AE%E9%A2%98-&tt=1450091315467.1782.1841.1841" align="center,center" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="box-sizing: content-box;">
-
id="cproIframe_u1636204_4" width="200" height="22" src="http://pos.baidu.com/acom?adn=0&at=128&aurl=&cad=1&ccd=24&cec=UTF-8&cfv=0&ch=0&col=zh-CN&conBW=0&conOP=1&cpa=1&dai=4&dis=0&hn=0&layout_filter=tabcloud%2Cimage<r=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DrY_IUM_6_fCFdCC2sxGRG8uJuKMrQuqjDcBETv3y-7kH-6J_4HYPLjm2K7ulCYCG%26wd%3D%26eqid%3Dadb898e400008d3a00000005566ea0e6<u=http%3A%2F%2Fbbs.csdn.net%2Ftopics%2F270003732&lu_161=2&lunum=6&n=csdnbaidu_cpr&pcs=1204x560&pis=10000x10000&ps=4802x916&psr=1366x768&pss=1204x4839&qn=1ba20de892c7af70&rad=&rsi0=200&rsi1=22&rsi5=4&rss0=%23FFFFFF&rss1=%23FFFFFF&rss2=%23000000&rss3=&rss4=&rss5=&rss6=%23000000&rss7=&scale=&skin=&td_id=1636204&titFF=%E5%AE%8B%E4%BD%93&titFS=12&titTA=left&tn=baiduTlinkInlay&tpr=1450091315477&ts=1&version=2.0&wn=0&xuanting=0&dtm=BAIDU_DUP2_SETJSONADSLOT&dc=2&di=u1636204&ti=org.springframework.beans.NotWritablePropertyException%E5%BC%82%E5%B8%B8%E7%9A%84%E9%97%AE%E9%A2%98-&tt=1450091315467.2014.2087.2087" align="center,center" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="box-sizing: content-box;">