SSH集成中org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named '/add' is defined出错
---------ApplicationContext-common.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.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"></property>
<property name="url" value="jdbc:microsoft:sqlserver://localhost:1433;DataBaseName=pubs"></property>
<property name="username" value="sa"></property>
</bean>
<!-- 配置SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
<property name="dataSource" ref="dataSource"></property>
</bean>
</beans>
-----------------ApplicationContext-action.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 name="/add" class="com.east.ssh.web.action.UserInfoAction">
<property name="userBiz" ref="userBiz"></property>
</bean>
</beans>
-----------------ApplicationContext-bean.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="userImpl" class="com.east.ssh.dao.impl.UserDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="userBiz" class="com.east.ssh.biz.UserInfoBiz">
<property name="iuserDao" ref="userImpl"></property>
</bean>
</beans>
----------------jsp----------------
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>SSH集成</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<form action="add.do" method="post">
<table>
<tr>
<td>用户名</td>
<td><input type="text" name="userName"/></td>
</tr>
<tr>
<td>年龄</td>
<td><input type="text" name="userAge"/></td>
</tr>
<tr>
<td><input type="submit" value="确定"></td>
<td></td>
</tr>
</table>
</form>
</body>
</html>
[解决办法]
你把 <context-param>
<param-name>contextConfigLocation </param-name>
<param-value>classpath:applicationContext-*.xml </param-value>
</context-param>这里的地址重新写下,只写一个,放在哪就写哪,然后再试次
我刚才也出了这问题,整了好久,突然重新了遍地址就好使了...我也不知道为什么,你试试
[解决办法]
楼主看来还不会整合spring和struts啊
从你的action看,type配成了DelegatingActionProxy,那就一定要加一个plugin,写法是这样的
写在struts-config.xml里,message-resources节点的后面
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="classpath*:applicationContext-*.xml,/WEB-INF/applicationContext-*.xml " />
</plug-in>
而web.xml中
<context-param>
<param-name>contextConfigLocation </param-name>
<param-value>classpath*:applicationContext-*.xml,/WEB-INF/applicationContext-*.xml </param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener </listener-class>
</listener>
这两个可以不要
如果要用这两个整合的话,action的type不用改,struts-config.xml里也不用谢plugin。这种办法我不讲了,有兴趣自己去搜索一下。