2009-11-24 2 views
2

Я пытаюсь сделать что-то тривиальное и не вижу, что мне не хватает. У меня есть следующий web.xml ...web.xml фильтр-сопоставление не переадресация на struts

<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>*.do</url-pattern> 
</filter-mapping> 
<filter-mapping> 
    <filter-name>struts2</filter-name> 
    <url-pattern>*.action</url-pattern> 
</filter-mapping> 

И когда я использую URL, как «http://localhost:8080/gallery.action», все работает просто отлично (потому что «галерея» настроена должным образом в struts.xml, и т.д., и т.д.).

Если, однако, я ударил «http://localhost:8080/gallery.do» вместо этого, я получаю ответ 404. Tomcat, по-видимому, не перенаправляет запрос на стойки, так как нет входа в систему на стойках. Журналы Tomcat показывают только 404.

Я попытался изменить отображение фильтра на * .blah и ничего не работает, кроме * .action. Я не вижу противоречивой информации в файле web.xml по умолчанию.

Кто-нибудь знает, что мне не хватает?

+0

Действительно ли 'struts.xml' настроен, чтобы знать, что делать с' gallery.do'? Возможно, пересылка фильтра работает нормально, но Struts неправильно сконфигурирована. – skaffman

+0

struts.xml настроен для обработки имени действия «gallery» ... но ничего не знает о расширении .action (или .do). Я понимаю, что struts просто сбивает расширение, чтобы получить имя действия. –

+0

, кроме того, если я ввожу недопустимое имя действия, struts выполняет много записей ... если я вхожу в gallery.do, я абсолютно не делаю действия в журнале расположений, поэтому я думаю, что можно с уверенностью предположить, что он не получает этого , –

ответ

-1

Это потому, что у вас есть <servlet-mapping> для * .action, но не <servlet-mapping> для * .Не

+1

У меня нет отображения сервлета для * .action или * .do ... и я проверяю как web.xml, так и файл web.xml по умолчанию для серверов. –

+0

я вижу. просмотрел тег [struts2] – Salandur

2

Видимо Struts2 только распознает расширение .action по умолчанию и нужно настроить другие расширения, как желательные с помощью распорок. свойства файла:

struts.action.extension = действие, делать и т.д.

Это вводит в заблуждение, учитывая, что большинство документации описано, как направить распорок с помощью фильтра-отображение исключительно.

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

  • Нет связанных вопросов^_^