Enviar Parâmetros (via POST) - JSF

1,266 views
Skip to first unread message

José Carlos

unread,
Feb 11, 2009, 1:51:37 PM2/11/09
to jav...@googlegroups.com
Boa Tarde Galera,

estou tentando enviar parâmetros no método post com jsf para um outro sistema(site), mas não estou conseguindo, segue exemplo:

<h:form>
    <h:outputLink value="http://site.com.br?redirect"> 
                 <h:outputText  value="Clicar" /> 
                 <f:param name="pessoa_nome" value="#{bean.pessoa.nome}"/> 
                 <f:param id="pessoa_email" value="#{bean.pessoa.email}"/> 
                 <f:param id="pessoa_cpf" value="#{baen.pessoa.cpf}"/> 
    </h:outputLink>
</h:form>

Quando eu submeto o form, os parâmetros são enviados via GET, sendo que o sistema não aceita dessa forma,

alguém tem sugestões?

Obrigado.

--
"Tudo Posso naquele que me Fortalece"

José Carlos
Desenvolvedor Java - Casa Magalhães

Marcio Eduardo

unread,
Feb 11, 2009, 2:50:27 PM2/11/09
to jav...@googlegroups.com

pesquise sobre 

f:setPropertyActionListener


2009/2/11 José Carlos <jose4...@gmail.com>

José Carlos

unread,
Feb 11, 2009, 3:34:29 PM2/11/09
to jav...@googlegroups.com
Valeu Márcio por responder, mas não sei o porquê de (f:setPropertyActionListener) nesse contexto.

2009/2/11 Marcio Eduardo <marcio...@gmail.com>

Savio Carvalho

unread,
Feb 11, 2009, 4:16:38 PM2/11/09
to jav...@googlegroups.com
Pessoal,

tenho duas tabelas numa pagina cada uma com um scrol.

Os scrolls e tabelas estao setados para 5 linhas, o problema eh que
quando a tabela fica com 6 linhas a tabulacao nao aparece e so aparece
quando a tabela tem 7 linha.

quanto ao atributo page seria a solucao, qual a utilidade dele. e ocmo
usalo.

segue meu codigo
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@taglib prefix="rich" uri="http://richfaces.org/rich"%>
<%@taglib prefix="a4j" uri="http://richfaces.org/a4j"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="SHORTCUT ICON" href="../img/ico.png" type="image/x-icon">
<link href="../css/mensagem.css" rel="stylesheet" type="text/css">
<link href="../css/intreno.css" rel="stylesheet" type="text/css">
<title>JSP Page</title>
<style type="text/css">
img{border:0px;}
</style>
<link href="../css/tabela.css" rel="stylesheet" type="text/css">
</head>
<body>
<f:view>
<rich:messages errorClass="error_message"
infoClass="info_message"/>
<a4j:form>
<a4j:outputPanel id="gridNeg" >
<a4j:outputPanel rendered="#{!empty
beanProfessor.prof_neg}">
<h:outputText value="Professores sem permissao"/>
<rich:datascroller renderIfSinglePage="false"
id="sneg" for="neg" maxPages="5"/>
<h:dataTable rowClasses="odd-row,even-row"
value='#{beanProfessor.prof_neg}' id="neg" width="500"
rows="5" var='neg' border="0"
cellpadding="0" cellspacing="0">
<h:column>
<f:facet name="header">
<h:outputText value="Nome"/>
</f:facet>
<h:outputText value="#{neg.nome}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Sobrenome"/>
</f:facet>
<h:outputText value="#{neg.sobrenome}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Login"/>
</f:facet>
<h:outputText value="#{neg.login.login}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="email"/>
</f:facet>
<h:outputText value="#{neg.email}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Permitir"/>
</f:facet>
<a4j:commandLink
action="#{beanProfessor.permitir}" reRender="sneg,sperm, gridNeg, gridPerm">
<f:param name="idp"
value="#{neg.idprofessor}"/>
<h:graphicImage
url="/img/p-verde.png" />
</a4j:commandLink>
</h:column>
</h:dataTable>
</a4j:outputPanel>
</a4j:outputPanel>

