问题描述
本人小白,真心请教报错内容web.xml文件<?xmlversion="1.0"encoding="UTF-8"?><web-appversion="2.4"xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><!--struts2容器控制器--><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--spring容器配置--><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/classes/spring.xml</param-value></context-param><!--spring容器监听器--><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!--欢迎页面--><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>
struts.xml文件<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><packagename="default"extends="struts-default"><actionname="login"class="loginAction"method="login"><resultname="login">login.jsp</result><resultname="ok">loginOk.jsp</result><resultname="error">loginError.jsp</result></action></package></struts>
spring.xml文件<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd"><!--登录Action--><beanid="loginAction"class="com.ssh.web.LoginAction"></bean></beans>
导入的jar包在struts.xml中加入<constantname="struts.objectFactory"value="spring"/>则报以下错误LoginAction.java文件packagecom.ssh.web;publicclassLoginAction{privateStringname;privateStringpassword;publicStringlogin(){if((name.equals("")&&password.equals(""))||(null==name&&null==password)){return"login";}elseif("ssh".equals(name)&&"123456".equals(password)){return"ok";}else{return"error";}}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicStringgetPassword(){returnpassword;}publicvoidsetPassword(Stringpassword){this.password=password;}}
解决方案
解决方案二:
由spring接管struts实例产生
解决方案三:
spring.xml放错地方了吧
解决方案四:
引用2楼longtian1213的回复:
spring.xml放错地方了吧
试了放在WEB-INF下也不行
解决方案五:
引用1楼wobuxiangnila的回复:
由spring接管struts实例产生
能详细说一下怎么解决么
解决方案六:
spring.xml是放在src目录下的吗?
解决方案七:
引用5楼xuefeng0707的回复:
spring.xml是放在src目录下的吗?
是的
解决方案八:
你查看一下你的struts.xml文件中的loginaction路径是否配置正确,错误是由于你的struts.xml文件中找到不到loginaction引起的
解决方案九:
引用7楼u010800530的回复:
你查看一下你的struts.xml文件中的loginaction路径是否配置正确,错误是由于你的struts.xml文件中找到不到loginaction引起的
重新建一个项目,把那些相关的文件复制进去,结果能跑起来了。
解决方案十:
引用8楼u010765533的回复:
Quote: 引用7楼u010800530的回复:
你查看一下你的struts.xml文件中的loginaction路径是否配置正确,错误是由于你的struts.xml文件中找到不到loginaction引起的重新建一个项目,把那些相关的文件复制进去,结果能跑起来了。
那就很容易解释了,你的这个项目是不是引入(外部的)别人的项目?
解决方案十一:
你的struts.xml加载不到,将struts.xml放到类路径下,如果是开发阶段直接放到src/struts.xml,如果是部署,放到classes/目录下
解决方案十二:
applicationContext.xml默认要放在/WEB-INF/下
解决方案十三:
配置文件加载错误,然后你的spring配置文件是可以通过配置的,一般可以放在classpath下或者是WEB-INF
解决方案十四:
加载的Action的class属性是com.ssh.web.LoginAction,第二点如果你希望Spring使用你的Action,很明显你不应该配置action为Bean,如果Action需要注入Bean的话,可以使用注解进行扫描,将被依赖对象的创建交给Spring。
解决方案十五:
引用12楼zy353003874的回复:
配置文件加载错误,然后你的spring配置文件是可以通过配置的,一般可以放在classpath下或者是WEB-INF
顶
解决方案:
<context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/classes/spring.xml</param-value></context-param>
谁叫你这样配置的?如果你想要放在class下那么<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring.xml</param-value></context-param>
解决方案:
大哥你的spring是3.0版本的可是你的spring.xml头是2.0的http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">肯定加载不到