Problema para recuperar um parametro de uma página JSF

2 respostas
cloudx
ola pessoal, eu estou com problemas para recuperar um parametro de uma página JSF minha página e essa:
<%@ page contentType="text/html; charset=Cp1252" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=Cp1252"/>
		<script src="scripts.js" charset="ISO-8859-1"></script>
		
		<title></title>
	</head>
	<body>
		<f:view>
			<%@ include file="cabecalho.jsp" %>
			<h:form>
			
				<f:verbatim><h2>Listar Usuários</h2></f:verbatim>
				<h:panelGrid columns="3">
					<h:outputText value="Nome:"/>
					<h:inputText id="login" value="#{userManager.nome}"/>
					<h:commandButton value="Listar" action="#{userManager.listar}"/>
				</h:panelGrid>
			
				<h:dataTable var="user" value="#{userManager.users}" id="tabelaUser" border="3" rendered="#{userManager.user != null}">
	
						<h:column id="nomeColuna">
							<f:facet name="header">
								<h:outputText value="nome"/>
							</f:facet>
							<h:outputText value="#{user.nome}" id="nomeSaida"/>
						</h:column>
						
						<h:column id="loginColuna">
							<f:facet name="header">
								<h:outputText value="login"/>
							</f:facet>
							<h:outputText value="#{user.login}" id="loginSaida"/>
						</h:column>
						
						<h:column id="senhaColuna">
							<f:facet name="header">
								<h:outputText value="senha"/>
							</f:facet>
							<h:outputText value="#{user.senha}" id="senhaSaida"/>
						</h:column>
						
						<h:column id="administradorColuna">
							<f:facet name="header">
								<h:outputText value="administrador"/>
							</f:facet>
							<h:outputText value="#{user.administrador ? 'SIM' : 'NAO'}" id="administradorSaida"/>
						</h:column>
						
						<h:column>
							<f:facet name="header">
								<h:graphicImage url="images/cross.gif" title="Excluir"/>
							</f:facet>
							<h:commandLink action="#{userManager.excluir}" >
								<h:outputText value="excluir"/>
								<f:param value="#{user.id}" name="id"/>
							</h:commandLink>
						</h:column>
						
				</h:dataTable>
			
			</h:form>
		</f:view>
	</body>
</html>
entao eu estou tentando acessar o parametor "id", que eu declarei na ultima coluna, no meu manager:
public String excluir() {
		
		FacesContext context = FacesContext.getCurrentInstance();
		try{
			Integer i = (Integer.parseInt(FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get("id").toString));
			System.out.println(i);
			user = userDao.recuperar(i);
			
			user.setAtivo(false);	
		}
		catch(Exception e){			
			e.printStackTrace();
			context.addMessage(null, new FacesMessage("Erro ao excluir Usuário. Por favor, entre em contato com a equipe de desenvolvimento do NTI."));
		}	
	
		return "continue";
	}
so que recebo uma NullPointException na linha 05 o que estou fazendo errado? será que é na hora de comverter o objeto em Integer? como devo fazer essa conversao? agradeço a ajuda!

2 Respostas

thiago.correa
protected HttpServletRequest getRequest() {
        FacesContext context = FacesContext.getCurrentInstance();
        ExternalContext eContext =  context.getExternalContext();
        HttpServletRequest request = (HttpServletRequest) eContext.getRequest();
        return request;
    }


    protected String getParametro(String parametro) {
        return getRequest().getParameter(parametro);
    }
andretads

porque vc não gerencia sua h:dataTable com um objeto UIData ou DataModel???

Criado 8 de agosto de 2008
Ultima resposta 8 de ago. de 2008
Respostas 2
Participantes 3