Struts carregando uma <html:select/>

2 respostas
P
Está mostrando a tela de cadastro mas quando tento cadastrar gera esse erro:
java.lang.IllegalArgumentException: Cannot invoke com.myapp.struts.form.CadastroProdutoForm.setCategorias - argument type mismatch
	org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1778)
	org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:1759)
	org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1648)
	org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:1677)
	org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1022)
	org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
	org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
	org.apache.struts.util.RequestUtils.populate(RequestUtils.java:493)
	org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:816)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
Minha jsp:
<tr><td colspan="2" align="left"><font size="2">Categorias</font></td></tr>
                                <tr><td colspan="2" align="left">
                                        <html:select property="categorias">
                                            <html:optionsCollection name="listacategorias" value="id" label="nome"/>                                            
                                        </html:select>
                                </td></tr>
Meu action :
public class ProdutoAction extends DispatchAction {
    
    private final static String TELA = "telacadastro";
    private final static String SUCESSO = "sucesso";
    private final static String FALHA = "falha";
    
    
    public ActionForward create(ActionMapping mapping, ActionForm  form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        request.getSession().setAttribute("listacategorias",(Collection)new ProdutoBO().retornaCategorias());
        return mapping.findForward(TELA);
    }
    
    
    public ActionForward insert(ActionMapping mapping, ActionForm  form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        
        return mapping.findForward(SUCESSO);
    }
}
meu form
public class CadastroProdutoForm extends org.apache.struts.validator.ValidatorForm {
    
    private String nome;
    private String descricao;
    private String cor;
    private double peso;
    private double preco;
    private Vector categorias;
    
    public String getNome() {
        return nome;
    }
    
    public void setNome(String nome) {
        this.nome = nome;
    }
    
    public String getDescricao() {
        return descricao;
    }
    
    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }
    
    public String getCor() {
        return cor;
    }
    
    public void setCor(String cor) {
        this.cor = cor;
    }
    
    public double getPeso() {
        return peso;
    }
    
    public void setPeso(double peso) {
        this.peso = peso;
    }
    
    public double getPreco() {
        return preco;
    }
    
    public void setPreco(double preco) {
        this.preco = preco;
    }
    
    public Vector getCategorias() {
        return categorias;
    }
    
    public void setCategorias(Vector categorias) {
        this.categorias = categorias;        
    }
}

2 Respostas

P

alguem me ajude por favor!

P

consegui resolver! categorias deve ser um vetor de int para receber os values so <html:select>

Criado 24 de março de 2007
Ultima resposta 25 de mar. de 2007
Respostas 2
Participantes 1