Перезапись URL шва 2.2.0 не работает - PullRequest
3 голосов
/ 17 сентября 2009

Я пробую простой пример перезаписи URL, но он не работает для меня. Я использую Seam 2.2.0, развернутый на JBoss 5.1.0.

My pages.xml содержит:

 <page view-id="/html/index.xhtml">
    <rewrite pattern="/home" />
</page>

и

<page view-id="/html/common/redirect.xhtml" action="#{redirectAction.redirect}">
    <rewrite pattern="/link" />
    ...

Мои компоненты.xml содержат:

    <web:rewrite-filter view-mapping="*.seam"/>

Насколько я могу судить по документации, это должно быть все, что мне нужно. Однако ни одна из внутренних ссылок не выглядит иначе, и если ввести URL: http://mysite/home или mysite / link? Param = что-то, я просто получаю страницу 404. Чего мне не хватает?

Ответы [ 3 ]

0 голосов
/ 31 октября 2012

Из документации на шов:

"Параметр view-mapping должен соответствовать отображению сервлета, определенному для сервлета Faces в файле web.xml. Если не указан, фильтр перезаписи принимает шаблон * .seam."

0 голосов
/ 02 декабря 2012

Я не знаю, почему ваш подход не работает. Но не забывайте, что вы можете использовать viewName.page.xml файл для той же цели.
Например, поскольку имя вашей страницы - index.xhtml, вам нужно создать файл index.page.xml в той же папке, которая содержит файл index.xhtml (в вашем случае внутри папки html).

В index.page.xml файл добавить это.

<rewrite pattern="/home" />

Как вы уже делаете, ваш component.xml файл должен содержать строку

<web:rewrite-filter view-mapping="*.seam"/>

Снова разверните, и оно должно работать.

0 голосов
/ 23 сентября 2009

У меня была такая же проблема, когда я пытался перейти от фильтра перезаписи Tuckey к шву. После некоторых проб и ошибок я наконец-то заметил, что у меня есть page.xml для представления, но я добавил шаблон в main pages.xml. Первое, кажется, перезаписывает второе.

...