Erro com f:setPropertyActionListener

4 respostas
N

Tenho o formulário de cadastro de usuarios e foi só por a tag f:setPropertyActionListener abaixo de h:commandLink que deu o seguinte erro:

javax.servlet.ServletException: /listarUsuarios.xhtml @69,88 Parent is not of type ActionSource, type is: org.primefaces.component.column.Column@b31b77
javax.faces.webapp.FacesServlet.service(FacesServlet.java:422).

cadusuario.jsf:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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:ui="http://java.sun.com/jsf/facelets"
	  xmlns:h="http://java.sun.com/jsf/html"
	  xmlns:f="http://java.sun.com/jsf/core"
	  xmlns:p="http://primefaces.prime.com.tr/ui">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Lista de Usu&aacute;rios</title>
<style> 
.ui-widget, 
.ui-widget .ui-widget { 
font-size: 12px !important; 
} 
</style> 
</h:head>
<h:body>
<ui:include src="menu.xhtml"/>
<br/>
<p:panel header="Lista de Usu&aacute;rios do Sistema">
<br/> 
<h:form prependId="false">  
  
    <p:dataTable id="dataTable" value="#{usuariosBean.lista}" var="usuario"  
                 paginator="true" rows="20"  
                 paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  
                 rowsPerPageTemplate="5,10,15" style="text-align:center;">  
  
        <p:column style="width:120px;">  
            <f:facet name="header">  
                <h:outputText value="C&oacute;digo" />  
            </f:facet>  
            <h:outputText value="#{usuario.id}" />  
        </p:column>  
  
        <p:column style="width:500px;">  
            <f:facet name="header">  
                <h:outputText value="Nome" />  
            </f:facet>  
            <h:outputText value="#{usuario.nome}" />  
        </p:column>  
  
        <p:column style="width:250px;">  
            <f:facet name="header">  
                <h:outputText value="Status" />  
            </f:facet>  
            <h:outputText value="#{usuario.status}" />  
        </p:column>  
        
        <p:column style="width:250px;">  
            <f:facet name="header">  
                <h:outputText value="Data de cadastro" />  
            </f:facet>  
            <h:outputText value="#{usuario.dtCadastro}" />  
        </p:column>  
        
        <p:column style="width:40px;">  
            <f:facet name="header">  
                <h:outputText value="Editar" />  
            </f:facet>  
            <h:commandLink action="#" />  
        </p:column>
        <p:column style="width:40px;">  
            <f:facet name="header">  
                <h:outputText value="Excluir" />  
            </f:facet>  
            <h:commandLink action="#{usuariosBean.excluir}" value="X"/> 
            <f:setPropertyActionListener target="usuariosBean.usuario" value="usuario"></f:setPropertyActionListener>
        </p:column>  
    </p:dataTable>  
  
</h:form> 
</p:panel>
</h:body>
</html>

4 Respostas

C

A TAG deve ficar dentro do h:commandLink.

<h:commandLink action="#{usuariosBean.excluir}" value="X"> <f:setPropertyActionListener target="usuariosBean.usuario" value="usuario" /> </h:commandLink>

N

Obrigado cara. E como faço para receber o parâmetro no bean?

C

No exemplo ele passa o id_usuario para uma variavel chama idUsuarioQueVouExcluir no bean.

<h:commandLink action="#{usuariosBean.excluir}" value="X"> <f:setPropertyActionListener target="#{usuarioBean.idUsuarioQueVouExcluir}" value="#{usuariosBean.usuario.id_usuario}" /> </h:commandLink>

R
  • Estou com o mesmo problema, alguém conseguiu resolver?
  • Ao inserir o código abaixo na página, é retornado o erro <f:setPropertyActionListener> Parent is not of type ActionSource, type is: javax.faces.component.html.HtmlOutputText@6187cd

<h:commandLink action="#{usuariosBean.alterar}" value="Alterar"> <f:setPropertyActionListener target="#{usuarioBean.usuario}" value="#{item}" /> </h:commandLink>

  • Já verifiquei as configurações do bean e estão corretas.
  • O estranho é que o componente já esta dentro de um ActionSource neste caso h:commandLink.
Criado 25 de março de 2012
Ultima resposta 19 de abr. de 2013
Respostas 4
Participantes 3