Пользовательский компонент JSF не может использовать данные компонента - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть пользовательский компонент, который печатает сетку, которая расширяет класс 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"

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