JSF commandLink com datatable não funciona  XML
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Autor Mensagem
bbmoura
Entusiasta Java

Membro desde: 16/05/2005 10:46:07
Mensagens: 16
Offline

Estou tentando fazer uma coisa muito simples. Mas não estou conseguindo. Utilizar uma <h:datatable(ou t:datalist)> que contenha uma lista que contem o "String name" e o "String action" que são passados para o componente <h:commandLink>. Segue o código:

<h:form id="frm">
<h:dataTable id="table" value="#{testeLista.lista}" var="iterator">
<h:column id="col">
<h:commandLink id="link" action="#{iterator.action}">
< h:outputText id="text" value="#{iterator.value}" > </h:outputText>
</ h:commandLink>
</h:column>
</h:dataTable>
</h:form >

Ele imprime perfeitamente os commandLinks com o nome (inclusive se eu colocar o action como nome ele tb imprime perfeitamente), porém quando clico no link da a exceção:
javax.servlet.ServletException: Error calling action method of component with id

não sei mais o que fazer, já procurei no google e dizem até que é bug, mas já testei com myfaces 1.1.1 e 1.1.3 (que é a última versão). Se alguém já conseguiu fazer isso funcionar por favor me de uma mão. Por que é inviável que uma coisa tão simples dessa não funcione.

Obrigado

urubatan
Moderador
[Avatar]

Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline

o probleá é que no JSF não da pra fazer isto: <h:commandLink id="link" action="#{iterator.action}">
por que #{iterator.action} quer dizer para ele procurar um bean com o nome iterator e executar o metodo action dele.

[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
[WWW]
bbmoura
Entusiasta Java

Membro desde: 16/05/2005 10:46:07
Mensagens: 16
Offline

não .. ele procura o bean correto .. que ele recebe da lista do datatable .. tanto que na exceção dá:

Caused by: javax.faces.el.EvaluationException: Exception while invoking expression #{favoriteIcon.navigationRule}
at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:165)
at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:63)
... 24 more
Caused by: java.lang.NoSuchMethodException: nms.persistence.pojo.FavoriteIcon.navigationRule()
at java.lang.Class.getMethod(Unknown Source)
at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:11
... 25 more

ou seja ... ele ateh acha a classe que contém o método que devolveria a String com a 'action', mas mesmo assim não funciona ...

Mas se não der mesmo para fazer isso da maneira que estou fazendo, como eu faço no JSF para ter um datatable de links que sejam dinâmicos??

obrigado
urubatan
Moderador
[Avatar]

Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline

bbmoura wrote:não .. ele procura o bean correto .. que ele recebe da lista do datatable .. tanto que na exceção dá:

Caused by: javax.faces.el.EvaluationException: Exception while invoking expression #{favoriteIcon.navigationRule}
at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:165)
at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:63)
... 24 more
Caused by: java.lang.NoSuchMethodException: nms.persistence.pojo.FavoriteIcon.navigationRule()
at java.lang.Class.getMethod(Unknown Source)
at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:11
... 25 more

ou seja ... ele ateh acha a classe que contém o método que devolveria a String com a 'action', mas mesmo assim não funciona ...

Mas se não der mesmo para fazer isso da maneira que estou fazendo, como eu faço no JSF para ter um datatable de links que sejam dinâmicos??

obrigado

bom, com datatable eu nunca fiz isto, mas o tomahawk tem componentes prontos pra isto
da uma olhadinha:
http://myfaces.apache.org

[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
[WWW]
bbmoura
Entusiasta Java

Membro desde: 16/05/2005 10:46:07
Mensagens: 16
Offline

já tentei atualizar o myfaces p 1.1.3 e utilizar componentes do Tomahawk como t:dataList / t:datatable / t:commandLink .. mas tds dao o mesmo erro ..
isso é bastante fustrante, pois o JSF se mostra um excelente framework p desenvolvimento web, porém não poderia apresentar esses error para coisas tão simples .. obrigado pelas resposta .. se alguém tiver mais alguma idéia eu agradeço
urubatan
Moderador
[Avatar]

Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline

bbmoura wrote:já tentei atualizar o myfaces p 1.1.3 e utilizar componentes do Tomahawk como t:dataList / t:datatable / t:commandLink .. mas tds dao o mesmo erro ..
isso é bastante fustrante, pois o JSF se mostra um excelente framework p desenvolvimento web, porém não poderia apresentar esses error para coisas tão simples .. obrigado pelas resposta .. se alguém tiver mais alguma idéia eu agradeço

eu falei apra usar componentes proprios para isto, como o panelNavigation

[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
[WWW]
bbmoura
Entusiasta Java

Membro desde: 16/05/2005 10:46:07
Mensagens: 16
Offline

o problema é que o panelNavigation só aceita <t:commandNavigation> e eu preciso passar uma list (util.List) .. dai não me adianta .. agradeço as tuas respostas ... mas ainda não sei oq fazer
urubatan
Moderador
[Avatar]

Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline

se tu quer algum dia ser um programador de verdade, tu vai ter que aprender a olhar a porcaria da documentação com atenção

http://myfaces.apache.org/tomahawk/panelNavigation2
aceita:
<t:navigationMenuItem> tags (NavigationMenuItem)
<t:navigationMenuItems> tags (NavigationMenuItem(s))

[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
[WWW]
bbmoura
Entusiasta Java

Membro desde: 16/05/2005 10:46:07
Mensagens: 16
Offline

obrigado pela parte que me toca (apesar de achar que mereci hehe), é q eu tinha olhado apenas o panelNavigation... não tinha visto o panelnavigation2 .. acho que agora vou poder gambiarrar com este componente ... apesar de achar que é uma falha mt grande uma dataTable não aceitar links dinâmicos ... valeu pela atenção ..
 
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Ir para:   
Powered by JForum 2.1.8 © JForum Team