DataTable - value com string como argumento.....como?

1 resposta
felipehts

Boa noite pessoal !

Como passar uma string dentro de um “value” de um datatable… ex:

CODIGO NO XHTML
<p:dataTable value="#{comentarioController.listarComentarios("Gostaria de uma String aqui")}"   >

CODIGO NO CONTROLLER:
public DataModel getListarComentarios(String parametro) {
//etc
}

OBS: Fiz exatamente dessa forma, porém não funciona, parece que não pode ser feito dessa forma…
Alguém poderia me ajudar ??? vlw a todos…
Preciso passar argumento para poder reutilizar o metodo em outra situações, tipo quero listar todo os Comentarios, porém só os que tiverem com o argumento X…

1 Resposta

Michel_Alves_Silva

Amigo, você já tentou em vez de esperar uma parâmetro, criar um atributo de instância no seu controlador?
por exemplo:

@ManagedBean
public class SeuMB(){
private String suaString;

public void setSuaString...
public String getSuaString...
public DataModel getListarComentarios()... //sem o parâmetro
}

Daí você fazia o Binding com um componente, por exemplo um inputText assim:

<h:inputText value="#{seuMB.suaString}"...

e poderia colocar a lógica do seu método assim:

public DataModel getListarComentarios() { //sem parâmetro...
        // ...porém pode acessar o membro seuString atualizado.   
 }

Se seu método não for no mesmo ManagedBean como eu estou supondo, então talvez você poderia dar uma "empacotada" nele assim:

public DataModel getListarComentarios() { 
        return ....getListarComentarios(suaString);  
 }

obs importante: segundo a resposta abaixo, não é recomendado parametrizar chamadas utilizando a E.L.
[url]http://www.guj.com.br/java/17544-expression-language--como-passar-como-parametro-p-bean-[/url]

Criado 2 de junho de 2012
Ultima resposta 2 de jun. de 2012
Respostas 1
Participantes 2