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…
Amigo, você já tentou em vez de esperar uma parâmetro, criar um atributo de instância no seu controlador?
por exemplo:
[code]@ManagedBean
public class SeuMB(){
private String suaString;
public void setSuaString…
public String getSuaString…
public DataModel getListarComentarios()… //sem o parâmetro
}[/code]
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.
http://www.guj.com.br/java/17544-expression-language–como-passar-como-parametro-p-bean-