Bom Dia Pessoal,
Estou desenvolvendo minha 1ª aplicação utilizando Struts !!!!!!
Tenho uma Classe Musica e uma Classe CD. conforme Abaixo :
@Entity
public class Musica {
@Id
@GeneratedValue
private int id;
private String Nome;
@ManyToOne
private Cd cd;
public int getCodigo() {
return id;
}
public void setCodigo(int codigo) {
this.id = codigo;
}
public String getNome() {
return Nome;
}
public void setNome(String nome) {
Nome = nome;
}
public Cd getCd() {
return cd;
}
public void setCd(Cd cd) {
this.cd = cd;
}
}
@Entity
public class Cd {
@Id
@GeneratedValue
private Long id;
private String titulo;
private String artista;
private String genero;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String getArtista() {
return artista;
}
public void setArtista(String artista) {
this.artista = artista;
}
public String getGenero() {
return genero;
}
public void setGenero(String genero) {
this.genero = genero;
}
}
estou com um problema para gravar uma musica. tenho uma classe Action, ActionForm e jsp.
Acho que o meu problema e com o atributo tipo Cd... pois eu tenho que gravar só o codigo do CD(tipo int) e não o objeto CD.. mas não sei como eu faço para resolver isso. !!!!!!!!!
segue abaixo os codigos :
ACTION FORMpublic class AdicionaMusicaForm extends ActionForm {
private Musica musica = new Musica();
public Musica getMusica() {
return musica;
}
}
public class AdicionaMusicaAction extends Action {
@Override
public ActionForward execute(ActionMapping map, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
Session session = new HibernateUtil().getSession();
AdicionaMusicaForm formulario = (AdicionaMusicaForm) form;
Musica musica = formulario.getMusica();
session.beginTransaction();
session.save(musica);
session.getTransaction().commit();
// ok...visualizacao
return map.findForward("ok");
}
<html:html>
<!--Tags importadas da taglig do struts-->
<html:form action="/adicionaMusica" >
CD:
<html:select property="musica.cd">
<html:option value=""> Selecione o CD</html:option>
<html:options collection="listaCds" property="id" labelProperty="titulo" />
</html:select> <br>
Nome
<html:text property="musica.nome"/><br/>
<html:submit > Enviar Dados</html:submit>
</html:form>
</html:html>
[color=red]ERRO !!!!![/color]
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: BeanUtils.populate
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
root cause
javax.servlet.ServletException: BeanUtils.populate
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:469)
org.apache.struts.chain.commands.servlet.PopulateActionForm.populate(PopulateActionForm.java:50)
org.apache.struts.chain.commands.AbstractPopulateActionForm.execute(AbstractPopulateActionForm.java:60)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
root cause
java.lang.IllegalArgumentException: argument type mismatch
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.apache.commons.beanutils.PropertyUtils.setSimpleProperty(PropertyUtils.java:1789)
org.apache.commons.beanutils.PropertyUtils.setNestedProperty(PropertyUtils.java:1684)
org.apache.commons.beanutils.PropertyUtils.setProperty(PropertyUtils.java:1713)
org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:1019)
org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808)
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:467)
org.apache.struts.chain.commands.servlet.PopulateActionForm.populate(PopulateActionForm.java:50)
org.apache.struts.chain.commands.AbstractPopulateActionForm.execute(AbstractPopulateActionForm.java:60)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
ESPERO QUE CONSIGA ME AJUDAR !!!!!!!!
