Passar parametro URL JSF'

Feras,

tenho um projeto 1 e projeto 2, no projeto 1 tenho a tela de login e menu que redireciona para o projeto 2,

quando ele faz esse redirecionamento eu passo o usuário que ele logou no projeto 1 para o projeto 2,

no projeto 2 cai em uma tela que faço uma persistencia de alguns dados porém depois dessa persistencia o usuário que eu havia passado sai da sessão

como eu posso manter esse usuário para usar em outras ações na mesma tela que fiz a persistencia

pesquisando achei isso mas da erro na minha tela

<h:head>
    <f:metadata>
        <f:viewParam name="user" value="#{mbean.user}" />
    </f:metadata>
</h:head>

o erro


10:52:59,723 ERROR [javax.faces.webapp._ErrorPageWriter] (http--127.0.0.1-8080-1) An exception occurred: com.sun.facelets.tag.TagException: /paginas/pedidos/relPedidos.xhtml @11,9 <h:head> Tag Library supports namespace: http://java.sun.com/jsf/html, but no tag was defined for name: head

Você declarou o h na página?

Sim

[quote=robsonsan]Sim [/quote]Coloca a página aí.

<?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:a4j="http://richfaces.org/a4j"
	xmlns:rich="http://richfaces.org/rich">


<h:head>
	<a4j:loadStyle src="/resources/css/style.css"></a4j:loadStyle>
    <f:metadata>
        <f:viewParam name="usuario" value="#{relPedidosDelegate.usuario}" />
    </f:metadata>
</h:head>
<body onload="#{relPedidosDelegate.navigaTO()}" >
	<h:form id="idLista">
		<table align="center" border="0">
			<tr>
				<td><ui:include src="/paginas/layout/layout.xhtml" /></td>
			</tr>
			<tr>
				<td>
					<h1 class="labelTitulo">Decred</h1> <h:outputLabel value="Solicitação Novo Pedido: " styleClass="labelTitulo" /><br /><br /> 
					<h:outputLabel value="De: " styleClass="labelTitulo" /> 
						<rich:calendar id="idDataDe" value="#{relPedidosMbean.dataDe}"  datePattern="dd/MM/yyyy"></rich:calendar> 
						<rich:spacer width="30px"></rich:spacer> 
					<h:outputLabel value="Até: " styleClass="labelTitulo" /> 
						<rich:calendar id="idDataAte" value="#{relPedidosMbean.dataAte}" datePattern="dd/MM/yyyy" ></rich:calendar> <br /><br />
				</td>
			</tr>
			<tr>
				<td align="center">
					<h:commandButton value="Pedido" styleClass="buttonBig" action="#{relPedidosMbean.cadastrarPedido}" />
				</td>
			</tr>
			<tr>
				<td align="center"><h:messages styleClass="labelTitulo" /></td>
			</tr>
		</table>
		<rich:spacer height="30px"></rich:spacer>
		<table border="0" align="center">
			<tr>
				<td class="labelTitulo">
					<h:outputText value="Pedidos Já Efetuados" />
				</td>
			</tr>
			<tr>
				<td colspan="2"> 
					<f:subview id="subviewPedidosCadastrados" rendered="#{not empty relPedidosDelegate.listRelPedidos}">
						<!--  <rich:datascroller align="left" for="idTablePedidos" maxPages="1"  reRender="sc2" id="sc1" styleClass="subView" />-->			
							<rich:dataTable rows="10" headerClass="subView" value="#{relPedidosDelegate.listRelPedidos}" var="listaPedidosDecred" id="idTablePedidos">
								<h:column>
									<f:facet name="header">
										<h:outputText value="Id Pedido" />
									</f:facet>
									<h:outputText value="#{listaPedidosDecred.idPedido}" />
								</h:column>
								<h:column>
									<f:facet name="header">
										<h:outputText value="Usuário Solicitante" />
									</f:facet>
									<h:outputText value="#{listaPedidosDecred.usuarioSolicitante}" />
								</h:column>
								<h:column>
									<f:facet name="header">
										<h:outputText value="Data Inicio Pedido" />
									</f:facet>
									<h:outputText value="#{listaPedidosDecred.dataDe}" />
								</h:column>
								<h:column>
									<f:facet name="header">
										<h:outputText value="Data Fim Pedido" />
									</f:facet>
									<h:outputText value="#{listaPedidosDecred.dataAte}" />
								</h:column>
								<h:column>
									<f:facet name="header">
										<h:outputText value="Status" />
									</f:facet>
									<h:outputText value="#{listaPedidosDecred.status}" />
								</h:column>
								<h:column>
									<f:facet name="header">
										<h:outputText value="Data do Pedido" />
									</f:facet>
									<h:outputText value="#{listaPedidosDecred.dataPedido}" />
								</h:column>
								<h:column>
									<f:facet name="header">
										<h:outputText value="Hora do Pedido" />
									</f:facet>
									<h:outputText value="#{listaPedidosDecred.horaPedido}" />
								</h:column>
								<h:column>
									<f:facet name="header">
										<h:outputText value="Nome do Arquivo" />
									</f:facet>
									<h:outputText value="#{listaPedidosDecred.nomeArquivo}" />
								</h:column>
							</rich:dataTable>
						<!-- <rich:datascroller align="left" for="idTablePedidos" maxPages="20"  id="sc2" reRender="sc1" styleClass="subView"/> -->
					</f:subview>
				</td>
			</tr>
		</table>
	</h:form>
</body>
</html>

Feras,

consegui resolver o problema irei postar aqui para futuras dúvidas

coloquei meu objeto na sessão conforma abaixo

usuario = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("usuario");
			if(usuario != null){
				HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
				request.getSession().setAttribute("usuario", this.usuario);
			}

e estou recuperando assim:

HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
			this.usuario = (String) request.getSession().getAttribute("usuario"); 

Obrigado pela ajuda

Seu erro era o modo como o usuario estava sendo colocado/lido na sessão? :shock:

sim Hebert,

pois quando o usuário era redirecionado para o projeto 2, quando fazia a 1° persistencia o usuário que passei do projeto 1 ficava nulo,

ai resolvi fazendo conforme postei a acima

Muito obrigado pela suas respostas

Você poderia passar com:

?faces-redirect=true&user=fulano.

E pegar com:

FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("user");

mas ficaria visível na tua url.

Obriado Fera pela dica e fica mais essa opção para as dúvidas futuras

Opa, vou precisar disso rs.

Show de Bola.