Потерял скин RichFaces при рендеринге через rich:panel и a4j:include

У меня есть h:selectOneMenu и a4j:commandButton, последний из которых повторно отображает компонент, называемый контентом, который выглядит следующим образом:

<rich:panel id="content">
 <a4j:include viewId="#{MyBacking.viewId}" />
</rich:panel>

Когда ответ отображается и компонент загружает содержимое новой страницы JSP, вкладки, содержащиеся на этой странице, используют скин, который отличается от остального приложения (я думаю, по умолчанию синий).

Я заметил, что после загрузки включенного кода, если я нажимаю кнопку «Обновить», хотя это заставляет bean-компонент повторно выдавать содержимое страницы, скин назначается правильно.

Мой веб-xml говорит:

<context-param>
 <param-name>org.richfaces.SKIN</param-name>
 <param-value>glassX</param-value>
</context-param>

<context-param>
 <param-name>org.richfaces.CONTROL_SKINNING</param-name>
 <param-value>enable</param-value>
</context-param>

<context-param>
 <param-name>org.richfaces.CONTROL_SKINNING_CLASSES</param-name>
 <param-value>enable</param-value>
</context-param>
  1. Является ли этот эффект тем, что RichFaces каким-то образом не контролирует рендеринг вкладок в этот момент?

  2. Как я могу убедиться, что вкладки соответствуют коже? Вся документация относится к переопределению скина, и я бы предпочел не переопределять скин со скином, который у него уже должен быть.

Спасибо


person volvox    schedule 29.01.2010    source источник


Ответы (2)


Я не уверен, решит ли это вашу проблему, однако вы можете попытаться заставить Richfaces избегать использования скина по умолчанию, установив определенный параметр web.xml:

<context-param>
    <param-name>org.richfaces.LoadStyleStrategy</param-name>
    <param-value>ALL</param-value>
</context-param>

Подробнее об этом ресурсе можно узнать здесь.

отредактировано, чтобы установить правильный param-value, как указано в комментариях.

person Romain Linsolas    schedule 11.02.2010
comment
На самом деле, для всех тех, кто после нас, мне нужно было установить <param-value>ALL</param-value>, хотя, что касается этого вопроса, на него был дан правильный ответ. Мне нужно было использовать ВСЕ, так как использование NONE (которое правильно обработало tabPanel) удалило все мои другие стили (шрифты и т. д.), как указано в ссылке romaintaz. Использование ALL исправило это, поэтому стиль использовался и был увековечен. Полностью заслуженные 100 повторений вкл. - person volvox; 11.02.2010
comment
Спасибо. Я отредактировал свой ответ, чтобы использовать правильный param-value. - person Romain Linsolas; 11.02.2010

Я только что заметил, что включил параметр styleClass, и, поскольку jsp теперь включен, у меня не было доступа к ссылке на фасет css.

person volvox    schedule 29.01.2010
comment
интересно, я только что удалил все ссылки на стили, а вкладки все еще синие. Хромой. - person volvox; 29.01.2010