У меня есть пользовательский компонент, который печатает сетку, которая расширяет класс UIOutput
.
Мой пользовательский компонент выглядит так:
public class GridComponent extends UIOutput implements Widget {
static final String NAMESPACE = "http://com.example/ui/component";
static final String COMPONENT_FAMILY = "com.example.uicomponent.grid";
static final String COMPONENT_TYPE = "com.example.uicomponent.grid.control.component.GridComponent";
static final String RENDERER_TYPE = "com.example.uicomponent.grid.control.component.GridRenderer";
public GridComponent() {
this.setRendererType(RENDERER_TYPE);
}
@Override
public String getFamily() {
return COMPONENT_FAMILY;
}
@Override
public String resolveWidgetVar() {
return ComponentUtils.resolveWidgetVar(getFacesContext(), this);
}
public String getTheme() {
return (String) getStateHelper().eval(PropertyKeys.THEME, null);
}
public void setTheme(String theme) {
getStateHelper().put(PropertyKeys.THEME, theme);
}}
Я устанавливаю значение сетки из базового компонента и пытаюсь динамически установить тему из базового компонента, как показано в следующем примере:
<y:Grid id="dataPreview"
value="#{allModelsBean.dataModelValue}"
theme="#{allModelsBean.testString}"
/>
Значение «value» устанавливается правильно, как и ожидалось, но значение темы - нет!
Как мне установить значение атрибута темы из бэк-компонента?
Отредактировано: Когда я устанавливаю тему в статическую строку, метод set работает нормально, как показано ниже:
<y:Grid
id="dataPreview"
value="#{allModelsBean.dataModelValue}"
theme="test-theme"
/>