galera … tenho uma lista, que mostra todas as cidades do meu banco de dados, na ultima coluna dessa minha lista, tenho um commandlink pra deletar a respectica cidade da linha na qual o commandlink foi precionado, atraves do envio do envio de parametros, devidamente mapeado no faces-config.
<managed-bean>
<managed-bean-name>MBCidade</managed-bean-name>
<managed-bean-class>com.metaway.bean.ControleCidade</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>codigo2</property-name>
<value>#{param.codigo2}</value>
</managed-property>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" href="Style.css" type="text/css">
<title>Metaway</title>
</head>
<body>
<h:form styleClass="form_corpo">
<h:dataTable value="#{MBCidade.cidades}" var="cid"
styleClass="tabela"
columnClasses="tabela_codigo, tabela_nome"
headerClass="tabela_header">
<h:column>
<f:facet name="header">
<h:outputText value="Codigo"/>
<f:param id="codigo" value="codigo"/>
</f:facet>
<h:commandLink value="#{cid.codigo}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Nome"/>
<f:param id="nome" value="nome" />
</f:facet>
<h:outputText value="#{cid.nome}"/>
</h:column>
<h:column>
<f:facet name="header">
</f:facet>
<h:commandLink action="#{MBCidade.removeCidade}" value="Excluir"/>
<f:param value="#{cid.codigo}" name="codigo2"/>
</h:column>
</h:dataTable>
<h:panelGrid columns="2">
<h:commandButton action="#{MBCidade.retornaCod}" value="Inserir"/>
</h:panelGrid>
</h:form>
</body>
</html>
</f:view>
qnd tento renderizar a pagina ocorre o erro :
javax.servlet.ServletException: The scope of the referenced object: #{param.codigo2} is shorter than the referring object
ou seja, ele diz q meu parametro, que esta mapeado no faces-config.xml, tem o ciclo de vida menor do que meu bean. Não entendi o pq disso estar acontecendo …
alguem ?