[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

Filtro List<Bean> com itens pré-selecionados

Não deixe de perguntar, solucione aqui suas dúvidas...

Filtro List<Bean> com itens pré-selecionados

Mensagempor jtakata » Qua Fev 22, 2012 7:28 pm

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
jtakata
 
Mensagens: 350
Data de registro: Seg Abr 26, 2010 11:04 pm

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

Mensagempor rogelgarcia » Sáb Fev 25, 2012 10:40 am

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.
rogelgarcia
Administrador
 
Mensagens: 674
Data de registro: Qua Jul 08, 2009 9:02 am

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

Mensagempor jtakata » Sáb Fev 25, 2012 3:57 pm

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:
jtakata
 
Mensagens: 350
Data de registro: Seg Abr 26, 2010 11:04 pm

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

Mensagempor jtakata » Sáb Fev 25, 2012 4:09 pm

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.
jtakata
 
Mensagens: 350
Data de registro: Seg Abr 26, 2010 11:04 pm

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

Mensagempor rogelgarcia » Qui Mar 01, 2012 11:58 am

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.
rogelgarcia
Administrador
 
Mensagens: 674
Data de registro: Qua Jul 08, 2009 9:02 am

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

Mensagempor jtakata » Qui Mar 01, 2012 2:14 pm

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.
jtakata
 
Mensagens: 350
Data de registro: Seg Abr 26, 2010 11:04 pm

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

Mensagempor rogelgarcia » Qua Mar 07, 2012 2:58 pm

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)
rogelgarcia
Administrador
 
Mensagens: 674
Data de registro: Qua Jul 08, 2009 9:02 am

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

Mensagempor jtakata » Qua Mar 07, 2012 4:41 pm

jtakata
 
Mensagens: 350
Data de registro: Seg Abr 26, 2010 11:04 pm

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

Mensagempor rogelgarcia » Qua Mar 07, 2012 4:46 pm

rogelgarcia
Administrador
 
Mensagens: 674
Data de registro: Qua Jul 08, 2009 9:02 am

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

Mensagempor jtakata » Qua Mar 07, 2012 5:54 pm

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?
jtakata
 
Mensagens: 350
Data de registro: Seg Abr 26, 2010 11:04 pm

Próximo

Retornar para Dúvidas

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 11 visitantes

cron