问题描述
最近在学习Struts2,在Tomcat6.0环境下手动创建Web应用,以下是具体的文件: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"><filter><filter-name>struts2</filter-name><filter-class>org.apache.Struts2.dispatcher.FilterDispatcher</filter-class></filter><filter-mapping><filter-name>Struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping><welcome-file-list><welcome-file>login.jsp</welcome-file></welcome-file-list><taglib><taglib-uri>/struts-tags</taglib-uri><taglib-location>/WEB-INF/struts-tags.tld</taglib-location></taglib></web-app>
struts.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd"><struts><packagename="strutsqs"extends="struts-default"><actionname="Login"class="LoginAction"><resultname="error">/error.jsp</result><resultname="success">/success.jsp</result></action></package></struts>
index.jsp<%@pagelanguage="java"import="java.util.*"contentType="text/html;charset=GBK"%><html><head><title>登录页面</title></head><body><!--提交请求参数的表单--><formaction="Login.action"method="post"><tablealign="center"><caption><h3>用户登录</h3></caption><tr><!--用户名的表单域--><td>用户名:<inputtype="text"name="username"/></td></tr><tr><!--密码的表单域--><td>密 码:<inputtype="text"name="password"/></td></tr><tralign="center"><tdcolspan="2"><inputtype="submit"value="登录"/><inputtype="reset"value="重填"/></td></tr></table></form></body></html>
LoginAction.javapublicclassLoginAction{privateStringusername;privateStringpassword;publicStringgetUsername(){returnusername;}publicvoidsetUsername(Stringusername){this.username=username;}publicStringgetPassword(){returnpassword;}publicvoidsetPassword(Stringpassword){this.password=password;}publicStringexecute()throwsException{if(username=="scott"&&password=="aaa")return"success";elsereturn"error";}}
Success.jsp<%@pagelanguage="java"contentType="text/html;charset=GBK"%><html><head><title>欢迎</title></head><body><h1>您已成功登录</h1></body></html>
在web-inf/lib目录下放置了:commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar、freemarker-2.3.16.jar、ognl-3.0.jar、struts2-core-2.2.1.jar、xwork-core-2.2.1.jar、javassist-3.7.ga.jarTomcat一直报错,请求的Login.ACTION不存在,分析是Struts2未能截获请求,应该怎么解决,希望高手指点,在线等
解决方案
解决方案二:
将org.apache.Struts2.dispatcher.FilterDispatcher该为org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter试试并将LoginAction继承ActionSupport,或者在配置action时加上method="execute"
解决方案三:
试着把action的命名空间加上。namespace="/test",以后开发大点的项目这个是一定需要的。
解决方案四:
还有就是要看下你的访问路径是不是正确。记得结贴啊!呵呵
解决方案五:
谢谢楼上,改了还是不行,我的LoginAction是直接放在classes目录里面的,所以应该不写命名空间也问题不大,继续等
解决方案六:
你的struts的配置文件引入到web.xml里没有
解决方案七:
哥们把日志贴出来,让大家帮你分析一下。这是一个思路,以后无论遇到什么问题,不仅仅是这一个问题,第一个想到的应该就是分析日志,分析日志可以把解决问题的时间压缩到最低。而不是盲目的在代码里晕眩。
解决方案八:
<filter-name>struts2</filter-name><filter-name>Struts2</filter-name>还有就是,在项目开发中类似的问题一定要注意。虽然有的时候大小写没有那么严格的区分。但是保持代码风格的统一是很好的编程习惯,你的问题我还是没有分析出来,最好把日志贴出来吧。
解决方案九:
我记得xml是严格区分大小写的,你在看看吧,祝你好运
解决方案十:
web.xml中,这个需要么?去掉试试。。<taglib><taglib-uri>/struts-tags</taglib-uri><taglib-location>/WEB-INF/struts-tags.tld</taglib-location></taglib>
解决方案十一:
如果你的xml文件时自己手动写的,那么你需要注意文件头信息是否正确,还有是否跟自己用的jar包匹配
解决方案十二:
谢谢大家,大小写的问题改过来了,还是不行,<taglib>部分是一开始不行,后来加上去的,删了也还是不行,已经搞了几天了,唉,郁闷
解决方案十三:
将org.apache.Struts2.dispatcher.FilterDispatcher该为org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter试试
解决方案十四:
引用1楼xhx409的回复:
将org.apache.Struts2.dispatcher.FilterDispatcher该为org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter试试并将LoginAction继承ActionSupport,或者在配置action时加上method="execute"
FilterDispatcher和StrutsPrepareAndExecuteFilter是Struts2.0和Struts2.1的区别无所谓的你的配置是路径不对代码应该没问题
解决方案十五:
学习,学习
解决方案:
<taglib><taglib-uri>/struts-tags</taglib-uri><taglib-location>/WEB-INF/struts-tags.tld</taglib-location></taglib>删除掉还有if(username=="scott"&&password=="aaa")改成if(username.equals("scott")&&password.equals("aaa"));;;;;等号是比较字符串的内存地址靠equals才是比较的内容
解决方案:
struts2包没有加全
解决方案:
楼主应该把web.xml中的taglib那个文字标签去掉然后再struts.xml中加namespace="/"这个问题本人也遇到过记得给分啊
解决方案:
该回复于2010-12-20 14:28:08被版主删除
解决方案:
<formaction="Login.action"method="post">改成<formaction="/Login.action"method="post">试试