spring+struts1.2+jdbc的问题?

songfuqiang 2008-07-12 11:51:00
首先错误提示是:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean
named '/member' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:356)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedBeanDefinition(AbstractBeanFactory.java:916)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:243)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:229)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:737)
at org.springframework.web.struts.DelegatingActionProxy.getDelegateAction(DelegatingActionProxy.java:127)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:109)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:115)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:92)
at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:106)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:178)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:268)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:389)
at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:507)
at com.caucho.util.ThreadPool.run(ThreadPool.java:433)
at java.lang.Thread.run(Thread.java:534)
我的applicationContext.xml的配置:
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource"> <ref local="dataSource"/> </property>
</bean>
<bean id="memberDaoImple" class="com.ssdw.member.service.MemberDaoImpl">
<property name="jdbcTemplate">
<ref bean="jdbcTemplate"/>
</property>
</bean>
<bean id="member" class="com.ssdw.member.action.MemberAction">
<property name="memberDao">
<ref local="memberDaoImple" />
</property>
</bean>
struts-config.xml配置:<struts-config>
<data-sources />
<form-beans>
<form-bean name="memberForm" type="com.ssdw.member.form.MemberForm"/>
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings>
<action path="/member" parameter="action" scope="request" name="memberForm" type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="failure" path="/"></forward>
<forward name="success" path="/strus_spring.jsp"></forward>
</action>
</action-mappings>
<message-resources parameter="com.ssdw.ApplicationResources" />
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml" />
</plug-in>
</struts-config>
MemberActin.java
package com.ssdw.member.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import com.ssdw.member.service.MemberDaoImpl;
import com.ssdw.model.Member;

public class MemberAction extends DispatchAction {
private MemberDaoImpl memberDao;
protected ActionForward added(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response)throws Exception{
return mapping.findForward("");
}

protected ActionForward detail(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response)throws Exception{
String id=request.getParameter("memberId");
int memberId=(id!=null)?Integer.parseInt(id):-1;
Member member=(Member) getMemberDao().queryForObject(memberId);
request.setAttribute("member",member);
return mapping.findForward("success");
}

public MemberDaoImpl getMemberDao() {
return memberDao;
}

public void setMemberDao(MemberDaoImpl memberDao) {
this.memberDao = memberDao;
}
}
请问这是怎么回事?
...全文
67 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
interpb 2008-07-12
  • 打赏
  • 举报
回复
<bean id="member" class="com.ssdw.member.action.MemberAction">


改成 <bean id="/member" class="com.ssdw.member.action.MemberAction">


bean找不到 应该是名称不对
songfuqiang 2008-07-12
  • 打赏
  • 举报
回复
谢谢,我搞定了,我把public class ProductAction extends DispatchAction {}中的方法全部设置为public关键字就行了,以前是用的protected
Shine_Panda 2008-07-12
  • 打赏
  • 举报
回复
4楼正解
songfuqiang 2008-07-12
  • 打赏
  • 举报
回复
是啊,所以我两处都有配置啊!
zidasine 2008-07-12
  • 打赏
  • 举报
回复
你struts-config.xml中的action的type属性其实已经失效了客气不配置了
zidasine 2008-07-12
  • 打赏
  • 举报
回复
你已经用Spring 管理action 了
所以在Spring 中应该配成
<bean name="/member" class="com.ssdw.member.action.MemberAction">
songfuqiang 2008-07-12
  • 打赏
  • 举报
回复
不啊,member是在struts-config.xml配置中指定的
<action path="/member" parameter="action" scope="request" name="memberForm" type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="failure" path="/"> </forward>
<forward name="success" path="/strus_spring.jsp"> </forward>
</action>
</action-mappings>

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