Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

I am using JSF 1.2 and when I try to access my page I get this error: was not an instance of javax.faces.model.SelectItem.  Type found: java.util.ArrayList.

Posted on 2008-10-25
5
Medium Priority
?
2,718 Views
Last Modified: 2013-12-02
I am creating this simple web page that has a drop down list, the data is coming from the database and should display but I get this error:


Here is the code from the jsf

                        <h:selectOneMenu value="#{clients.code1}">
                              <f:selectItem value="#{clients.selectItems}"></f:selectItem>
                  </h:selectOneMenu>

Here is the code from the backing bean:

            try{
                  System.out.println("Test in list");
                  if( selectItems == null ) {
                        selectItems = new ArrayList<SelectItem>();
                        SearchUtilDao sutil = new SearchUtilDao();
                        System.out.println("Test in list");
                        ResultSet rs = sutil.doSearchAll("Codes", con);
                        while(rs.next()){
                              Codes cd = new Codes();
                              cd.setCode(rs.getString("CODE"));
                              cd.setId(rs.getInt("CODEID"));
                              selectItems.add(new SelectItem(cd.getId(), cd.getCode()));
                              System.out.println("returned data: " + cd.getCode());
                        }
                  }

                  return selectItems;


I am using JSF 1.2 on tomcat 6.  Thank you

LC
0
Comment
Question by:lasanac
  • 2
  • 2
5 Comments
 
LVL 20

Expert Comment

by:chaitu chaitu
ID: 22802921
what is the exception are you getting?
0
 
LVL 14

Accepted Solution

by:
Farzad Akbarnejad earned 2000 total points
ID: 22806412
Hello,
Try the following code:


    public SelectItem[] getSelectItems() {
        List selectItemsList = new ArrayList<Codes>();
        ResultSet rs = sutil.doSearchAll("Codes", con);
        SearchUtilDao sutil = new SearchUtilDao();            
        while(rs.next()){
            Codes cd = new Codes();
            cd.setCode(rs.getString("CODE"));
            cd.setId(rs.getInt("CODEID"));
            selectItemsList.add(cd);
        }        
        SelectItem[] selctItems = new SelectItem[selectItemsList.size()];
        int i = 0;
        for (Object o : selectItemsList) {
            Codes c = (Codes) o;
            selctItems[i++] = new SelectItem(c.getId(), c.getCode());
        }
        return selctItems;
    } 
    

Open in new window

0
 

Author Comment

by:lasanac
ID: 22840280
Here is the stack trace:

java.lang.IllegalArgumentException: Argument Error: An option for component j_id7 was not an instance of javax.faces.model.SelectItem.  Type found: java.util.ArrayList.
      at com.sun.faces.renderkit.RenderKitUtils.getSelectItems(RenderKitUtils.java:296)
      at com.sun.faces.renderkit.html_basic.MenuRenderer.getOptionNumber(MenuRenderer.java:647)
      at com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:763)
      at com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:278)
      at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:849)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:946)
      at javax.faces.render.Renderer.encodeChildren(Renderer.java:148)
      at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:825)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:936)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:942)
      at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:578)
      at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
      at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
      at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
      at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
      at org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:696)
      at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:667)
      at org.apache.jsp.index_jsp._jspService(index_jsp.java:59)
      at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
      at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
      at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      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:191)
      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:286)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
      at java.lang.Thread.run(Thread.java:619)
0
 

Author Comment

by:lasanac
ID: 22840438
FarzadA,

I tried your suggestion and I got basically the same error.  Do I have to right an conversion?

Stack Trace:

java.lang.IllegalArgumentException: Argument Error: An option for component j_id7 was not an instance of javax.faces.model.SelectItem.  Type found: [Ljavax.faces.model.SelectItem;.
      at com.sun.faces.renderkit.RenderKitUtils.getSelectItems(RenderKitUtils.java:296)
      at com.sun.faces.renderkit.html_basic.MenuRenderer.getOptionNumber(MenuRenderer.java:647)
      at com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:763)
      at com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:278)
      at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:849)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:946)
      at javax.faces.render.Renderer.encodeChildren(Renderer.java:148)
      at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:825)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:936)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:942)
      at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:578)
      at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
      at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
      at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
      at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
      at org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:696)
      at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:667)
      at org.apache.jsp.index_jsp._jspService(index_jsp.java:59)
      at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
      at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
      at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      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:191)
      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:286)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
      at java.lang.Thread.run(Thread.java:619)
0
 
LVL 14

Expert Comment

by:Farzad Akbarnejad
ID: 22842071
Hi,
Do you have problem yet? Are you sure to accept the solution?

-FA
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This exercise is about for the following scenario: Dmgr and One node with 2 application server. Each application server contains it owns application. Application server name as follows server1 contains app1 server2 contains app1 Prereq…
Introduction This article is the second of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers the basic installation and configuration of the test automation tools used by…
The viewer will learn how to implement Singleton Design Pattern in Java.
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.
Suggested Courses
Course of the Month10 days, 1 hour left to enroll

571 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question