Criando uma lista na sessão com DWR – Parte 3
Na parte 3 do nosso artigo vamos ver que tipos de métodos iremos criar no nosso FacadeAjaxSession explicado no artigo anterior.
Agora veremos os trechos dos novos métodos:
Método para adicionar um objeto na sessão:
public void addMapSession(BeanSession beanSession){ Session session = new SessionFacade();//01 Map<String, BeanSession> sessionMap = null;//02 if(session.getAttribute("sessionMap") != null){ //03 sessionMap = (Map) session.getAttribute("sessionMap");//04 }else{ sessionMap = new HashMap<String, BeanSession>();//05 } String keyMap = beanSession.getId() + "_" + beanSession.getName();//06 beanSession.setKeyMap(keyMap); //07 sessionMap.put(keyMap, beanSession); //08 session.setAttribute("sessionMap", sessionMap); //09 }
Listagem 03: Método que adiciona em um atributo da sessão o objeto passado como parâmetro.
Na listagem 03 vimos o método addMapSession() que espera como parâmetro um BeanSession(ver listagem 01), veja baixo:
01:Criamos o objeto session a partir de nossa classe SessionFacade;
02:Criamos um Map(sessionMap);
03: Recuperamos da sessão o atributo utilizado, e verificamos se o mesmo já existe;
04:Caso o Atributo exista(linha 03) pegamos o valor desse atributo e adicionamos no Map(sessionMap);
05:Caso o atributo não exista inicializamos o sessionMap;
06:Criamos uma variável que servirá como identificador do objeto, que será utilizado no lado JavaScript para identificar o objeto que o usuário está clicando. OS: Como não estou utilizando dados de um banco, tive que fazer essa “adaptação” para simular o id. O que eu fiz foi nada mais que garantir que o objeto que estou inserindo neste momento não terá o mesmo id do próximo;
07:Adiciono esse keyMap(identifica o mapa, linha 06) no meu BeanSession;
08:Adiciono no sessionMap a chave do meu mapa(keyMap) e o meu objeto(BeanSession).
Método para listar um objeto na sessão:
public Map listMapSession() throws Throwable { Session session = new SessionFacade(); Map<String, BeanSession> sessionMap = null; if (session.getAttribute("sessionMap") != null) { sessionMap = (Map) session.getAttribute("sessionMap"); } else { sessionMap = new HashMap<String, BeanSession>(); } return sessionMap; }
Listagem 04: Método que retorna um Map da sessão.
Este método dispensa explicação mais detalhada, ele apenas retorna um Map que está salvo em um determinado atributo na sessão.
Método para excluir um objeto da sessão:
public void removeValueMap(BeanSession beanSession) throws Throwable { Session session = new SessionFacade(); Map sessionMap = null; if (session.getAttribute("sessionMap") != null) { sessionMap = (Map) session.getAttribute("sessionMap"); } else { sessionMap = new HashMap<String, BeanSession>(); } if (sessionMap.containsKey(beanSession.getKeyMap())) { sessionMap.remove(beanSession.getKeyMap()); } session.setAttribute("sessionMap", sessionMap); }
Listagem 05: Método que exclui o objeto passado como parâmetro da sessão.
Um método também bem simples. Recebe o objeto como parâmetro, recupera o valor da sessão, verifica se existe um objeto no Map através da chave (keyMap), caso exista ele remove o objeto do Map e adiciona novamente o Map na sessão.
São métodos simples e claro precisam de mais alguns requintes, mas, esse não é o objetivo do nosso artigo. Quero apenas exemplificar essa funcionalidade.
No próximo artigo(parte 4) iremos ver a implementação no lado JavaScript.
Abraços
cost of retin-a
diclofenac gel canada diclofenac 2 diclofenac gel otc
buy dapoxetine tablets where can i buy dapoxetine in canada dapoxetine online australia
proscar uk online cheap proscar online discount proscar
buy acyclovir no prescription
Double dosage of 150 mg clomid is not advised due to severe side effects.
Thanks to glyburide metformin, I no longer have to worry about the highs and lows of my type 2 diabetes.
retin a coupon
I’m glad I visited accutane.com before starting on the medication.
I’ve tried different pharmacies to find the best price of Allopurinol.
buy lexapro cheap order generic lexapro online where can i buy generic lexapro
What’s the best website to order Accutane from?
elimite cost elimite cream 5 elimite canada
Lyrica 150 mg is expensive but it’s worth it to me for the pain relief it gives me.
Order Clomid is known to stimulate ovulation, increasing the chances of pregnancy.
Cipro XR 500 should be taken for the full prescribed length of time, even if you feel better sooner.
sildenafil rx drugstore online
fildena india
Can I buy Accutane without prescription?
motilium without prescription motilium motilium medicine
20mg daily prednisone
I’m worried I’ll run out of Lasix 40 before my next refill.
sildenafil price 100mg
albendazole 400 mg online where to get albendazole albendazole online purchase
prednisone us prednisone for sale without prescription prednisone 8 pills
fildena india buy fildena 100 mg fildena 50 online
where can i get acyclovir over the counter cheap acyclovir online acyclovir cream price south africa
I trust the science behind the Synthroid brand name and its use of synthetic thyroid hormones.
I’ve tried many different clomid products over the years, but these buy clomid pills are the best!
vardenafil generic from canada vardenafil order vardenafil brand name
how can i get avodart avodart price uk generic brand of avodart
The Clomid online pharmacy had competitive shipping rates.
cymbalta 25mg cymbalta buy cymbalta 30mg tab
dexamethasone 60 mg dexamethasone over the counter dexamethasone 2mg tablets price
Cipro generic is a broad-spectrum antibiotic, meaning it can treat a wide range of bacterial infections.
plavix 75 mg daily clopidogrel 75 mg tablet plavix 7314
prednisone 500 mg
neurontin medicine neurontin tablets 300 mg neurontin 800 mg
where can i get erythromycin
diclofenac brand name uk diclofenac singapore diclofenac 150 mg
cost of trazodone in canada trazodone buy online trazodone drug
ventolin without a prescription
dexamethasone 0.25 mg tablet dexamethasone where to get dexamethasone without prescription
My doctor told me to avoid taking 1500 mg metformin if I have kidney problems.
Will the generic for Cipro interact with my other medications?
cleocin online without a prescription medication cleocin cleocin topical for acne
kamagra oral jelly 50mg kamagra oral jelly cheapest kamagra for sale
We guarantee satisfaction when you buy Lyrica cheap online from our pharmacy.
flomax singapore flomax 0.8 mg buy flomax generic
discount sildalis 120mg sildalis canada generic sildalis