Estou quebrando a cabeça em uma coisa que talvez seja simples, porem ainda não cheguei em uma solução. Tenho uma tabela que lista questões de uma avaliação e nela tenho inputText onde é digitada a nota para cada uma das questões, meu problema esta em armazenar essas notas em uma lista para conseguir salvar posteriormente, pois é usado o mesmo value para todos os inputText. Já tentei usar ajax para criar a lista porem sem sucesso. Alguem poderia auxiliar?.
privateList<QuestaoAvaliacao>listaQuestaoAlunos;privateList<Matric_disciplina>listaDisciplinas;privateList<Alternativas>listaQuestao;privateList<Double>listaNotaAtribuida=newArrayList<Double>();privateDoublenotaSelecionada;//método onde estou tentado adicionar o valor do input na listapublicvoidcapturaNota(){listaNotaAtribuida.add(notaSelecionada);}//método que salva.publicvoidfinalizaAvaliacao(){try{if(digAlun!=null){for(inti=0;i<listaQuestaoAlunos.size();i++){for(inty=0;y<listaDisciplinas.size();y++){for(intj=0;j<listaNotaAtribuida.size();j++){digAlun.setNota(listaNotaAtribuida.get(j));digAlun.setAvl(av);digAlun.setQuestao(listaQuestaoAlunos.get(i).getQuestao());digAlun.setTurma(listaDisciplinas.get(y).getTurma());digAlun.setUsuario(usuario);digAlun.setDataPreenchimento(newDate());abDAO.saveOrUpdate(digAlun);digAlun=null;reset();}}}JSFUtil.addInfoMessage("Avaliação finalizada com sucesso!. Agradecemos sua participação!");}}catch(Exceptione){e.printStackTrace();}}
Renan.
R
rof20004
Uma pergunta, fazendo desse jeito, ele esta sempre salvando somente 1 nota ?
R
renanlalier
Ele não esta nem chamando o método do listener, isso que esta me intrigando mais ainda.
R
rof20004
Ele so executa quando o inputTxt (que é inputMask) perde o foco, ja fez o debug ?
R
renanlalier
Ele nao executa em momento nenhum, ja tentei colocar inputText comum e tambem nao funcionou. O mais engraçado ainda é que não esta ocorrendo nenhum erro. Não cheguei fazer o Debug. Percebi que quando troco o process="@this" por @all ele executa o evento e da erro por estar tentando inserir algo null.
R
rof20004
tira o proccess, pode retirar ele todo, e testa sem ele. Vou pegar um projeto meu aqui em JSF pra testar algo pra voce, so espera um pouco, maquina aqui é lenta.
R
renanlalier
ja tentei tirando o process tambem e nada.
blz espero valeu.
Obrigado.
R
rof20004
Subindo JBoss 7 aqui ‘-’, hehehe, tenho que comprar outro notebook, esse ja deu!!!
R
renanlalier
hahaha eu tbm nao fico mto longe viu, to precisando comprar outro tbm.
R
rof20004
Entao, testei aqui e entrou no metodo, porem, acho que isso que faltou voce criar, crie getters e setters para a lista e para a nota.
Ja na pagina voce tira o proccess, nao é necessario.
R
renanlalier
cara valeu, mas o problema não é esse não, até fiz o que vc pediu. Vale lembrar que com apenas um inputText eu consigo fazer funcionar, mas no meu caso eu tenho vários input utilizando o mesmo value, pois todos estao em uma tabela.
cara não consegui extrair sua idéia para o meu caso.
Valeu.
Renan.
R
rof20004
renanlalier:
cara valeu, mas o problema não é esse não, até fiz o que vc pediu. Vale lembrar que com apenas um inputText eu consigo fazer funcionar, mas no meu caso eu tenho vários input utilizando o mesmo value, pois todos estao em uma tabela.
Mais alguma sugestão?
Valeu.
Renan.
Era pra funcionar, independente da quantidade de inputTexts que voce tem, a lista iria armazenar de um por um sem problemas. Estranho, ou realmente nao entendi o seu problema, ‘-’. Voce quer ir informando notas a cada inputText, e a cada mudança de foco ir armazenando numa lista, so que acho que talvez seja esse seu problema, ja que todos tem o mesmo value, logo, se voce sair do foco do input numero 10, essa lista vai pegar o valor de TODOS os inputs, ja que todos tem o mesmo value, acho que o correto seria voce informar um vetor entao, ou entao uma variavel diferente para cada input, porque se realmente todos tem o mesmo value, e voce esta submetendo via ajax a nota de 1, logo vce estara submetendo a nota de todos. Independente de qual ira perder o foco, visto que o bean pegara pelo nome do atributo.