Which Faces implementation? Which version?

What is the "long" version of Java? I'm wondering about the NullPointerException inside of java.lang.Throwable.

What is the content of the JSP?

Udo

Goyo Escobar Escalero wrote:

JAVA IS 1.4

I'm not using myFaces....

----Original Message Follows----
From: Udo Schnurpfeil <[EMAIL PROTECTED]>
Reply-To: "MyFaces Discussion" <users@myfaces.apache.org>
To: MyFaces Discussion <users@myfaces.apache.org>
Subject: Re: Custom Component
Date: Thu, 15 Sep 2005 12:30:49 +0200

Hi!

What is the Java version?
What is the MyFaces version?

Udo

Goyo Escobar Escalero wrote:

I've a problem extendign the UISelectOne component...

My classes:

package holderTagClasses;


import javax.faces.application.Application;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.el.MethodBinding;
import javax.faces.el.ValueBinding;
import javax.faces.event.ValueChangeEvent;
import javax.faces.webapp.UIComponentTag;
public class BDE_IAS_ComboTag extends UIComponentTag{

    String lista;
    String listaValores;
    String value;
    String valueChangeListener;

    public String getValueChangeListener() {
       return valueChangeListener;
   }

   public void setValueChangeListener(String valueChangeListener) {
       this.valueChangeListener = valueChangeListener;
   }

    public void setLista(String lista){
        this.lista=lista;
    }

    public String getLista(){
        return lista;
    }

    public void setListaValores(String lista){
        this.listaValores=lista;
    }

    public String getListaValores(){
        return listaValores;
    }

    public void setValue(String valor){
        this.value=valor;
    }

    public String getValue(){
        return value;
    }

    public void release() {
        // the super class method should be called
        super.release();
        lista=null;
        value=null;
        valueChangeListener=null;
        listaValores=null;
    }

    protected void setProperties(UIComponent component) {
        super.setProperties(component);

        if (lista != null) {
            if (isValueReference(lista)) {
ValueBinding vb = FacesContext.getCurrentInstance().getApplication().createValueBinding(lista);

                component.setValueBinding("lista", vb);
            } else {
                if(lista.length()==0){
                    lista=null;
                }
                else{
                    component.getAttributes().put("lista",lista);
                }
            }
        }

        if (listaValores != null) {
            if (isValueReference(listaValores)) {
ValueBinding vb =FacesContext.getCurrentInstance().getApplication().createValueBinding(listaValores);

                component.setValueBinding("listaValores", vb);
            } else {
                if(listaValores.length()!=0){
component.getAttributes().put("listaValores",listaValores);
                }
                else{
                    if(lista!=null){
                        if(lista.length()>0){
ValueBinding vb =FacesContext.getCurrentInstance().getApplication().createValueBinding(lista);

component.setValueBinding("listaValores", vb);
                        }
                    }
                }
            }
        }

        if (value!=null) {
            if (isValueReference(value)) {
ValueBinding vb = FacesContext.getCurrentInstance().getApplication().createValueBinding(value);

                component.setValueBinding("value", vb);
            }
            else {
                if(value.length()==0){
                    value=null;
                }
                else{
                    component.getAttributes().put("value",value);
                }
            }
        }


        if (valueChangeListener != null) {
           if (isValueReference(valueChangeListener)) {
               FacesContext context = FacesContext.getCurrentInstance();
               Application app = context.getApplication();
MethodBinding mb = app.createMethodBinding(valueChangeListener, new Class[] { ValueChangeEvent.class });
               component.getAttributes().put("valueChangeListener", mb);
           }
       }
    }

    public String getRendererType() { return "combo"; }
    public String getComponentType() { return "combo"; }

}




package rendererClasses;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Map;

import javax.faces.component.EditableValueHolder;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import javax.faces.render.Renderer;


