ComboBox no Struts 1.x

Galera estou com uma dúvida nas propriedades do

<html:select name="helloWorldForm" property="lista" styleClass="combo"> <html:option value="0">--SELECIONAR--</html:option> <html:options collection="helloWorldForm" property="listaCombo"/> </html:select>

Não consigo carregar uma lista que se encontra no meu FormBean, o TomCat gera este log abaixo, olhei a documentação da apache http://struts.apache.org/1.x/struts-taglib/tlddoc/html/options.html mas não entendi muita coisa, se alguem puder me explicar os parametros da tag options eu agradeço.

[code]type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Cannot create iterator for com.teste.form.HelloWorldForm@cfe049
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Cannot create iterator for com.teste.form.HelloWorldForm@cfe049
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:538)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:412)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113)
org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96)
org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

javax.servlet.ServletException: javax.servlet.jsp.JspException: Cannot create iterator for com.teste.form.HelloWorldForm@cfe049
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:865)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794)
org.apache.jsp.helloWorld_jsp._jspService(helloWorld_jsp.java:99)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113)
org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96)
org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

javax.servlet.jsp.JspException: Cannot create iterator for com.teste.form.HelloWorldForm@cfe049
org.apache.struts.taglib.html.OptionsTag.getIterator(OptionsTag.java:419)
org.apache.struts.taglib.html.OptionsTag.doEndTag(OptionsTag.java:188)
org.apache.jsp.helloWorld_jsp._jspx_meth_html_005foptions_005f0(helloWorld_jsp.java:224)
org.apache.jsp.helloWorld_jsp._jspx_meth_html_005fselect_005f0(helloWorld_jsp.java:155)
org.apache.jsp.helloWorld_jsp._jspService(helloWorld_jsp.java:86)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113)
org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96)
org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.35 logs.

[/code]

Isso, por que, a collection deve ser a lista que é a propriedade do FormBean

    <html:select name="helloWorldForm"  
            property="lista" styleClass="combo">  
            <html:option value="0">--SELECIONAR--</html:option>  
            <html:options collection="listaCombo"/>  
        </html:select>  

Continua dando exception

javax.servlet.ServletException: org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Cannot find bean under name lista org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

O meu FormBean esta desta forma,

[code]/**
*
*/
package com.teste.form;

import org.apache.struts.action.ActionForm;

/**

  • @since 13/06/2012 14:34:58

  • @modified 13/06/2012 14:34:58
    */
    public class HelloWorldForm extends ActionForm {
    private static final long serialVersionUID = -473562596852452021L;
    private String message;
    private String[] lista;

    public String getMessage() {
    return message;
    }

    public void setMessage(String message) {
    this.message = message;
    }

    public String[] getLista(){
    return lista;
    }

    public void setLista(String[] lista){
    this.lista = lista;
    }
    }
    [/code]

obrigado!

O select será para múltipla seleção? Senão, o atributo lista deve ser apenas uma String e não um array.
Segundo, na resposta anterior, esqueci de retirar o atributo name da tag html:select ele é desnecessário no contexto.

Então, eu quero carregar uma combo de multipla seleção apartir de um array. abaixo segue o meu action e o struts-config.xml, tentei de diversas formas mas não estou conseguindo carregar uma simples combo com uma lista, obrigado mais uma vez pela ajuda.

[code]/**
*
*/
package com.teste.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.teste.form.HelloWorldForm;

/**
*

  • @since 13/06/2012 14:36:57

  • @modified 13/06/2012 14:36:57
    */
    public class HelloWorldAction extends Action {
    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response)
    throws Exception {

     HelloWorldForm hwForm = (HelloWorldForm) form;
    
     hwForm.setMessage("Hello World");
     
     String[] listaCombo = {"Solicitar", "Cancelar", "Lista de Trabalho", "Relatórios"};
     hwForm.setLista(listaCombo);	
    
     return mapping.findForward("success");
    

    }
    }
    [/code]

Meu struts-config.xml

[code]<?xml version="1.0" encoding="ISO-8859-1" ?>

<form-beans>
	<form-bean name="helloWorldForm" type="com.teste.form.HelloWorldForm"/>
</form-beans>

<global-forwards>
    <forward name="helloWorld" path="/helloWorld.do"/>
</global-forwards>

<action-mappings>
    <action path="/helloWorld" type="com.teste.action.HelloWorldAction" name="helloWorldForm">
    	<forward name="success" path="/helloWorld.jsp" />
    </action>    
</action-mappings>
[/code]

Talvez isto ajude