当前位置: 代码迷 >> Java Web开发 >> Struts2老有关问题:There is no Action 地图ped for namespace / and action name logon
  详细解决方案

Struts2老有关问题:There is no Action 地图ped for namespace / and action name logon

热度:519   发布时间:2016-04-14 21:20:40.0
Struts2老问题:There is no Action mapped for namespace / and action name logon
烦死了,帮忙看看吧各位。[img=http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/10.gif]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="default" extends="struts-default" namespace="/">
<action name="logon" class="com.action.LoginAction" method="logon">
        <result name="input">/index.jsp</result>
        <result name="success" type="redirect">/success.jsp</result>
        <result name="error">/failed.jsp</result>
     </action>
</package>
</struts>

------解决思路----------------------
<action name="logon.*" class="com.action.LoginAction" method="logon">
        <result name="input">/index.jsp</result>
        <result name="success" type="redirect">/success.jsp</result>
        <result name="error">/failed.jsp</result>
     </action>
    </package>
</struts>

试试标红的地方
------解决思路----------------------
好几年不搞web了,<form action="/logon.action" method="post">  我乱猜的吗,加个"/"试试
------解决思路----------------------
jar包有冲突吧
------解决思路----------------------
诡异的问题可能就是缓存了,服务器部署的项目删了,再搞一次试试!
------解决思路----------------------
你的WEB.xml发一下
------解决思路----------------------
要不你像我这么配吧,比较方便
<action name="code.*" method="{1}" class="com.souyao.management.action.CodeAction" >
<result name="success">/management/codeIndex.jsp</result>
</action>
然后页面上写
<form action="login.login.action">
用通配符,你就不用一个函数配一个action了。
另外你的配发应该没问题,先发现web.xml的,内容,然后再看下你提交以后的URL发一下
------解决思路----------------------
感觉没什么问题啊,都对,你的BaseAction继承ActionSupport了吧?

------解决思路----------------------
没看出来有什么问题,你按照楼上传送门的做法也不好使吗?,你提交完以后浏览器的的URL发一下
------解决思路----------------------
把 struts.xml 中的 namespace="/" 去掉
------解决思路----------------------
我也感觉是缓存之类的问题,你重启下试试
还有,那个form里面的action最好直接写action类名不要加后缀,写了好像有警告
------解决思路----------------------
引用:
把 struts.xml 中的 namespace="/" 去掉


而且  在action文件里 重载方法public String execute()  return SUCCESS;  大写  
你试试
------解决思路----------------------
我把你代码复制下来在我这运行成功了
你重新新建一个工程在里面运行下看看?
------解决思路----------------------
<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:applicationContext*.xml</param-value>
  </context-param>
把* 去掉,!
<input type="submit" name="logon" value="登录"/>
name属性可以不要.
请求tomcat有没有报错!
------解决思路----------------------
我大概猜到你错哪里了,
你的applcationContext.xml文件没有,
.首先在src下添加
applcationContext.xml
然后
在里面添加两个Bean,(userDto,LoginAction)
把userDto注入到LoginAction
在把struts.xml中class="com.action.LoginAction" 改成class="loginAction",
最后看下你
struts-spring.jar添加了没
------解决思路----------------------
先在HTML中加个这
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>

然后用个base标签。。。<base href=<%=basePath%>/>
试试 ,不能的 再问我吧

------解决思路----------------------
引用:
我大概猜到你错哪里了,
你的applcationContext.xml文件没有,
.首先在src下添加
applcationContext.xml
然后
在里面添加两个Bean,(userDto,LoginAction)
把userDto注入到LoginAction
在把struts.xml中class="com.action.LoginAction" 改成class="loginAction",
最后看下你
struts-spring.jar添加了没


如果我只用struts2,那会怎么样??
  相关解决方案