我正在阅读核心JavaServer Faces(3e)书。getClientBehaviors()方法没有从UIComponentBase继承,同时扩展了UIInput
我想从本书的第11章运行ajax spinner代码。
我正在使用Oracle企业包进行eclipse,weblogic 10.3.5服务器& Mojarra impl。
但UISpinner类表示以下错误消息:
“的类型UISpinner必须实现继承抽象方法 ClientBehaviorHolder.getClientBehaviors()“
然而,如每JSF spec - UIComponentBase类实现由UISpinner类继承的getClientBehaviors()方法。仍然为什么我得到这个错误?请帮忙。
下面是UISpinner类实现:
package com.corejsf;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import javax.faces.component.FacesComponent;
import javax.faces.component.UIInput;
import javax.faces.component.behavior.ClientBehavior;
import javax.faces.component.behavior.ClientBehaviorHolder;
import javax.faces.convert.IntegerConverter;
@FacesComponent("com.corejsf.Spinner")
public class UISpinner extends UIInput implements ClientBehaviorHolder {
private static List<String> eventNames = Arrays.asList("click");
public UISpinner() {
setConverter(new IntegerConverter());
// to convert the submitted value
setRendererType("com.corejsf.JSSpinner");
// this component has a renderer
}
public String getDefaultEventName() { return "click"; }
public Collection<String> getEventNames() { return eventNames; }
}