Обработка недействительного сопоставления в struts2

У меня проблема, я реализовал в struts2, и все идет хорошо, но когда я вставляю в браузер действие, которого не существует, например

http:mysite/someurl/somefake.action

у меня есть экран, где вы можете прочитать "Отчет о проблемах Struts

Struts обнаружил необработанное исключение:

Сообщения:
Нет действия, сопоставленного для пространства имен [/] и имени действия [Portaaasdasdl], связанного с контекстным путем []. "

вопрос в том:

как я могу узнать, когда у меня нет сопоставленного действия, и перенаправить его на jsp, где я могу сказать, что действие недействительно, или перенаправить на пользовательский jsp с сообщением «СТРАНИЦА НЕ НАЙДЕНА»

Я не могу решить, и я немного расстроен.


person pavul    schedule 04.07.2014    source источник
comment
Небольшого поиска по вопросам этого сайта будет достаточно. См. stackoverflow.com/q/20730967/573032.   -  person Roman C    schedule 05.07.2014
comment
См. stackoverflow.com/q/12795634/1700321 или stackoverflow.com/q/16293143/1700321.   -  person Aleksandr M    schedule 07.07.2014


Ответы (1)


Шаг 1. В web.xml

<error-page>
     <error-code>404</error-code>
     <location>/file_not_found_404.html</location>
</error-page>

Шаг 2. В папке веб-содержимого создайте file_not_found_404.html

<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
      <title>Insert title here</title>
   </head>
   <body>
      PAGE NOT FOUND
   </body>
 </html>

Примечание. Я не проверял, но думаю, что это сработает только для Apache tomcate 6.

person prem30488    schedule 05.07.2014
comment
спасибо, но первый вариант не работает, не знаю почему, проблема решилась тегом ‹default-action-ref /› - person pavul; 08.07.2014
comment
да. ты прав. Но то, что я предложил, касается как действий, так и имен страниц jsp в URL-адресе. Если кто-то поместит имя jsp в URL-адрес, мы можем создать пользовательскую страницу ошибки. В вашем случае ‹default-action-ref/› звучит хорошо для действий. - person prem30488; 08.07.2014