JSF h: outputStylesheet преобразователь - динамический CSS? - PullRequest
4 голосов
/ 05 января 2012

Я только что заметил, <h:outputStylesheet/> имеет атрибут конвертера. После подключения к нему фиктивного (сквозного) преобразователя ничего не произошло. При ближайшем рассмотрении кажется, что конвертер даже не вызывается, несмотря на нажатие кнопки обновления браузера.

Этот атрибут хорош для чего-либо? Это просто побочный эффект различных дизайнерских решений?

Причина, по которой я спрашиваю, заключается в том, что было бы неплохо выполнить некоторую обработку CSS на стороне клиента или сервера с less или аналогичным, и я подумал, что этот атрибут может помочь.

1 Ответ

12 голосов
/ 05 января 2012

Этот атрибут хорош для чего-либо? Это просто побочный эффект различных дизайнерских решений?

Это действительно "по замыслу", так как компонент расширяется UIOutput. Он действительно не использует конвертер ни для чего.


Причина, по которой я спрашиваю, состоит в том, что было бы неплохо выполнить некоторую обработку CSS на стороне клиента или сервера с меньшим или аналогичным, и я подумал, что этот атрибут может помочь.

Вы можете просто использовать EL обычным способом в ресурсах CSS, загруженных <h:outputStylesheet>. Первоначально это было реализовано для правильного разрешения ресурсов фонового изображения.

.some {
    background-image: url(#{resource[images/some.png]});
}

В приведенном выше примере предполагается, что изображение находится в /resources/images/some.png. Если вы используете библиотеку, вам нужно добавить префикс имени ресурса к libraryname:.

.some {
    background-image: url(#{resource[somelibrary:images/some.png]});
}

Предполагается, что изображение находится в /resources/somelibrary/images/some.png.

Но кроме этого, вы можете в основном использовать EL в ресурсе CSS для всего остального. Например. динамическое разрешение цветов, шрифтов и т. д.

.some {
    color: #{theme.color};
    font: #{theme.font};
}

Где #{theme} может быть сеансом или управляемым приложением bean-объектом.

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