<rich:spacer height="50" rendered="#{!empty
beanProfessor.prof_neg && !empty beanProfessor.prof_perm}"/>

<a4j:outputPanel id="gridPerm">
<a4j:outputPanel rendered="#{!empty
beanProfessor.prof_perm}">
<h:outputText value="Professores com permissao" />
<rich:datascroller renderIfSinglePage="false"
id="sperm" for="perm" maxPages="5"/>
<h:dataTable rowClasses="odd-row,even-row"
value='#{beanProfessor.prof_perm}' id="perm" width="500"
rows="5" var='perm' border="0"
cellpadding="0" cellspacing="0">
<h:column>
<f:facet name="header">
<h:outputText value="Nome"/>
</f:facet>
<h:outputText value="#{perm.nome}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Sobrenome"/>
</f:facet>
<h:outputText value="#{perm.sobrenome}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Login"/>
</f:facet>
<h:outputText value="#{perm.login.login}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="email"/>
</f:facet>
<h:outputText value="#{perm.email}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Negar"/>
</f:facet>
<a4j:commandLink
action="#{beanProfessor.negar}" reRender="sperm, sneg, gridNeg, gridPerm">
<f:param name="idn"
value="#{perm.idprofessor}"/>
<h:graphicImage
url="/img/p-vermelho.png"/>
</a4j:commandLink>
</h:column>
</h:dataTable>
</a4j:outputPanel>
</a4j:outputPanel>
</a4j:form>
</f:view>
</body>
</html>


Obrigado

Francisco Rafael Gomes Silva

unread,
Feb 11, 2009, 5:38:49 PM2/11/09
to jav...@googlegroups.com
                        <rich:column>  
                            <f:facet name="header">
                                <h:outputText value="Alterar" />
                            </f:facet>
                            <h:commandButton image="/imagens/buttons/alterar_botao.gif"  action="#{UsuarioController.Editar}">
                                   
                                    <f:setPropertyActionListener target="#{UsuarioController.usu.codUsuario}" value="10" />
                                </h:commandButton>
                        </rich:column>

Como nosso amigo disse pesquise...Mas vai ai um exemplo.

A propriedade target você passa o propriedade do seu Bean onde os valores vão ser armazenados, no value o valor que esta passando de parametro, assim quando chamar a ação action="#{UsuarioController.Editar}" que iá gerar o post do seu bean, você terá o valor passado no value, exatamente na sua property codUsuario como no nosso exemplo:

Aqui embaixo a classe que possue a property do target:

public class UsuarioController implements Serializable{   

    private Usuario usu; 
  

    public String Editar() throws SQLException{

        this.usu.codUsuario == 10; //Entendeu
        return "usuario";
       
    }

}   

Entendeu o objeto usuário agora esta com o valor passado de parametro...Mas dá uma olha neste post do rponte que lá ele mostra como passar parametros em seus metodos isso ajuda muito tambem...

http://www.rponte.com.br/2008/10/23/estendendo-jsf-el-com-jboss-el/

qualquer coisa posta ai...abraços....






2009/2/11 José Carlos <jose4...@gmail.com>

José Carlos

unread,
Feb 12, 2009, 6:29:28 AM2/12/09
to jav...@googlegroups.com
Obrigado Francisco pela resposta, mas o que eu perguntei não foi a finalidade (f:setPropertyActionListener) e sim, se isso se encaixa no problema q eu mostrei, vou pesquisar mais,


vlw.

2009/2/11 Francisco Rafael Gomes Silva <francisco...@gmail.com>

Francisco Rafael Gomes Silva

unread,
Feb 12, 2009, 6:36:56 AM2/12/09
to jav...@googlegroups.com
Cara dá uma olhada aqui...talves te ajude


https://restfaces.dev.java.net/

2009/2/12 José Carlos <jose4...@gmail.com>

José Carlos

