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?
[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.