HTTP Status 404 - Es ist keine Aktion zugeordnet-namespace [/] und action-name [login] im Zusammenhang mit Kontext Pfad [/struts2]
Habe ich gelernt, Theorie der Struts2 und jetzt üben. Probleme während der Ausführung des Projekts.Ich suchte in Google, in vielerlei Hinsicht, aber nicht finden konnten, das Ergebnis.Bitte helfen Sie mir. Unten ist der code.Bitte helfen Sie mir, Freunde...
Projekt Struktur:
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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>struts2</display-name>
<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>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
struts.xml
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="resources" value="ApplicationResources" />
<constant name="struts.devMode" value="true" />
<package name="default" extends="struts-default">
<action name="login" class="com.practice.structs.actions.LoginAction"
method="validateUser">
<result name="success">pages/homepage.jsp</result>
<result name="error">pages/login.jsp</result>
</action>
</package>
LoginAction.java
package com.practice.structs.actions;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
private String userName;
private String password;
public String validateUser(){
if(this.userName.equalsIgnoreCase("abc") && this.password.equalsIgnoreCase("abc"))
{
return "success";
}else{
addActionError(getText("error.login"));
return "error";
}
}
/**
* @return the userName
*/
public String getUserName() {
return userName;
}
/**
* @param userName the userName to set
*/
public void setUserName(String userName) {
this.userName = userName;
}
/**
* @return the password
*/
public String getPassword() {
return password;
}
/**
* @param password the password to set
*/
public void setPassword(String password) {
this.password = password;
}
}
login.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Login page</title>
</head>
<body>
<H1><I>Login Page</I></H1>
<s:actionerror />
<s:form action="login.action" method="post">
<s:textfield name="uname" key="label.username" size="20"/>
<s:password name="password" key="label.password" size="20"/>
<s:submit method="execute" key="label.login" align="center"/>
</s:form>
</body>
</html>
homepage.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Home Page</title>
</head>
<body>
<H2><I>Welcome</I></H2>
</body>
</html>
InformationsquelleAutor user2940073 | 2013-12-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
ändern Sie Ihren code wie folgt
Ihre Aktion in form ist Aktion.login und struts.xml ist die Anmeldung beide sollten gleich sein und auch fügen Sie den namespace
willkommen, hoffe, das hilft
Aber immer die gleichen Fehler.[XmlConfigurationProvider] Parsing configuration file [struts-default.xml] [XmlConfigurationProvider] Nicht finden Konfigurationsdateien der name struts-plugin.xml auslassen [XmlConfigurationProvider] Parsing configuration file [struts-plugin.xml] [XmlConfigurationProvider] Nicht finden Konfigurationsdateien der name struts.xml auslassen [XmlConfigurationProvider] Parsing configuration file [struts.xml]
bitte stellen Sie sicher, dass Sie Hinzugefügt haben alle library-Dateien,und überprüfen Sie die Lage des struts.xml ist es unter source-Paket
unten sind die Gläser in meiner Anwendung struct2 | |-src |-Ressourcen |-struts.xml |-ApplicationResources.Eigenschaften lib |-commons-fileupload-1.3.jar |-commons-io-2.2.jar |-commons-lang-2.4.jar |-commons-lang3-3.1.jar |-commons-logging-1.1.3.jar |-commons-logging-api-1.1.jar |-freemarker-2.3.19.jar |-javassist-3.11.0.GA.jar |-ognl-3.0.6.jar |-struts2-core-2.3.16.jar |-xwork-core-2.3.16.jar
InformationsquelleAutor Lijo
Ich weiß, diese Frage ist ein bisschen veraltet, aber ich dachte auch es ist erwähnenswert, für diejenigen, die passieren, um am Ende stolpern auf diesen post wieder und das Problem weiterhin Auftritt; vorausgesetzt, Sie sind 100% sicher, dass deine Zuordnungen richtig sind, und dass Ihre web.xml mit den entsprechenden filtern, versuchen Sie Folgendes:
Als visuelle Hilfe, Ihre WEB-INF sollte am Ende der Suche etwas wie dieses:
Wenn Sie das Problem weiterhin Auftritt, überprüfen Sie Ihre struts-mappings wieder, sowie Ihre web.xml
InformationsquelleAutor Ryan
Ich habe nicht genug Punkte, um zu reagieren Ryan ' s Kommentar noch rate ihm, aber was er sagt, ist eine gültige Lösung in konkreten Fällen, und ich werde sagen, warum.
Manchmal die Ordner, die Sie erstellen, in einem Projekt, nicht durchgeführt werden, da die Ressourcen der Anwendung, und Sie haben, um Sie zu konfigurieren.
Lassen Sie mich erklären, mich mit einem Beispiel aus der Praxis, die möglicherweise aufgetreten sind, einige Kumpels gefragt, die für dieses problem:
Beim entwickeln mit Eclipse, vielleicht werden Sie wählen Sie eine andere Projekt-explorer als die Eclipse-Standard - "Projekt-Explorer", wie der "Navigator" zum Beispiel.
Mit "Navigator" - Ansicht können Sie Ordner erstellen, aber diese Ordner sind nicht Paket Ressourcen (wie Sie sind, wenn Sie erstellen-Paket "Ressourcen" mit den Standard - "Projekt-Explorer"), so Struts2 nicht finden "struts.xml" die Datei zum konfigurieren der Aktionen.
So, das nur Ordner, dass Ihr Projekt die Prozess-als-Paket "Ressourcen" sind die, die unter WEB-INF Eclipse "Dynamic Web Projects" per default.
Also dann, seien Sie sicher, dass alle Konfigurationsdateien in einem "Paket Ressource".
InformationsquelleAutor AVI33
In Ihrem
LoginAction.java
Eigenschaften, die Sie nahm, sindprivate String userName;
private String password;
Aber Sie
login.jsp
Sie schrieb, als<s:textfield name="uname" key="label.username" size="20"/>
<s:password name="password" key="label.password" size="20"/>
Ändern
<s:textfield name="uname" key="label.username" size="20"/>
zu<s:textfield name="userName" key="label.username" size="20"/>
Ich hoffe, diese Antwort löst Ihr problem ...
InformationsquelleAutor Nimmagadda Gowtham
nehmen Sie die änderungen auf struts.xml Datei, fügen Sie
namespace="/"
- Attribut inwie
<package name="default" namespace="/" extends="struts-default">
InformationsquelleAutor Karthik Kompelli
Dieses problem zu lösen, ich hatte zum erstellen einer Klassen-Ordner in
WEB-INF
und Ort derstruts.xml
- Datei gibt. Dann setzte ich die.jsp
Dateien im web-Ordner und platziert'/'
vor der.jsp
- Dateien, zum Beispiel/x.jsp
InformationsquelleAutor JO1234