O seguinte erro aparece no console. 20:08:06,345 ERROR [io.undertow.request] (default task-1) UT005023: Exception handling request to /casadocodigo-1.0/livros/form.xhtml: javax.servlet.ServletException: The class 'br.com.wepdev.casadocodigo.beans.AdministradorLivrosBean$Proxy$$$WeldSubclass' does not have the property 'autoresId'.
<div>
<h:outputLabel value="Autores" />
<h:selectManyListbox value="#{administradorLivrosBean.livro.autores}"
converter="autorConverter" id="autores">
<f:selectItems value="#{administradorLivrosBean.autores}"
var="autor"
itemValue="#{autor}" itemLabel="#{autor.nome}" />
</h:selectManyListbox>
<h:message for="autores"/>
</div>
@FacesConverter("autorConverter")
public class AutorConverter implements Converter {
@Override
public Object getAsObject(FacesContext context, UIComponent component, String id) {
if(id == null || id.trim().isEmpty()) return null;
System.out.println("Convertendo para o Objeto: " + id);
Autor autor = new Autor();
autor.setId(Integer.valueOf(id)); // Pegando o valor inteiro da String(id)
return autor;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object autorObject) {
if(autorObject == null ) return null;
System.out.println("Convertendo para String: " + autorObject);
Autor autor = (Autor) autorObject;
return autor.getId().toString();
}
@Named
@RequestScoped
public class AdministradorLivrosBean {
@Inject
private LivroDAO livroDAO;
@Inject
private AutorDAO autorDAO;
private Livro livro = new Livro();
@Inject
private FacesContext context;
@Transactional
public String salvar(){
livroDAO.salvar(livro);
context.getExternalContext().getFlash().setKeepMessages(true); // Deixa a mensagem atica durante o contexto de flash, coloca os dados no sessão do usuario que dura ate a ultima requisição
context.addMessage(null , new FacesMessage("Livro cadastrado com sucesso"));
return "/livros/lista?faces-redirect=true";
}