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 : [code]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);
}
}[/code]
meu form
[code]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;
}
}[/code]