首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

structs2There is no Action 地图ped for namespace / and action name.有关问题

2012-09-02 
structs2There is no Action mapped for namespace / and action name..问题There is no Action mapped f

structs2There is no Action mapped for namespace / and action name..问题

"There is no Action mapped for namespace / and action name XXX" 估计是struts2入门都会遇到的问题

简单的总结一下今天的问题:

1.把struts.xml文件放在了WEB-INF文件夹里了,这是Struts1.x的思维定势,尽管资料上明确地指明要放在WEB-INF/classes文件里(也就是myeclipse的src文件下)

2.namespace属性的设置问题:这个属性在pakage和<s:form>中都有,如果是在struts.xml文件中的pakage的属性namespace上设置了,那么在写<s:form>的action时就要写成:namespace的属性+action或者namespace的属性/../action的名称(不需加后缀),介于namespace和action名之间可以有其他路径。举个例子:若你的struts.xml的文件如下配置,请留意namespace属性

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"    "http://struts.apache.org/dtds/struts-2.0.dtd"><struts>    <package name="struts2" namespace="/check"  extends="struts-default">        <action name="login" >            <result name="failure">/erro.jsp</result>            <result name="success">/index.jsp</result>        </action>    </package>

?? 然后是登陆界面的<s:form>

?? ?<s:form action="/check/login" method="POST" >

  <s:textfield name="username" label="用户名"></s:textfield>  <s:textfield name="pwd" label="密码"></s:textfield>  <s:submit value="登录"></s:submit>  </s:form>

?? ?<s:form>的namespace属性可写可不写,试了试乱写都没报错呢....因为配置了pakage的namespace的属性,<s:form>的action就可以配置为:action="check/login"或者action="check/a/login"等,struts在寻找action时会在namespace下的文件夹逐个找?直到找到为止。??

?

综上所述:注意namespace的用法,不配置的话,action的路径怎么写都可以,但最后的斜干后必须是动作名,如果配置了的话<s:form>的action属性就必须是namespace属性+中间可以加多级的路径也可以不加+动作名.

?

?

?

热点排行