unread,
Feb 12, 2009, 7:38:40 AM2/12/09
to jav...@googlegroups.com
Pelo que vi a saída será com restfaces mesmo, vou pesquisar a respeito,

vlw pela dica.

2009/2/12 Francisco Rafael Gomes Silva <francisco...@gmail.com>

José Carlos

unread,
Feb 12, 2009, 8:39:52 AM2/12/09
to jav...@googlegroups.com
RestFaces não me ajudará pq os parâmetros serão passados via URL, o que não quero.

Pergunta:

RestFaces só envia parâmetros via URL?

2009/2/12 José Carlos <jose4...@gmail.com>

Glauco P. Gomes

unread,
Feb 12, 2009, 8:57:44 AM2/12/09
to jav...@googlegroups.com
Vc esta precisando fazer um post para outra aplicacao? Situacao nao muito comum.

Pq vc nao faz um form em html puro mesmo?

Acho que com JSF vai ser bem mais complicado, ele nao foi feito para esse tipo de situacao.

Glauco P. Gomes

José Carlos escreveu:

Francisco Rafael Gomes Silva

unread,
Feb 12, 2009, 8:55:34 AM2/12/09
to jav...@googlegroups.com
Quando vc usa

outputLink

seria o mesmo que:
< href="http://blabla"> Link </a>

Entendeu, na verdade nunca precisei fazer isso mas segue mais uns exemplos para ver se te ajuda

Tag JSF:

<h:commandLink id="link" action="goto">
  <h:outputText value="#{msg.linkName}"/>
</h:commandLink>

Gera o html

<a id="_id0:link"
href="#" onclick=
 "document.forms['_id0']['_id0:link'].value=
   '_id0:link';
         document.forms['_id0'].submit();
        return false;">Next Page</a>




Tag JSF:

<h:form id="jsftags">
 ...
</h:form>

Gera HTML

<form id="jsftags" method="post"
    action="/jsftags/faces/pages/tags.jsp"
    enctype="application/x-www-form-urlencoded">
    ...
    <input type="hidden" name="jsftags"
      value="jsftags" />
    <input type="hidden" name="jsftags:link" />
</form>

Ou seja tenta colocar dentro dentro de uma tag  h:form exemplo

<h:form>
   <h:commandLink id="link" action="goto">

         <f:param name="pessoa_nome" value="#{bean.pessoa.nome}"/> 
         <f:param id="pessoa_email" value="#{bean.pessoa.email}"/>
        <f:param id="pessoa_cpf" value="#{baen.pessoa.cpf}"/> 
   </h:commandLink>
</h:form>


faz um teste ai e veja se funciona, eu nunca precisei disto antes, mas testa ai cara.

Aqui um link bem legal tambem:

http://www.exadel.com/tutorial/jsf/jsftags-guide.html

abraços.

2009/2/12 José Carlos <jose4...@gmail.com>

Rafael Ponte

unread,
Feb 12, 2009, 8:56:16 AM2/12/09
to jav...@googlegroups.com
Faça um formulário com (X)HTML mesmo, e faço-o submeter para o outro sistema. Como o Glauco disso, fica complicado usar JSF para isso.

2009/2/12 Glauco P. Gomes <glauco...@yahoo.com.br>



--
Rafael Ponte
http://www.rponte.com.br

José Carlos

unread,
Feb 12, 2009, 8:58:05 AM2/12/09
to jav...@googlegroups.com
Vc esta precisando fazer um post para outra aplicacao?

É exatamente isso que eu quero.


Pq vc nao faz um form em html puro mesmo?

aqui que mora o problema eu preciso utilizar componentes JSF nesse form html (puro), o que não é possível,

vlw

2009/2/12 Glauco P. Gomes <glauco...@yahoo.com.br>
Vc esta precisando fazer um post para outra aplicacao? Situacao nao muito comum.

José Carlos

unread,
Feb 12, 2009, 9:00:41 AM2/12/09
to jav...@googlegroups.com
Beleza vou tentar dessa forma que vcs estão falando, qualquer coisa posto aqui a dúvida,

