| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/12/2006 10:56:05
|
marciob7@yahoo.com.br
Debugger
Membro desde: 06/12/2006 11:42:27
Mensagens: 52
Offline
|
Olá,
Li vários tópicos sobre parâmetros...
http://www.guj.com.br/posts/list/47554.java
http://www.guj.com.br/posts/list/37440.java
http://www.guj.com.br/posts/list/43962.java
http://www.guj.com.br/posts/list/47088.java
mas não consegui sair do chão...
tenho um lista de cidades:
código descriçao
1 cidade a
2 cidade b
isso já está listando na página (conscidade.jsp) ... agora qdo eu clicar em um código gostarid de mostrar os detalhes...
oque eu tenho:
conscidade.jsp:
...
<h:commandLink action="#{cidade.altera}">
<h:outputText value="#{cid.Codcidade}"/>
<f:param name="codigo" value="#{cid.CodCidade}" />
</h:commandLink>
...
CidadeBean.java:
...
public String altera(){
String cod = getParameter("codigo");
return "alterar"
...
faces-config.xml
...
<navigation-rule>
<from-view-id>/conscidade.jsp</from-view-id>
<navigation-case>
<from-outcome>insere</from-outcome>
<to-view-id>/inserir.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<managed-bean>
<managed-bean-name>cidade</managed-bean-name>
<managed-bean-class>com.corejsf.CidadeBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
...
o problema é que eu não consigo pegar o parâmetro?
ah...tb não sei se é nesse lugar que devo pegar os parâmetros ?
atualmente tá dando:
cannot find symbol method getParameter(java.lang.String)
como to querendo aprender to usando o JCreator
certamente deve estar faltando essa classe, mas qual é e onde encontro?
para finalizar gostaria de saber se o correto ou mais correto é usar parametros ou usar actionlistener?
Agradeço...e tô precisando mesmo dessa ajuda!
abraço
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/12/2006 11:28:05
|
Insônia
Debugger
![[Avatar]](/images/avatar/c344336196d5ec19bd54fd14befdde87.png)
Membro desde: 24/03/2005 23:06:33
Mensagens: 73
Offline
|
[editado]
esquece o comentario inicial... dei bobeira
[/editado]
Qto a duvida agora:
Eu jah utilizei commandLink passando parametros. Nunca utilizei um commandLink com um outputText dentro. Sempre utilizo apenas o commandLink, colocando como "value" o texto que quero apresentar. Algo assim:
Para passar parametros, vc fez certo (no jsp). Mas no faces-config vc deve informar que o teu bean tem uma propriedade.
Revisando, no jsp:
No faces-config:
Lembrando que, como definimos uma propriedade no faces-config chamada codigo, entao o Managed Bean PRECISA ter um metodo getCodigo/setCodigo.
Logo, no managed-bean CidadeBean.java:
Assim eu acho que funciona Espero ter ajudado...
|
SCJP, SCWCD |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/12/2006 14:18:39
|
marciob7@yahoo.com.br
Debugger
Membro desde: 06/12/2006 11:42:27
Mensagens: 52
Offline
|
blz... fiz as alterações...
<managed-bean>
<managed-bean-name>cidade</managed-bean-name>
<managed-bean-class>com.corejsf.CidadeBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>codigo</property-name>
<value>#{param.codigo}</value>
</managed-property>
</managed-bean>
acredito que não preciso de um bean cid só com este cidade deve dar certo.
agora só preciso do saber qual import colocar para
cannot find symbol method getParameter(java.lang.String)
eu não poderia usar algo do tipo
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("codigo");
bom..assim ele não encontra o FacesContext
valeu
t+
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/12/2006 15:14:35
|
Insônia
Debugger
![[Avatar]](/images/avatar/c344336196d5ec19bd54fd14befdde87.png)
Membro desde: 24/03/2005 23:06:33
Mensagens: 73
Offline
|
Hum... eu andei vendo o teu primeiro post, e o trecho abaixo me faz supor qual o motivo do erro:
Para recuperar o valor do parametro, vc deve utilizar :
Definimos os metodos get/setCodigo no ManagedBean... basta utiliza-lo agora
Acho que isso resolve...
|
SCJP, SCWCD |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/12/2006 16:30:42
|
marciob7@yahoo.com.br
Debugger
Membro desde: 06/12/2006 11:42:27
Mensagens: 52
Offline
|
olha... não cheguei lá...
jsp
<h:commandLink action="#{cidade.altera}">
<h:outputText value="#{cid.Codcidade}"/>
<f:param name="codigo" value="#{cid.CodCidade}" />
</h:commandLink>
classe
get e set
faces-config
<managed-bean>
<managed-bean-name>cidade</managed-bean-name>
<managed-bean-class>com.corejsf.CidadeBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>codigo</property-name>
<value>#{param.codigo}</value>
</managed-property>
</managed-bean>
mas dá o seguinte erro...
javax.faces.FacesException: javax.faces.FacesException: The scope of the referenced object: '#{param.codigo}' is shorter than the referring object
aproveito tb para perguntar se não tem como só recuperar o parâmetro sem defini-lo no faces-config?
valeu
t+
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/12/2006 17:12:33
|
Insônia
Debugger
![[Avatar]](/images/avatar/c344336196d5ec19bd54fd14befdde87.png)
Membro desde: 24/03/2005 23:06:33
Mensagens: 73
Offline
|
Talvez este erro esteja ocorrendo porque vc está usando o escopo de sessao... eu sempre usei escopo = request.
Sempre fui aconselhado a usar escopo de sessao somente se necessario, pois podemos estar consumindo recursos do servidor sem necessidade. Repasso o conselho pra ti
Nao sou um conhecedor muito grande de JSF. Só sei como utilizar parametros da forma como eu te mostrei. Eu uso e funciona numa boa! Talvez outros usuarios do forum possam te mostrar uma alternativa diferente.
Uma duvida: quem eh esse bean "cid"? o Bean "cidade" eu vi a definicao, mas esse bean "cid" eu ainda nao vi... ele existe?
|
SCJP, SCWCD |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 11/12/2006 10:21:53
|
marciob7@yahoo.com.br
Debugger
Membro desde: 06/12/2006 11:42:27
Mensagens: 52
Offline
|
Vamos lá...
face-config
<managed-bean>
<managed-bean-name>cidade</managed-bean-name>
<managed-bean-class>com.corejsf.CidadeBean</managed-bean-class>
<managed-property>
<property-name>codigo</property-name>
<value>#{param.codigo}</value>
</managed-property>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
.jsp
<h:dataTable value="#{cidade.todas}" var="cid">
<h:column>
<f:facet name="header">
<h:commandLink action="">
<h:outputText value="Código"/>
</h:commandLink>
</f:facet>
<h:commandLink action="#{cidade.altera}">
<h:outputText value="#{cid.Codcidade}"/>
<f:param name="codigo" value="#{cid.CodCidade}"
</h:commandLink>
</h:column>
<h:column>
<f:facet name="header">
<h:commandLink value="Descrição"/>
</f:facet>
<h:outputText value="#{cid.Descricao}"/>
</h:column>
</h:dataTable>
ERRO:
Can't set managed bean property: 'codigo'.
não entendo pq dá isso ...qual é o erro?
valeu
t+
|
|
|
 |
|
|