Oi pessoal!
É o seguinte, estou tentando aplicar o f:setPropertyActionListener no carrega autor porém estou recebendo a seguinte exception:
javax.servlet.ServletException: /autor.xhtml @ 32,83 target = "# {autorBean.autor}": Propriedade 'autor' não gravável no tipo br.com.caelum.livraria.bean.AutorBean javax.faces.webapp.FacesServlet.service (FacesServlet.java:606) org.apache.tomcat.websocket.server.WsFilter.doFilter (WsFilter.java:52)
Alem disso, quando eu apenas comento o comandLink anterior ele continua lendo o mesmo normalmente, e quando eu removo da a exeption acima.
segue codigo:
<?xml version="1.0" encoding="UTF-8" ?>
<!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">
<ui:composition template="_template.xhtml">
<ui:define name="titulo">Novo Autor</ui:define>
<ui:define name="conteudo">
<h:form>
<fieldset>
<legend>Dados do Autor</legend>
<h:panelGrid columns="2">
<h:outputLabel value="Nome:" for="nome" />
<h:inputText id="nome" value="#{autorBean.autor.nome}" />
<h:commandButton value="Gravar" action="#{autorBean.gravar}" />
</h:panelGrid>
</fieldset>
</h:form>
<h:form id="listaDeAutores">
<h:dataTable id="listaDeAutores" value="#{autorBean.autores}" var="autor">
<h:column>
<f:facet name="header">Nome do autor</f:facet>
<h:outputText value="#{autor.nome}"/>
</h:column>
<h:column>
<f:facet name="header">Altera autor</f:facet>
<h:commandLink value="atualizar">
<!-- <h:commandLink value="atualizar" action="#{autorBean.carrega(autor)}"/> -->
<f:setPropertyActionListener value="#{autor}" target="#{autorBean.autor}"/>
</h:commandLink>
</h:column>
<h:column>
<f:facet name="header">Remove autor</f:facet>
<h:commandLink value="remover" action="#{autorBean.remover(autor)}"/>
</h:column>
</h:dataTable>
</h:form>
</ui:define>
<ui:define name="rodape">Cadastro autor</ui:define>
</ui:composition>
</html>