vlw.

2009/2/12 Rafael Ponte <rpo...@gmail.com>

Rafael Ponte

unread,
Feb 12, 2009, 9:02:34 AM2/12/09
to jav...@googlegroups.com
Não entendo porque você não pode usar um formulário XHTML, isso é bem estranho. Mas há outras soluções, como usar AJAX e submeter um post via javascript mesmo.

Ou utilizar a commons http-client da Apache,
http://hc.apache.org/httpclient-3.x/methods/post.html

Enfim, há várias alternativas, veja o que cai melhor para você.

2009/2/12 José Carlos <jose4...@gmail.com>

José Carlos

unread,
Feb 12, 2009, 9:15:14 AM2/12/09
to jav...@googlegroups.com
Vou explicar, é assim, eu preciso aproveitar a sessão de um cliente, ou seja, capturar esses dados

do cliente que está na sessão tais como: (Usuario e Senha) e enviar para outra aplicação isso via POST,

então a aplicação iria receber esses parâmetros e fazer a autenticação do mesmo, evitando assim

que cliente digite novamente (usuário e senha) quando entrasse na outra aplicação, é essa a idéia.

2009/2/12 Rafael Ponte <rpo...@gmail.com>

Glauco P. Gomes

unread,
Feb 12, 2009, 9:38:33 AM2/12/09
to jav...@googlegroups.com
Para esse caso talvez a ideia de Rafael de utilizar o http-client seja a melhor alternativa, mas vc teria que ver como gerenciar a sessao criada na outra aplicacao, sem falar que a sessao poderia morrer por inatividade, ja que ele poderia nao entrar nessa outra aplicacao.

Mas se essa outra aplicacao tb for desenvolvida por vc, ou por alguem de onde vc trabalha, seria melhor trabalhar com SSO, da uma olhada no historico da lista que tem umas mensagens sobre isso.

Rafael Ponte

unread,
Feb 12, 2009, 9:36:14 AM2/12/09
to jav...@googlegroups.com
José,

De acordo com o que eu entendi, você poderá usar um formulário simples XHTML e colocar o login e senha como um input hidden na formulário [o que não é algo seguro].

Marcio Eduardo

unread,
Feb 12, 2009, 9:44:36 AM2/12/09
to jav...@googlegroups.com
José, tenho uma dúvida, nesse submit vc vai para outra página e transmitir essas informações para uma página externa, ou seja, em outro domínio?

2009/2/12 Rafael Ponte <rpo...@gmail.com>

José Carlos

unread,
Feb 12, 2009, 9:45:06 AM2/12/09
to jav...@googlegroups.com
Beleza Glauco, vou estudar suas sugestões e as sugestões do Rafael e ver a melhor forma,

qualquer coisa eu posto aqui a dúvida,

Rafael,

também acho arriscado essa sua última sugetão, vou ver se consigo com HttpClient,

vlw.

2009/2/12 Rafael Ponte <rpo...@gmail.com>
José,

José Carlos

unread,
Feb 12, 2009, 9:56:46 AM2/12/09
to jav...@googlegroups.com
Isso, extamente Márcio.

2009/2/12 Marcio Eduardo <marcio...@gmail.com>

Gilberto Santos

unread,
Feb 12, 2009, 11:02:43 AM2/12/09
to jav...@googlegroups.com
em JSF vc nao faz post, por ser um framework MCV a pagina e o controle faz um so escopo .
se vc precisa enviar os valores para outra app, tente po GET ou idela seria XML 
que a o padrão para comunicações entre padrões

2009/2/12 José Carlos <jose4...@gmail.com>



--
Gilberto Santos:.
Analista de Sistemas
www.gilbertosantos.com || con...@gilbertosantos.com
Sun Certified Java Programer
"Nossa habilidade de compreender Deus é limitada, mas consola saber que a sua é infinito... "

Reply all
Reply to author
Forward
0 new messages