Olá Pessoal!
Estou desenvolvendo com o jsf 1.1 (não tenho como mudar).
Tenho um componente “SelectOneMenu” que esta sendo carregado conforme abaixo:
[code]<brHtml:brSelectOneMenu id="destinatarioSelected" value="#{publicacaoBean.nomeLista}" style="width: 320px">
<f:selectItem itemLabel="#{msgs.importar_arquivo}" itemValue="0"/>
<f:selectItems value="#{publicacaoBean.selecaoDestinatarios}" />
</brHtml:brSelectOneMenu>[/code]
–BEAN
private String nomeLista;
getters setters
[code]public List getSelecaoDestinatarios() throws SQLException, JDOMException, IOException {
List<SelectItem> lst = new ArrayList<SelectItem>();
//lendo xml da maquina local
File f = new File("c:/ambiente_teste/layoutListasPublicacoes.xml");
SAXBuilder sb = new SAXBuilder();
Document d = sb.build(f);
Element mural = d.getRootElement();
List elements = mural.getChildren();
Iterator i = elements.iterator();
while (i.hasNext()) {
Element element = (Element) i.next();
SelectItem item = new SelectItem(element.getAttributeValue("CodPublicacao")+"-"+element.getAttributeValue("NomePublicacao") , element.getAttributeValue("NomePublicacao"));
lst.add(item);
}
return lst;
} [/code]
Na hora de salvar esta ok, minha dificuldade esta na hora de alterar, Na edição eu seleciono num datatable o registro e outra pagina é aberta com os dados para edição, os textbox estão sendo preenchidos ok. Não estou conseguindo fazer com que o SelectOneMenu venha setado com o valor que veio do banco. Alguem pode me ajudar??
Método que popula a pagina para edição:
[code]public void publicacaoSelecionadaParaEdicao(ActionEvent e) throws SQLException, IOException{
if (getListaPublicacao().size() > 0) {
for(int i = 0; i < getListaPublicacao().size(); i++){
if (this.publicacao.getChecked().get(getListaPublicacao().get(i).getId())) {
this.qtdEditar = qtdEditar + 1;
publicacao.setId(getListaPublicacao().get(i).getId());
publicacao.setNome(getListaPublicacao().get(i).getNome());
publicacao.setNumeroLista(getListaPublicacao().get(i).getNumeroLista());
publicacao.setNomeLista(getListaPublicacao().get(i).getNomeLista());
publicacao.setObjetivo(getListaPublicacao().get(i).getObjetivo());
publicacao.setFrequencia(getListaPublicacao().get(i).getFrequencia());
publicacao.setGestor(getListaPublicacao().get(i).getGestor());
publicacao.setPathArquivo(getListaPublicacao().get(i).getPathArquivo());
publicacao.setPathPub(getListaPublicacao().get(i).getPathPub());
publicacao.setPathZip(getListaPublicacao().get(i).getPathZip());
}
}
if (this.qtdEditar == 0) {
EmpresaFacesUtils.addInfoModalMessage("Selecione uma Publicação.", null, EmpresaViewExceptionActionType.PATH, false);
return;
} else if (this.qtdEditar > 1) {
EmpresaFacesUtils.addInfoModalMessage("Selecione apenas uma Publicação.", null, EmpresaViewExceptionActionType.PATH, false);
return;
}
}
}[/code]
Desde já agradeço a ajuda!