Alguem ai pode me ajudar? Estou com o seguinte problema:
Preciso criar um Value Binding dinamicamente de um SelectManyCheckBox com um ArrayList, já vi alguns exemplos de códigos, porem não está funcionando.
Este é o código da criação do componente
HtmlSelectManyCheckbox questaoFechadaCheck = new HtmlSelectManyCheckbox();
//...Criação dos select item
String valueBind = "#{pesquisaBackingBean.respostas}";
questaoFechadaCheck.setValueBinding("respostas", app.createValueBinding(valueBind));
E esse é o backing bean
public class PesquisaBackingBean {
private ArrayList<String> respostas = new ArrayList<String>();
public ArrayList<String> getRespostas() {
return respostas;
}
public void setRespostas(ArrayList<String> respostas) {
this.respostas = respostas;
}
}
Parece que está certo, porem quando eu dou um submit no formulário, os métodos sets e gets do backingBean não são invocados.
Alguem sabe como fazer funcionar?
Opa cara, tudo bom?
Meu querido, eu não entendi direito o seu código. Acho que está faltando algo não?
Bem, pelo que eu consegui entender, você está criando o componente como um objeto normal. Você deve criar seu componente diretamente de fábrica de componentes da aplicação JSF.
Ex:
Acabei postando código errado rsrs, eu tentei criar o componente direto pra testar e acabei postando meu teste.
Bom, já estou criando da factory, porem o problema continua… não faço nem idéia do que seja.
HtmlSelectManyCheckbox questaoFechadaCheck = ....
//...Criação dos select item
String valueBind = "#{pesquisaBackingBean.respostas}";
questaoFechadaCheck.setValueBinding("value", //coloquei "value" aqui, pois este é o nome da propriedade do SelectManyCheckbox
app.createValueBinding(valueBind));
Rapaz
Você tá fazendo igual ao que o urubatan está fazendo né? Pelo que já fiz, sempre foi desse jeito mesmo.
Veja se não é algo da renderização da sua página.
Veja também algum exemplo bem simples, só para testar se funciona mesmo (isolando a criação do componente)