我正在开发一个JSF组件库,我正在用Java EE 7教程中教的方法编写我的组件。
@FacesComponent("DemoMap")
public class MapComponent extends UICommand {
enum PropertyKeys {
alt, coords, shape, targetImage;
}
public String getAlt() {
return (String) getStateHelper().eval(PropertyKeys.alt, null);
}
public void setAlt(String alt) {
getStateHelper().put(PropertyKeys.alt, alt);
}
}
我想知道是否有任何方法可以自动生成自定义组件taglib(或者至少是属性部分)。
我觉得在组件类中声明属性,然后在taglib文件中再次声明属性有点烦人。
我找到了一种方法。我只需要使用FacesComponent注释的属性。
@FacesComponent(createTag = true, namespace = "http://myNamespace", tagName = "myComponent", value = "myComponent")
然而,IDE(至少是Netbeans)将无法自动完成组件属性,这是一个巨大的缺点。如果有@ComponentAttribute注释或类似的东西,我不会介意。
我最终选择继续使用taglib文件。