[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3824: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3247)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3826: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3247)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3827: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3247)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3828: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3247)
Next Framework • Ver Tópico - Filtro List<Bean> com itens pré-selecionados
Página 1 de 2

Filtro List<Bean> com itens pré-selecionados

MensagemEnviado: Qua Fev 22, 2012 7:28 pm
por jtakata
Rógel e demais membros.
Eu tenho um filtro do tipo List<Bean> para permitir que o usuário selecione mais de um item da lista, porém, eu queria que alguns itens já aparecessem selecionados.
Como eu faço isso, se é que dá pra fazer.
Grato,
Jorge

Re: Filtro List<Bean> com itens pré-selecionados

MensagemEnviado: Sáb Fev 25, 2012 10:40 am
por rogelgarcia
Você poderia colocar esse código em vários lugares.. como por exemplo sobrescrevendo o método listagem do crudcontroller.

Mas aqui, vou explicar como colocar esse código na inicialização do filtro.

Todos os objetos que as actions recebem, seja um filtro ou um bean, são chamados de command. Então o filtro que você recebe da listagem é um command, o bean que você recebe no editar do crud é um command.

Os commands são inicializados no método getCommandObject da classe MultiActionController (do next). O getCommandObject irá delegar ao método específico do tipo do command a tarefa de criação.

Se o command for de seção, ou seja, o usuário pode 'passear' no site que os valores do objeto são mantidos o método que cuidará da sua inicialização é o getSessionCommand. Esse é o caso do filtro do crud.

Se o command for de request, ou seja, para cada requisição um novo command é criado o método é o getCommand.

Você pode sobrescrever o getCommand ou o getSessionCommand para settar os valores desejados.

Repare que o método getSessionCommand não cria a todo momento um novo command, apenas quando ele não existe. Seria interessante você manter essa lógica para caso o ususário já tenha mudado o valor default o valor do usuário permaneça.

(veja o código fonte desses métodos para entender seu funcionamento)
http://code.google.com/p/nextframework/ ... r.java#716

------------------------------------------------
Alternativa mais simples

Se no construtor da sua classe você inicializar os valores desejados, isso irá refletir na tela. Então basta que no construtor da sua classe você inicialize a coleção.

Next.getObject(MeuDAO.class) pode te ajudar.

Re: Filtro List<Bean> com itens pré-selecionados

MensagemEnviado: Sáb Fev 25, 2012 3:57 pm
por jtakata
Vixi, será que estamos falando do mesmo assunto? :)
Vou tentar ser explicar melhor o meu problema (não é CRUD).
Eu tenho um cadastro de clientes e um de operações realizadas pelos clientes.
No filtro, eu tenho um List<Cliente> clientes; e um List<Cliente> clientesMovimento;.
A lista clientesMovimento é preenchida com base nas operações realizadas pelos clientes (pra não aparecer todo o cadastro de clientes e sim só aqueles que fizeram algum movimento(.
No JSP, eu tenho<t:property name="clientes" itens="${filtro.clientesMovimento }" />. Isso renderiza um <select...><option>cliente1</option><option>cliente2</option>....</select>.
Eu queria saber como eu faço para que em alguns <option> eu pudesse colocar <option selected="selected">.
Isso tudo que você explicou é pra isso que eu quero fazer? :roll:

Re: Filtro List<Bean> com itens pré-selecionados

MensagemEnviado: Sáb Fev 25, 2012 4:09 pm
por jtakata
Esqueci de mencionar que durante o desenvolvimento dessa tela eu tinha só o List<Cliente> clientes; e os clientes que tinham algum movimento eram colocados nessa lista e no JSP tinha só <t:property name="clientes"... />
O que acontecia era que aparecia todo o cadastro de clientes e aqueles que tinham movimento apareciam selecionados.

Re: Filtro List<Bean> com itens pré-selecionados

MensagemEnviado: Qui Mar 01, 2012 11:58 am
por rogelgarcia
O que você tem que ter no seu bean, é um Cliente e não uma lista de clientes.

Então faria assim:

<t:property name="cliente" itens="${clientesMovimento}"/>

Uma coisa é o valor que quer salvar, o cliente, outra são as opções clientesMoviemnto. ClientesMoviemnto não deve ser um atributo da sua classe, mas sim uma lista que você disponibiliza no request apenas para preencher a lista de opções.

Re: Filtro List<Bean> com itens pré-selecionados

MensagemEnviado: Qui Mar 01, 2012 2:14 pm
por jtakata
Se eu fizer como você diz, vou poder selecionar só um cliente.
Eu queria um combo em que pudesse escolher mais de um cliente.
Também queria que só aparecessem os clientes que fizeram algum movimento e não todos os clientes do cadastro.
Mesmo que eu fizesse como você diz, como eu faço para já vir um determinado cliente pré-selecionado?

Note que o que eu quero é um combo em que eu póssa selecionar mais de um cliente e que mais de um já viessem pré-selecionados.

Re: Filtro List<Bean> com itens pré-selecionados

MensagemEnviado: Qua Mar 07, 2012 2:58 pm
por rogelgarcia
O raciocínio que te falei está correto. A unica coisa que vai mudar é que ao invés de ter um Cliente no filtro, terá um List<Cliente>

Mas a lista dos itens do combo, vem de outro lugar mesmo, como eu expliquei. (São duas listas, a do valor do filtro e a lista com as opcoes disponiveis)

Re: Filtro List<Bean> com itens pré-selecionados

MensagemEnviado: Qua Mar 07, 2012 4:41 pm
por jtakata

Re: Filtro List<Bean> com itens pré-selecionados

MensagemEnviado: Qua Mar 07, 2012 4:46 pm
por rogelgarcia

Re: Filtro List<Bean> com itens pré-selecionados

MensagemEnviado: Qua Mar 07, 2012 5:54 pm
por jtakata
Eu escrevi errado.
Ao invés de itens="${clientesPreAssinalados}" seria itens="${filtro.clientesPreAssinalados}",
considerando que estaria tudo entre <t:tela useBean="filtro">....</t:tela> e que os dois List estariam dentro do bean filtro.
Mesmo assim, a sua solução é a correta?