VRaptor, displayTag table com combo nas linhas, como selecionar valor?

Pessoal, tenho uma tabela com displayTag, nessa tabela, tenho 2 colunas que precisam ser combos.

Meu objeto tem os seguintes atributos: String status e String job.

Na table eu consigo exibir as outras propriedades normalmente, porém, as propriedades status e job que são combos e já vem pré definidas com valores padrões, o combo nao renderiza o valor correto. Como eu devo proceder?

Minha display:column está assim:

<display:table id="tabelaUsuario" name="${usuarioDataSource.list}" ...
<display:column title="Status">
                <center>
                    <select id="status" name="${tabelaUsuario.status}">
                        <option value="Pendente">Pendente</option>
                        <option value="Enviada">Enviada</option>
                        <option value="Confirmada">Confirmada</option>
                        <option value="Negociação">Negociação</option>
                        <option value="Adiada">Adiada</option>
                        <option value="Desistiu">Desistiu</option>
                        <option value="Concorrente">Concorrente</option>
                        <option value="Fechada">Fechada</option>
                    </select>
                </center>
            </display:column>

No caso, estão todas as linhas vindo com o valor ‘Pendente’ selecionado! Porém a maioria dos valores está como Fechada.

Aproveitando, como eu posso fazer para, ao escolher um outro valor nestes combos, que estão dentro de tabelas, o objeto que a linha representa, seja atualizado no banco?

o name do select tem que ser o nome uma propriedade, não uma ${}:

<select .. name="tabelaUsuario.status">....</select>

e se vc vai gerar o select na mão, pra selecionar o que está no banco, vai ter que fazer algo do tipo:

[code]

<option value="Pendente" <c:if test="${tabelaUsuario.status eq 'Pendente'>selected</c:if> >Pendente </option> ... mesma coisa pra cada uma das options [code]

Olá estou tendo um problema semelhante.

Eu crio o select na mão na volta do ajax, mas tenho um problema ao tentar selecionar um combo na minha grid.

O option é criado da seguinte maneira:

"<option value=’${grupoCombo.id}’ <c:if test=’${grupoCombo.id eq " + obj.grupoPai.id + “}’>selected=‘selected’</c:if> >${grupoCombo.id} - ${grupoCombo.descricao}”

O meu problema é que o campo “obj.grupoPai.id” não é reconhecido como o valor que retorna.

o teste grupoCombo.id == obj.grupoPai.id(json) não está sendo feito corretamente.

o erro que me retorna é esse: Cannot convert + obj.grupoPai.id + of type class java.lang.String to class java.lang.Long

E mesmo que eu coloque o Long.valueOf() ele não marca o combo como selecionado.

Os valores estão sendo retornados mas esse teste do c:if eu não consegui realizar de jeito nenhum.

O browser não consegue executar a JSP, quem faz isso é o servidor. Não dá pra fazer esse tipo de código dentro do código javascript.

Dentro do javascript (AJAX) vc precisa usar javascript.

Qual é o intuito desse código? como vêm os dados?

O intuito é carregar a grid com o combo preenchido e selecionado com o valor que está no banco a fim de fazer uma alteração nos dados através de ajax pela própria grid sem que seja necessário o submit que faz com que a tela pisque…

Infelizmente o usuário é meio chato quanto a isso… mas de toda forma tentarei fazer de outra maneira aqui…

Ao invés de modificar diretamente na grid vou carregar em outra página ou até mesmo na mesma página

Mesmo assim obrigado pelo esclarecimento.

vc está fazendo isso com displayTag + ajax, é isso?

Sim, mas já vi aqui outra forma de fazer, já deu certo do outro jeito aqui.

Vlw.