自定义JSF组件不能使用bean数据

时间:2018-11-15 15:03:56

标签: java jsf primefaces

我有一个自定义组件,可以打印扩展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);
}}

我正在从后备bean设置网格的值,并且试图从后备bean动态设置主题,如以下示例所示:

<y:Grid id="dataPreview"
              value="#{allModelsBean.dataModelValue}"
              theme="#{allModelsBean.testString}"
    />

“值”的值已按预期正确设置,但主题值未设置!。

如何从后备bean中设置主题属性的值?

已编辑:当我将主题设置为静态String时,set方法可以正常工作,如下所示:

  <y:Grid
            id="dataPreview"
            value="#{allModelsBean.dataModelValue}"
            theme="test-theme"

    />

0 个答案:

没有答案