命名空间[/]和操作名称错误没有映射的Action

时间:2015-12-10 02:20:20

标签: java configuration struts2 struts-action struts2-namespace

这是错误消息:

  

警告:找不到指定操作的配置:' welcome'在命名空间中:''。表格行动违约行为'属性的字面值。

我已经尝试将struts置于animateWithTextures:timePerFrame:resize:restore:之下,但它仍然无效。我已经被困在这里几天了,请帮忙。

struts.xml中

WEB-INF/classes

directory structure

的login.jsp

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 3.0//EN"
    "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default">
    <action name="login">
        <result>login.jsp</result>
    </action>
    <action name="welcome" class="com.struts3.LoginAction" method="execute">
        <result name="SUCCESS">welcome.jsp</result>
    </action>
</package>
</struts>

的welcome.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Login Page</title>
</head>
<body>
    <h3>Welcome to Struts 2</h3>
<s:form action="welcome">
    <s:textfield name="username" label="User Name"></s:textfield>
    <s:textfield name="password" label="Password" type="password"></s:textfield>
    <s:submit value="Login"></s:submit>
</s:form>   
</body>
</html>

的web.xml

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Welcome To Struts</title>
</head>
<body>
    <h3>Welcome <s:property value="username"/></h3>
</body>
</html>

error message error

1 个答案:

答案 0 :(得分:1)

struts.xml 配置文件必须位于类路径的根目录上,然后位于WEB-INF/classes上,而不是位于子包中。

应该放在src下的某个位置,并且在构建时将<{1}}复制到您最喜欢的构建工具(Eclipse,Ant,Maven,ecc)