2015-12-10 119 views
0

這是錯誤消息:沒有映射爲命名空間操作[/]和動作名稱錯誤

警告:未找到指定的操作配置:在命名空間「歡迎」:「」。表單行爲默認爲「行爲」屬性的字面值。

我試圖把struts放在WEB-INF/classes下,但它仍然不起作用。我幾天前已經被困在這裏了,請幫忙。

struts.xml中

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

directory structure

的login.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> 

的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>Welcome To Struts</title> 
</head> 
<body> 
    <h3>Welcome <s:property value="username"/></h3> 
</body> 
</html> 

的web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
id="WebApp_ID" version="3.0"> 
<display-name>Basic Struts2</display-name> 
<welcome-file-list> 
    <welcome-file>/login.jsp</welcome-file> 
</welcome-file-list> 

<filter> 
    <filter-name>struts2</filter-name> 
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>struts2</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
</web-app> 

error message error

+0

標題中的錯誤消息和問題中的錯誤消息是不同的。那麼你會得到哪一個? 「DTD Struts Configuration 3.0」還沒有這樣的東西。顯示你的jsp。 –

+0

是的,它應該是'DTD Struts Configuration 2.5'。另外我發佈了我的jsp – Andy

+0

你沒有使用S2'2.5'。不要對'2.5'使用dtd。這只是一個警告。有什麼不工作? –

回答

1

的struts.xml配置文件必須在類路徑的根,則上WEB-INF/classes,而不是在子包。

應該某處src下放置,並你喜歡的構建工具(Eclipse的螞蟻,Maven的,ECC)被複制到WEB-INF/classes在編譯時

+0

所以我把我的** struts.xml **放在'src'下,但是它沒有把'struts.xml **應用到'WEB-INF/classes',我仍然得到相同的錯誤。 – Andy

+0

您的構建工具必須將struts.xml從其原始位置('src/whatever',例如'src/main/resources')複製到'WEB-INF/classes'。如果沒有,那麼在回到這個之前,你應該修復另一個問題。當它將複製'WEB-INF/classes'中的struts.xml時,它應該可以工作。 –

相關問題