我有一个简单的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>
感谢。
迪安
答案 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”添加到快捷方式图标属性....这样可行,你可以忘记得到这样的错误,实际上并不是错误....!