struts2 警告Could not find action or result

czb543411966 2009-09-12 10:10:53
TOMCAT上是这样显示的:
type Status report

message There is no Action mapped for namespace / and action name checkLogin.

description The requested resource (There is no Action mapped for namespace / and action name checkLogin.) is not available.



Could not find action or result
There is no Action mapped for namespace / and action name checkLogin. - [unknown location]
at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:177)
at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:47)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:458)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)




下面是 struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Sturts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"/>
<package name="Struts 2.0_login" extends="struts-default" namespace="/login">
<action name="checkLogin" class="com.loginAction" method="checkLogin">
<result name="success">/index.jsp</result>
<result name="login">/login.jsp</result>
</action>
</package>
</struts>


login.jsp
<%@ page language="java" pageEncoding="UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<body>
<center>
<br>
<h2>用户登录</h2>
<s:form action="checkLogin" namespace="/login" >
<s:textfield name="username" label="登陆名称"></s:textfield>
<s:textfield name="pwd" label="密码"></s:textfield>
<s:submit value="登录"></s:submit>
</s:form>
</center>

</body>

</html>
...全文
339 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsl198510 2009-09-14
  • 打赏
  • 举报
回复
把login.jsp文件放到login的文件夹里就可以了!多了一层
xiaozhangnima 2009-09-14
  • 打赏
  • 举报
回复
把你action贴出来
有success和login么?
另外去<include file="struts-default.xml"/> 和namespace
form里加上method="post"
bea_java 2009-09-14
  • 打赏
  • 举报
回复
action 路径配置错误,他的意思是说,你的struts2.xml中的配置文件找不到action 或者是<result
CHEN 2009-09-14
  • 打赏
  • 举报
回复
我们学的就是直接 在jsp中调用 login/checkLogin.action 就行了
redlotus_lyn 2009-09-14
  • 打赏
  • 举报
回复
配置文件中为什么要包含<include file="struts-default.xml"/>。
把它去掉尝试一下。
Leiffort 2009-09-13
  • 打赏
  • 举报
回复
namespace="/login" 配置文件里面的,还有页面的,都去掉试试。
jumpheightway 2009-09-13
  • 打赏
  • 举报
回复
namespace是指你action类的所在位置
如果类与配置文件在同一个文件夹下面,不能够配置namespace

培训:php,jsp,java,jee

联系QQ:492236022
czb543411966 2009-09-13
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 woming66 的回复:]
login/checkLogin.action
[/Quote]
哪里改呢
czb543411966 2009-09-13
  • 打赏
  • 举报
回复
以上几种办法都试了,但还是那个问题啊,
啊啊啊啊啊啊,彻底无奈了
czb543411966 2009-09-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 haxzheng 的回复:]
这里的namespace 多了一层吧
[/Quote]
多了一层
czb543411966 2009-09-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 feishare 的回复:]
namespace 的action 配错了
[/Quote]
哪里配错了,怎么配呢
woming66 2009-09-13
  • 打赏
  • 举报
回复
login/checkLogin.action
czb543411966 2009-09-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 robyjeffding 的回复:]
请求时:login/checkLogin.action即可!
[/Quote]
哪里的请求呢,怎么改
sinberuser 2009-09-13
  • 打赏
  • 举报
回复

<s:form action="checkLogin" namespace="/login" >
修改成下面这种方式试试
<s:url id="loginURL" action="checkLogin" namespace="/login"/>
<form method="post" action="<s:property value="loginURL"/>">
阿士匹灵 2009-09-13
  • 打赏
  • 举报
回复
学习
gerryliu 2009-09-13
  • 打赏
  • 举报
回复
看一下struts.xml文件是否在src根目录下,否则可能加载不到
config_man 2009-09-13
  • 打赏
  • 举报
回复
楼主试试7楼的。
robyjeffding 2009-09-13
  • 打赏
  • 举报
回复
请求时:login/checkLogin.action即可!
lee_09 2009-09-13
  • 打赏
  • 举报
回复
<action name="checkLogin" class="com.loginAction" method="checkLogin">
method属性值指的是提交请求的方式,只有get和post两种方式;
你method="checkLogin"这个写法意思是要指明action的checkLogin方法吗?
是的话是在jsp页面里引用的<s:form action="checkLogin!checkLogin" namespace="/login" >
haxzheng 2009-09-13
  • 打赏
  • 举报
回复
这里的namespace 多了一层吧
加载更多回复(3)

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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