Oi galera, to quebrando cabeça aqui pra fazer um sistema web, com as tecnologias citadas acima, mas me deparei com um erro q não tô conseguindo solucionar, então vim aqui pedir a ajuda de vcs;
o salvamento está sendo feito normalmente, mas quando clico em Atualizar ou Excluir acontece o erro:
Meu xhtml está assim:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
xmlns:tr="http://myfaces.apache.org/trinidad">
<ui:composition template="template.xhtml">
<ui:define name="titulo">Local de Trabalho</ui:define>
<ui:define name="content">
<div id="formulario"><h:panelGrid columns="3">
<h:outputText value="Local de Trabalho:" />
<h:inputText id="localtrabalho"
value="#{localtrabalhoController.localtrabalho.nomeempresa}"
required="true" requiredMessage="Campo obrigatório" />
<h:message for="localtrabalho" /><br />
</h:panelGrid> <h:panelGrid columns="2">
<h:commandLink action="#{localtrabalhoController.salvar}">
<h:graphicImage value="/imagens/site/salvar.gif"
style="border: none;" alt="Salvar" />
</h:commandLink>
</h:panelGrid><br /> <rich:dataTable id="local" value="#{localtrabalhoController.todos}"
rendered="#{not empty localtrabalhoController.todos}" var="l"
rows="15">
<rich:column>
<f:facet name="header">
<h:outputText value="Id" />
</f:facet>
<h:outputText value="#{l.idlocaltrabalho}" />
</rich:column>
<rich:column>
<f:facet name="header">
<h:outputText value="Descrição" />
</f:facet>
<h:outputText value="#{l.nomeempresa}" />
</rich:column>
<rich:column>
<h:commandLink value="Atualizar"
action="#{localtrabalhoController.editar}" />
<f:facet name="header">
<h:outputText value="Atualizar" />
</f:facet>
</rich:column>
<rich:column>
<h:commandLink value="Excluir"
action="#{localtrabalhoController.excluir}" />
<f:facet name="header">
<h:outputText value="Excluir" />
</f:facet>
</rich:column>
<f:facet name="footer">
<rich:datascroller />
</f:facet>
</rich:dataTable></div>
</ui:define>
</ui:composition>
</html>
Meu controller tá assim:
package br.org.creapi.controller;
import javax.annotation.Resource;
import javax.faces.component.UIComponent;
import javax.faces.component.UIParameter;
import javax.faces.event.ActionEvent;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import br.org.creapi.dao.DaoGenerico;
import br.org.creapi.entities.Localtrabalho;
@Controller("localtrabalhoController")
@Scope("session")
public class LocaltrabalhoController {
private Localtrabalho localtrabalho;
private DataModel model;
public Localtrabalho getLocaltrabalho() {
return localtrabalho;
}
public void setLocaltrabalho(Localtrabalho localtrabalho) {
this.localtrabalho = localtrabalho;
}
public DataModel getModel() {
return model;
}
public void setModel(DataModel model) {
this.model = model;
}
public DaoGenerico<Localtrabalho, Integer> getLocaltrabalhoDao() {
return localtrabalhoDao;
}
public void setLocaltrabalhoDao(DaoGenerico<Localtrabalho, Integer> localtrabalhoDao) {
this.localtrabalhoDao = localtrabalhoDao;
}
@Resource
private DaoGenerico<Localtrabalho,Integer> localtrabalhoDao;
public LocaltrabalhoController(){
}
public String novoLocal(){
this.localtrabalho = new Localtrabalho();
return "formLocaltrabalho";
}
public DataModel getTodos(){
return model = new ListDataModel(localtrabalhoDao.todos());
}
public Localtrabalho getLocaltrabalhoParaEditarExcluir(){
Localtrabalho localtrabalho = (Localtrabalho)model.getRowData();
return localtrabalho;
}
public String editar(){
setLocaltrabalho(getLocaltrabalhoParaEditarExcluir());
return "sucesso";
}
public String salvar(){
if (localtrabalho.getIdlocaltrabalho()==null){
localtrabalhoDao.salvar(localtrabalho);
}else{
localtrabalhoDao.atualizar(localtrabalho);
}
return "sucesso";
}
public String excluir(){
Localtrabalho localtrabalho = getLocaltrabalhoParaEditarExcluir();
localtrabalhoDao.excluir(localtrabalho);
return null;
}
public void escolheLocal(ActionEvent event){
UIComponent link = event.getComponent();
UIParameter param = (UIParameter)link.findComponent("editId");
Long id = (Long)param.getValue();
//this.localtrabalho = this.getTodos().get(id.intValue()-1);
}
}
Meu bean tá assim:
package br.org.creapi.entities;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name = "localtrabalho")
public class Localtrabalho implements java.io.Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private Integer idlocaltrabalho;
private String nomeempresa;
private Set<Profissional> profissionals;
public Localtrabalho() {
}
public Localtrabalho(Integer idlocaltrabalho) {
this.idlocaltrabalho = idlocaltrabalho;
}
public Localtrabalho(Integer idlocaltrabalho, String nomeempresa,
Set<Profissional> profissionals) {
this.idlocaltrabalho = idlocaltrabalho;
this.nomeempresa = nomeempresa;
this.profissionals = profissionals;
}
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "idlocaltrabalho", unique = true, nullable = false)
public Integer getIdlocaltrabalho() {
return this.idlocaltrabalho;
}
public void setIdlocaltrabalho(Integer idlocaltrabalho) {
this.idlocaltrabalho = idlocaltrabalho;
}
@Column(name = "nomeempresa", length = 60)
public String getNomeempresa() {
return this.nomeempresa;
}
public void setNomeempresa(String nomeempresa) {
this.nomeempresa = nomeempresa;
}
@OneToMany(fetch = FetchType.LAZY, mappedBy = "localtrabalho")
public Set<Profissional> getProfissionals() {
return this.profissionals;
}
public void setProfissionals(Set<Profissional> profissionals) {
this.profissionals = profissionals;
}
}
e o erro é:
Me ajudem por favor.