public class ComboRenderer extends Renderer{

public void encodeBegin(FacesContext context, UIComponent combo) throws IOException {
        ResponseWriter writer = context.getResponseWriter();
        char salto ='\n';

        try{
            //ArrayList lista = (ArrayList)getLista();
ArrayList lista = (ArrayList)combo.getAttributes().get("lista");
            ArrayList listaValores= new ArrayList();;
            if(lista!=null){
listaValores = (ArrayList)combo.getAttributes().get("listaValores");
                if(listaValores==null){
                    listaValores=lista;
                }
                else{
                    if(listaValores.size()==0){
                        listaValores=lista;
                    }
                }
            }

            writer.startElement("select", combo);
            writer.writeAttribute("name", combo.getId(), "id");
            writer.writeAttribute("id", combo.getId(), "id");
            writer.writeAttribute("size", new Integer(1), "size");
            int i=0;
            String valor;
            for(i=0;i<lista.size();i++){
                valor = (String)combo.getAttributes().get("value");
                if(valor.equals(listaValores.get(i))){
writer.write("<option value=\""+listaValores.get(i)+"\" selected>"+lista.get(i)+"</option>"+salto);
                }
                else{
writer.write("<option value=\""+listaValores.get(i)+"\">"+lista.get(i)+"</option>"+salto);
                }

            }
            writer.endElement("select");
        }
        catch(Exception e){
            System.out.println(e);
        }

    }

    public void decode(FacesContext context, UIComponent component) {
        EditableValueHolder combo = (EditableValueHolder) component;
Map requestMap = context.getExternalContext().getRequestParameterMap();
        String clientId = component.getClientId(context);

        if(requestMap.containsKey("Combo"+component.getId())){
String submittedValue = (String) requestMap.get("Combo"+component.getId());
            combo.setSubmittedValue((String) requestMap.get(clientId));
        }
    }

}





package uIClasses;

import javax.faces.component.UISelectOne;




public class BDE_IAS_UICombo extends UISelectOne{


    public BDE_IAS_UICombo() {
        setRendererType("combo"); // this component has a renderer
    }
}


Faces-config:

<component>
       <component-type>combo</component-type>
         <component-class>uIClasses.BDE_IAS_UICombo</component-class>
   </component>

    <render-kit>
        <renderer>
<component-family>javax.faces.component.UISelectOne</component-family>
            <renderer-type>combo</renderer-type>
<renderer-class>rendererClasses.ComboRenderer</renderer-class>
        </renderer>
    </render-kit>


TLD:

<tag>
        <name>combo</name>
        <tag-class>holderTagClasses.BDE_IAS_ComboTag</tag-class>
        <body-content>JSP</body-content>
        <attribute>
            <name>lista</name>
        </attribute>
        <attribute>
            <name>listaValores</name>
        </attribute>
        <attribute>
            <name>value</name>
        </attribute>
        <attribute>
            <name>valueChangeListener</name>
        </attribute>
        <attribute>
            <name>id</name>
            <required>true</required>
        </attribute>
    </tag>


Someone can help me???

The error I've recieved from the servlet is:

[15/09/05 12:00:45:645 CEST] 2c602c60 WebGroup E SRVE0026E: [Error de servlet]-[]: java.lang.NullPointerException
    at java.lang.Throwable.<init>(Throwable.java)
    at java.lang.Throwable.<init>(Throwable.java)
at java.lang.NullPointerException.<init>(NullPointerException.java:61) at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:675) at javax.faces.webapp.UIComponentTag.encodeBegin(UIComponentTag.java:572) at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:459) at org.apache.jsp._pruebasIndividuales._jspService(pruebasIndividuales.jsp ) at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:344)

at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:683)

at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:781)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)

at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)

at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)

at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)

at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)

at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)

at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)

at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1019)

at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:592)

at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:204)

at com.ibm.faces.context.MultipartExternalContextImpl.dispatch(MultipartExternalContextImpl.java:320)

at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:295)

at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)

at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)

at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)

at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)

at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)

at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)

at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)

at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)

at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1019)

at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:592)

at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:204)

at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:125) at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:286)

at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)

at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)

at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)

at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)

at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:615)

    at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:439)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java)


But I'm unable to repair it...PLEASE HELP!!!! ;)






Reply via email to