Gostaria de saber como posso redirecionar para uma outra pagina e levar como parâmetro uma string.
Meu botão está assim atualmente
<p:commandButton value="Enviar" ajax="false"
icon="ui-icon-extlink"
rendered="#{servidorMB.verificaAtividade == false}"
action="#{servidorMB.salvar()}"
actionListener="#{servidorMB.enviarArquivo()}">
</p:commandButton>
ele ja esta realizando um cadastro mas preciso que alem de realizar o cadastro ele me redirecione para uma outra pagina e ainda levando um parâmetro.
A página em questão referencia o mesmo managedbean? Se sim, é simples.
Mike
Março 27, 2018, 1:31pm
#4
public String pagina(String pagina)
{
...
}
<p:commandButton value="Trocar pagina" action="#{bean.pagina('urlDaPagina.xhtml')}" />
Se esta fazendo um cadastro, é só fazer isso n?
public String cadastrar(Tipo param)
{
...
return "index.xhtml?faces-redirect=true";
}
então ai ta um redirecionamento comum, porem tenho que levar uma string junto lembrando que ja tem um action no meu button e um listener tambem.
Mike
Março 27, 2018, 1:36pm
#6
action="#{servidorMB.salvar('parametro')}"
e como vou passar esse parametro pra outra pagina ?
Mike
Março 27, 2018, 1:39pm
#8
Da para fazer assim
<p:commandButton icon="fa fa-check" value="Sim" action="#{bean.salvar}">
<f:setPropertyActionListener value="Mike" target="#{bean2.nome}" />
</p:commandButton>
E como ficaria o back bean ?
Mike
Março 27, 2018, 1:45pm
#10
Normal,assim como qualquer outro, basta ter o atributo nome no bean2 e seu setter.
O f:setPropertyActionListener chamará o setter na hora do click do botao para atribuir um valor
Mike
Março 27, 2018, 1:51pm
#11
Da para usar Flash para trocar dados também, esse dado fica disponivel até a proxima requisição
public void salvar(String param){
Flash flash = FacesContext.getCurrentInstance().getExternalContext().getFlash();
flash.put("chave", param);
...
return "index.xhtml?faces-redirect=true";
}
<h:outputText value="#{flash.chave"} />
Consegui utilizando flash vlwsss pela ajuda.
Mike
Março 27, 2018, 2:41pm
#13
Que bom que deu certo
Se a minha resposta lhe ajudou, considere marcar como Solução