<h:selectOneMenu> selecionar e salvar uma String

Java

05/09/2012

Boa tarde, tenho uma classe e banco com a tabela CARGOS, com as seguintes colunas, id e cargo, e outra tabela e classe RP com varios campos, neste tenho um campo cargo também.

preciso salvar no banco RP, o cargo selecionado. Más não quero fazer um relacionamento pois o banco CARGO sempre será atualizado mensal por importação, e será substituido pelo anterior sendo assim os id serão alterados.

Tenho um codigo que faz da seguinte forma, mas ele salva o id, e id para mim não serve, pq não estou fazendo um relacionamento.

exemplo: Controller


@Controller("rppoiController")
@Scope("session")
public class RPPoiController {

private RP rp;

@Resource
private DaoGenerico<RP, Long> rpDao;
.....
    public Map<String, Object> getCargos() {
        cargoItem = new LinkedHashMap<String, Object>();

        for (Iterator<?> iter = cargoDao.todos().iterator(); iter.hasNext();) {
            Cargo c = (Cargo) iter.next();
            cargoItem.put(c.getCargo(), c.getId());// label,value
        }
        return cargoItem;
    }

...
}

Exemplo.
.XHTML

<h:selectOneMenu id="cargos" 
       value="#{rppoiController.rp.cargo}">
       <f:selectItems 
       value="#{rppoiController.cargos}" />
</h:selectOneMenu><strong> </strong></p>



já tentei enviando para uma variável do tipo Long, para ele receber o id de cargo, mesmo assim dá erro.
Roger Mendes

Roger Mendes

Curtidas 0

Respostas

Robson Teixeira

Robson Teixeira

05/09/2012

na tag <f:selectItems use os atributos itemValue e o var onde o var definirar a variaveis na iteração do selectItems e o itemValue definirá o que vai ser submetido.
GOSTEI 0
Roger Mendes

Roger Mendes

05/09/2012

amigo, não entendi o que vc quiz dizer, estou utilizando uma lista com mais de 30 campos, e preciso salvar o campo string nome, e não o id.
GOSTEI 0
Roger Mendes

Roger Mendes

05/09/2012

*quis dizer
GOSTEI 0
POSTAR