2013-05-09 5 views
0

Я хочу, чтобы создать приложение Struts, который отображает index.jsp файл, который содержит ссылку на search.jsp file.Directory структуры Struts 1.2 приложения, как показано нижеNullPointer Исключение в приложении Struts

Struts 1.2 Справочника Листинг

enter image description here

содержание web.xml как ниже

 <display-name>MiniHR</display-name> 
    <welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
    <jsp-config> 
    <taglib> 
    <taglib-uri>http://struts.apache.org/tags-html</taglib-uri> 
    <taglib-location>/WEB-INF/lib/struts-html.tld</taglib-location>  
    </taglib> 
    </jsp-config> 
    <servlet-mapping> 
     <servlet-name>action</servlet-name> 
     <url-pattern>*.</url-pattern> 
    </servlet-mapping> 
    <servlet> 
    <servlet-name>action</servlet-name> 
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> 
    <init-param> 
     <param-name>config</param-name> 
     <param-value>/WEB-INF/struts-config.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
</web-app> 

Содержимое распорок-config.xml как ниже

<global-forwards> 
    <forward name="search" path="/search.jsp"></forward> 
</global-forwards> 

Содержание index.jsp как ниже

<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> 
<body> 
    Add Employee<html:link forward="search">Search Employees</html:link> 
</body> 

Теперь, когда я запустить это приложение на затмить его отображение Состояние HTTP 500 -, как указано ниже

enter image description here

Я пробовал несколько решений, но ничто, кажется, не устраняет проблему. Небольшая помощь будет оценена.

Я добавил военный файл в следующий адрес

http://www.fileconvoy.com/dfl.php?id=g6daddfa41e8981249992832312c465146f9b6bc45

Спасибо

+0

Файл 'web.xml', о котором вы упомянули, является ли это полным содержимым файла web.xml? – Joshi

+0

да, это полный контент, который я пытался добавить struts-config в init-param, но его не работали какие-либо предложения. –

+0

Где находится привязка сервлетов действий в вашем web.xml? –

ответ

1

Struts предполагает, что все запросы идут через Struts ActionServlet, который вы Aparently не настроен. Настройка сервлета Struts с сервлет-отображением *.do:

<servlet> 
    <servlet-name>action</servlet-name> 
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>action</servlet-name> 
    <url-pattern>*.do</url-pattern> 
</servlet-mapping> 

Затем вам необходимо определить некоторые сопоставления действий в вашем struts.xml, который перенаправляет на ваш взгляд. Вы не можете напрямую обращаться к JSP, если используете теги struts в своем JSP.

Редактировать

Вы обновили свой вопрос с новым web.xml содержанием, так выше покрыта. Однако вы по-прежнему не можете напрямую обращаться к JSP. Вам нужно добавить сопоставление действий, которое перейдет к вашему представлению.

+0

Спасибо за ответ Nilsh Я тоже пробовал это, но он не работал для меня –

+0

В этом случае покажите полное содержимое 'struts.xml' и URL, к которому вы пытаетесь получить доступ. – NilsH

+0

Я загрузил файл войны ниже URL-адреса http://www.fileconvoy.com/dfl.php?id=g6daddfa41e8981249992832312c465146f9b6bc45 –

1

У вас есть html:link атрибут тега forward неправильный.

Согласно Struts link tag specification:

вперед - использовать значение этого атрибута в качестве имени глобального ActionForward следует искать, и использовать относительно модуля или контекста относительный URI найден там. Если форвард относится к модулю , он должен указывать на действие, а НЕ на страницу.

Итак, ваш глобальный вперед должен указывать на действие Struts, а не на страницу.

Надеюсь, это решит вашу проблему.

См. Соответствующий пример here.

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