Struts 2.2.1给出没有针对命名空间/和操作名称映射的Action

时间:2010-09-18 04:21:33

标签: struts2

我有一个简单的Struts 2应用程序,我使用Netbeans构建并部署到glassfish。当我将网络浏览器指向http://localhost:8080/Struts2Hello/login.action/时,会出现此错误:

没有针对命名空间/操作名称映射的操作。

我的操作名为“登录”。为什么它认为它被命名为“。”?

(为了达到这个目的,我还必须将javassist-3.7.ga添加到我的lib /目录中。我不知道为什么,但这是其他人为使Struts 2.2工作所做的事情。)< / p>

这是我的web.xml和struts.xml文件(是的,struts.xml被部署到WEB-INF / classes):

<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>

              

<package name="default" extends="struts-default" namespace="/">

    <action name="login" class="action.LoginAction">
        <result name="success">Welcome.jsp</result>
        <result name="error">Login.jsp</result>

    </action>
</package>

感谢。

迪安

4 个答案:

答案 0 :(得分:4)

我的问题是我在WEB-INF / dir中有.jsp文件,而不是更高一级。但是,针对该问题的奇怪错误消息。

答案 1 :(得分:0)

在struts.xml(或包含的任何其他struts配置文件)中,映射内容返回到原始Servlet / Jsp,即您不能将.jsp文件放在WEB-INF下。例如如果struts配置文件中的结果是:Welcome.jsp那么你应该把Welcome.jsp放在包根目录下,比如 网页 ... WEB-INF ... Welcome.jsp中 ...菜单 ......名为menu.xhtml

答案 2 :(得分:0)

更常见的是,即使struts.xml没有任何问题,当struts获取操作名称错误时,问题是jsp文件中缺少标记lib定义。

答案 3 :(得分:0)

一年后疯狂地回答这个问题,但是我遇到了同样的问题而且我很确定我已经准确地映射了我的所有动作,但是它显示了同样的错误....所以我只是清理了项目然后又跑了一下......工作得非常好......试一试!

我遇到过这么多次......所以为了避免这样的事情,我刚刚将“../eclipse.exe -clean”添加到快捷方式图标属性....这样可行,你可以忘记得到这样的错误,实际上并不是错误....!