2013-06-26 5 views
3

Это мой первый проект в Струте. И когда я запускаю этот проект, я получаю ошибку:Struts2.3 ресурс не найден

"The requested resource is not available." 

Это то, что я сделал:

Я использую Struts 2.3.15. Это моя структура проекта: project structure.

Это index.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> 

Это HelloWorldAction.jsp:

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; 
    } 
} 

И еще одна вещь, которую я сделал, я скопировать вставили все библиотеки из извлеченных распорок папки в WEB-INF/lib папка.

Что мне не хватает и в чем проблема?

+0

Что Url вы войти в браузер? –

+2

'FilterDispatcher' устарел после Struts 2.1.3. –

+0

URL-адрес, который я вводил: http: // localhost: 8080/HelloWorldStruts2/index.jsp – user1788048

ответ

1

Я думаю, что у меня есть решение вашей проблемы, вам нужно добавить это в конфигурационный файл struts.xml, который должен находиться на пути к классу при запуске веб-приложения.

<action name="index"> 
    <result>/index.jsp</result> 
</action> 

попробовать

http://localhost:8080/HelloWorldStruts2/index.action 
+0

все еще получаю эту ошибку: Там нет действий отображается для пространства имен [/] и имя действия [], связанное с контентом path [/ HelloWorldStruts2]. описание Запрашиваемый ресурс не доступен – user1788048

+0

на самом деле? вы забыли поместить struts.xml в web-inf/classes? –

+0

имя действия должно быть 'index', эта ошибка не использует мои настройки ответа. –

0

Пожалуйста, удалите трассировку стека, это не ответ на ваш вопрос, поэтому вы НЕ должны ставить его в качестве ответа, причина, по которой вы получили эту ошибку, у вас слишком много банок, скопированных в «WEB-INF/lib', просто удалите все плагины, которые вам не нужны, есть аналогичная проблема: Similar Problem, это также может быть для вас решением

+0

Теперь я добавил только необходимые банки.Но теперь я получаю эту ошибку при запуске проекта: для пространства имен нет действий, отображаемых для пространства имен [/] и имени действия [], связанного с контекстом path [/ HelloWorldStruts2] – user1788048

+0

@ user1788048 try localhost: 8080/HelloWorldStruts2/hello.action, btw, вы должны установить строку в var'name', поэтому ее можно показать на странице – Jaiwo99

+0

. Я смотрел здесь, которая имеет ту же ошибку, что и у меня: http: //stackoverflow.com/questions/8991597/struts -hello-world-example-there-is-no-action-mapped-for-namespace-and-act, я изменил положение struts.xml, поскольку я не использую maaven, но все же он дает ту же ошибку. И я попробовал URL-адрес, который вы указали, но он показывает, что веб-страница не может быть отображена. – user1788048