2013-05-13 2 views
0

У меня есть проект Struts 2 со следующей структурой каталогов. Но когда я пытаюсь запустить этот проект с помощью Eclipse на Tomcat 7, он дает мне ошибку 404.404 при запуске проекта через eclipse на Tomcat

enter image description here

Struts.xml:

<?xml version="1.0" encoding="UTF-8"?> 

<struts> 
    <action name="login" class="com.actions.LoginAction" method="execute"> 
    <result name="success">/jsp/login.jsp</result> 
    </action> 
</struts> 

login.jsp:

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Login Page</title> 
</head> 
<body> 
    <s:form action="login" method="post"> 
    Login name : <input type="text" value="name"/> 
    </s:form> 
</body> 
</html> 

При управлении на пути http://localhost:8080/StrutsPro/jsp/login.jsp, это дает HTTP 404, почему?

ответ

0

Согласно вашей структуре кода, вы не имеете index.jsp/html в своей папке с крышей проекта. При запуске сервера он сначала обнаруживает index.html/jsp по умолчанию. Если он недоступен, он вернет ошибку 404. Чтобы исправить это, вы можете добавить следующие строки в файл web.xml,

<welcome-file-list> 
<welcome-file>/jsp/login.jsp</welcome-file> 
</welcome-file-list> 

Сохранить все изменения и запустить свой сервер. Если проблема снова существует, вам необходимо проверить конфигурационный файл Struts и путь сборки.

+0

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

0

Ваш проект действительно странный.

Кстати, вы должны:

  • <package> объявить в вашем struts.xml; Действия не проходят непосредственно внутри элемента <struts>;

  • предоставить этот пакет "/ StrutsPro" namespace;

  • объявить метод для проверки учетных данных пользователя в вашем LoginAction (то execute() откроет страницу JSP должны быть заполнены пользователем, и tryToLogin(), например, будет получать данные, поступающие из POST и попытаться проверять их по отношению к базе данных); альтернативно, вы можете указать два разных действия вместо одного действия с двумя методами, это зависит от вас;

  • введите <s:submit /> кнопку внутри вашего <s:form>, чтобы отправить данные в метод входа/действие;

  • назовите URL-адрес, указывающий на свое действие, а не на ваш JSP. JSP - это представление, оно всегда возвращается контроллером, что в Struts2 является действием. Вы запускаете действие, действие дает вам оцененный JSP. Вы не запускаете JSP.

Например, вы должны позвонить: http://localhost:8080/StrutsPro/login.action или http://localhost:8080/StrutsPro/login.do, в соответствии с расширением вы даете действия в web.xml

0

Попробуйте этот ответ:

логин.JSP

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Login Page</title> 
</head> 
<body> 
    <s:form action="login" method="post"> 
      Login name : <s:textfield name="name"/> 
      <s:submit value="Click Me" name="Click Me"></s:submit> 
    </s: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> 
<package name="default" namespace="/" extends="struts-default"> 
<action name="login" class="com.actions.LoginAction"> 
<result name="success">/jsp/login.jsp</result> 
</action> 
</package> 
</struts> 

LoginAction.java

private String name; 

//Create setter and getter methods for NAME. 

public String execute(){ 
    return SUCCESS; 
} 

Вы можете сохранить все изменения и перезапустите сервер. Для доступа к странице вы вводите url http://localhost:8080/StrutsPro/login.action

Надеюсь, это вам поможет.

+0

Спасибо за ответ, но все равно не работает. –

+0

Можете ли вы разместить сообщение об ошибке? – vijayr

0

404 status status на самом деле означает, что ресурс по данному URL недоступен.

Чтобы запросить ресурс с сервера, убедитесь, что он действительный и компилируемый, содержащий taglib definitions, включенный в документ.

<%@ taglib prefix="s" uri="/struts-tags" %> 

Вы не должны получить доступ к JSP-страницы непосредственно в URL. Используйте action configuration, который возвращает результат диспетчера.

<action name="UnderConstruction"> 
    <result>/UnderConstruction.jsp</result> 
</action> 
0

им новые для распорок и я столкнулся с той же ошибкой. Вместе с 404 в консоли он имеет ошибку UnableToLodaConfiguration, хотя я уже установил правильную конфигурацию struts.xml. Кто-то посоветовал мне переместить мое рабочее пространство с рабочего стола на C: \, и это, скорее всего, сработало.

+0

Это не удивительно; скорее всего, путь «Рабочий стол» имел место в имени, которое иногда может вызывать Tomcat и другие Java-ish вещи. –

1

проверьте вместо этого web.xml.

еще положить все .jsp файлов в папке WebContent

Смежные вопросы