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
generic benicar cost benicar 20 5 mg where can i get benicar
buy biaxin online biaxin tablets biaxin price in india
atarax for anxiety
buy fluoxetine tablets uk buy prozac online usa 6 prozac pills
20 mg amoxicillin amoxicillin mexico buy where can i get amoxicillin 875
plavix generic pill clopidogrel 150 mg plavix cost
dexamethasone price uk dexamethasone brand name otc dexamethasone
buy estrace pills online [url=http://estrace.charity/]estrace 0.01 cream price[/url] estrace for ivf
can i buy ventolin online
tamoxifen 5648 nolvadex for sale canada buy tamoxifen india
amoxicillin 500 mg prescription amoxicillin 5000 mg amoxicillin 45mg
baclofen 5 mg tab baclofen online without prescription baclofen 20 mg coupon
The lisinopril 20 mg brand name is a trusted option for blood pressure management.
avodart singapore buy avodart uk avodart generic cost
albendazole otc
My doctor suggested I buy Clomid online without prescription to help with fertility.
Anyone know where to find cheap Clomid pills online?
price of celexa citalopram 10 mg citalopram hbr tabs
My experience with Clomid UK was a nightmare from start to finish.
albendazole price in mexico
Do I need a prescription to buy lisinopril uk from a pharmacy?
avodart 0.5 mg capsule avodart online usa avodart online uk
valtrex singapore
celebrex 200 mg daily
price of estrace 2mg estrace best prices for estrace
generic silagra silagra pills in india canadian pharmacy silagra
benicar tablet benicar 40 5 mg benicar 80 mg
proscar online pharmacy proscar in usa discount proscar
generic motilium motilium where to buy in usa motilium price in india
amitriptyline price amitriptyline for sale online amitriptyline drug 1500 mg
baclofen 2265 baclofen 30 mg capsule baclofen tab 10mg
I used to have ankle swelling until my doctor prescribed me Lasix brand name.
how to get cytotec pills cytotec 200mg pills generic cytotec generic
buy estrace 2mg estrace drug estrace vaginal cream
celebrex pharmacy
Clomid Australia buy online – the most affordable option for fertility treatment.
An increase in uric acid levels may occur when Allopurinol Rx is stopped, so it is important to continue taking it as prescribed.
Choosing the best metformin brand in India is essential for effective diabetes management.
buy generic cymbalta online buy generic cymbalta canada 15 mg cymbalta
cheap sildalis sildalis cheap sildalis 120 mg order usa pharmacy
Long-term use of Allopurinol Rx may lead to liver or kidney damage, so close monitoring is necessary.
dexamethasone 0 75 mg dexamethasone 15 mg dexona
buy cheap avodart no rx avodart best price buy generic avodart online
azithromycin price australia
benicar hct generic benicar canada benicar 40 mg 12.5 mg
I have been taking allopurinol generic for years.
buy motilium tablets buy motilium online canada buy motilium 10mg
buy azithromycin 500mg uk
prednisone 2.5 mg price order prednisone online prednisone 40 mg daily
benicar 50 mg benicar brand name benicar buy