JSF 2 распознаватель для весны 3 - PullRequest
0 голосов
/ 09 февраля 2012

У меня работает мультимодульный проект jsf 2 (primefaces) + spring 3.

Spring bean сгруппированы по доменной логике в разные модули многократного использования. Как бы то ни было, все мои xhtml-страницы и ресурсы помещены в военный модуль.

Теперь мне нужно переместить некоторые страницы и ресурсы в один из моих модулей, потому что он не должен быть развернут в производстве.

Я видел, что весной есть бин viewResolver, которые могут отображать логические имена на страницы и ресурсы в другом модуле, и я могу использовать это логическое имя, чтобы определить его в моем модуле войны, не зная или не имея ссылки на ресурс из другого модуля.

Мне не очень понятно, как этого добиться? Можете ли вы указать мне пример или блог или какой-либо совет?

1 Ответ

3 голосов
/ 09 февраля 2012

В JSF этого можно добиться, расширив грани DefaultResourceResolver

public class PackegedResourceResolver extends DefaultResourceResolver {

    @Override
    public URL resolveUrl(String resource) {
        URL resourceUrl = super.resolveUrl(resource);

        if (resourceUrl == null) {
            resourceUrl = PackegedResourceResolver.class.getResource("/META-INF/pages/" + resource);
        }

        return resourceUrl;
    }

}

Зарегистрируйте его в web.xml:

<context-param>
    <param-name>facelets.RESOURCE_RESOLVER</param-name>
    <param-value>com.example.facelets.PackegedResourceResolver</param-value>
</context-param>

PackegedResourceResolver будет использовать распознаватель ресурсов по умолчанию и, если ничего не будет найдено, будет выглядеть под /WEB-INF/pages каждой банки в вашем classpath. Это означает, что вы можете поместить свою .xhtml страницу под /META-INF/pages внутри любых jar-файлов (модулей), которые доступны в classpath.

С небольшими изменениями этот подход также может быть использован для сокрытия .xhtml источников в / WEB-INF / dir вашей войны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...