Hello,
I would like to build my own widget, for that I want to extend a RowComponentTag to include Labels, Fields, ...
But I get some errors (see below)
Another question is, what is the best way to build your own widgets.
The first possibility is to extend from a ROWComponentTag, FieldComponentTag, ... and then put Labels, Fields, ... inside. Then use the componentbinding attribute to add the widget to a component.
The second possibility could be to design a jsp page with the enterprise client. Then use the rowinclude component to add the jsp page. For the jsp page you could write a managed bean.
Code:
public class VpsRow extends ROWComponentTag {
public VpsRow() {
super();
}
}
public void addRow (ActionEvent event) {
VpsRow row = new VpsRow();
}
Code:
2007-12-14 13:42:52,971 ERROR [http-8080-2] lifecycle.ApplyRequestValuesPhase (ApplyRequestValuesPhase.java:84) - java.lang.StringIndexOutOfBoundsException: String index out of range: -6
javax.faces.el.EvaluationException: java.lang.StringIndexOutOfBoundsException: String index out of range: -6
at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:130)
at org.eclnt.jsfserver.elements.BaseActionComponent.broadcast(BaseActionComponent.java:68)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:249)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:307)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:79)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.eclnt.jsfserver.util.ThreadingFilter.doFilter(ThreadingFilter.java:95)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.eclnt.jsfserver.util.CompressionFilter.doFilter(CompressionFilter.java:33)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -6
at java.lang.String.substring(Unknown Source)
at org.eclnt.jsfserver.elements.ComponentRepository.getTagNameForComponentTagClass(ComponentRepository.java:325)
at org.eclnt.jsfserver.elements.BaseComponentTag.<init>(BaseComponentTag.java:58)
at org.eclnt.jsfserver.elements.impl.ROWComponentTag.<init>(ROWComponentTag.java:12)
at de.vps.icms.ui.cardtyp.VpsRow.<init>(VpsRow.java:7)
at de.vps.icms.ui.cardtyp.CardMasterdataTemplate.onTemplate(CardMasterdataTemplate.java:81)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)
... 26 more
14.12.2007 13:42:52 org.eclnt.jsfserver.util.ThreadingFilter doFilter
SCHWERWIEGEND:
javax.servlet.ServletException: java.lang.StringIndexOutOfBoundsException: String index out of range: -6
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:209)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.eclnt.jsfserver.util.ThreadingFilter.doFilter(ThreadingFilter.java:95)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.eclnt.jsfserver.util.CompressionFilter.doFilter(CompressionFilter.java:33)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.faces.el.EvaluationException: java.lang.StringIndexOutOfBoundsException: String index out of range: -6
at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:130)
at org.eclnt.jsfserver.elements.BaseActionComponent.broadcast(BaseActionComponent.java:68)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:249)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:307)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:79)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
... 19 more
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -6
at java.lang.String.substring(Unknown Source)
at org.eclnt.jsfserver.elements.ComponentRepository.getTagNameForComponentTagClass(ComponentRepository.java:325)
at org.eclnt.jsfserver.elements.BaseComponentTag.<init>(BaseComponentTag.java:58)
at org.eclnt.jsfserver.elements.impl.ROWComponentTag.<init>(ROWComponentTag.java:12)
at de.vps.icms.ui.cardtyp.VpsRow.<init>(VpsRow.java:7)
at de.vps.icms.ui.cardtyp.CardMasterdataTemplate.onTemplate(CardMasterdataTemplate.java:81)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)
... 26 more