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