package com.tutorialspoint.struts2;

public class HelloWorldAction{
   private String name;

   public String execute() throws Exception {
      return "success";
   }

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }
}

índice.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
   pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
   <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Hello World</title>
</head>
<body>
   <h1>Hello World From Struts2</h1>
   <form action="hello">
      <label for="name">Please enter your name</label><br/>
      <input type="text" name="name"/>
      <input type="submit" value="Say Hello"/>
   </form>
</body>
</html>

struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
   "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
   "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
   <package name="helloworld" extends="struts-default">

      <action name="hello" 
            class="com.tutorialspoint.struts2.HelloWorldAction" 
            method="execute">
            <result name="success">/HelloWorld.jsp</result>
      </action>
   </package>
</struts>

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_3_0.xsd"
   id="WebApp_ID" version="3.0">

   <display-name>Struts 2</display-name>
   <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
   </welcome-file-list>
   <filter>
      <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>
</web-app>

HelloWorld.jsp

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Hello World</title>
</head>
<body>
   Hello World, <s:property value="name"/>
</body>
</html>

De este código me han escribir por Ejemplo: hola Mundo En Struts, Pero estoy recibiendo de Error :

De Estado HTTP 404 – no Hay ninguna Acción asignada para el espacio de nombres /y el nombre de la acción index.

soy nuevo en struts y tratar de Entender Mvc struts Framw trabajo, Pero no sé que aquí estoy haciendo un Error cuando estoy perdiendo esto me ayude por favor, ¿cómo voy a Arreglar

  • Creo que es necesario que se extiende a com.opensymphony.xwork2.ActionSupport en su Clase de Acción
InformationsquelleAutor user2794306 | 2013-10-23

4 Comentarios

  1. 2
    1. Utilizar el nuevo filtro de

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

      lugar de la antigua

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

      a menos que usted está usando una versión muy antigua de Struts2 (2.0, por ejemplo).

    2. Su web.xml descriptor de despliegue está en mal estado: usted está diciendo que es 3.0, la vinculación de 2.5 xmlns:web.

      Si usted tiene un Contenedor de Servlet 3.0 (Java EE 6) uso:

      <web-app          xmlns="http://java.sun.com/xml/ns/javaee"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
                               http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
                      version="3.0">

      Si usted tiene un Servlet 2.5 Contenedor (Java EE 5) uso:

      <web-app          xmlns="http://java.sun.com/xml/ns/javaee"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
                               http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
                      version="2.5">
    3. Especificar el espacio de nombres en su declaración del paquete, así que cuando usted va a añadir nuevos paquetes que no tengas problemas:

      <package name="helloworld" extends="struts-default" namespace="/" >
    4. No hay necesidad de especificar el método en Acción config si es execute(), y no hay necesidad de especificar el resultado si es "success":

      <action name="hello" class="com.tutorialspoint.struts2.HelloWorldAction" >
          <result>/HelloWorld.jsp</result>
      </action>
    5. Mejor uso de DOCTYPE de HTML5 y UTF-8 Caracteres, si es posible.

  2. 0

    En su Struts.xml se han dado

    <package name="helloworld" extends="struts-default"> Después de tratar de cambiar a

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

    Espero que esta respuesta se soluciona el problema …

  3. 0

    Limpiar el directorio de la aplicación, pero lo más importante es que veo que le falta el espacio de nombres.

    Muestra la entrada del paquete es
    enter code here

    El nombre del paquete es un nombre lógico que se le dé , pero el espacio de nombres debe ser «/» o si hay cualquier otro contexto, a continuación, que el nombre de

  4. 0

    A nadie todavía experimentando estos problemas, por favor, eche un vistazo a mi respuesta en aquí.

    Esto me ayudó después de luchar durante casi una hora. He seguido los tutoriales paso a paso y todavía tengo el error.

    Hágamelo saber si me sirvió. Feliz de codificación 🙂

Dejar respuesta

Please enter your comment!
Please enter your name here