Olá a todos!
Estou tentando acessar um map que está na minha sessão, o problema é que eu não consigo…
segue o código:
metodo que joga meu map na sessão
private Map form = new HashMap();
/**
* Faz a persistencia dos objetos no map form e coloca ele na sessão ou no request dependendo do
* escopo que foi usado na annotation Persistir
* @param Instancia da classe onde os objetos objetos a serem persistidos estão anotados.
* @return Não aplicavel
*/
public String execute(Object obj){
Object[] args = {};
Class classe = obj.getClass();
Method[] metodos = classe.getDeclaredMethods();
Persistir annPers;
for(int cont = 0; cont < metodos.length; cont++){
Method metodoCorrente = metodos[cont];
if(metodoCorrente.isAnnotationPresent(Persistir.class)){
annPers = metodoCorrente.getAnnotation(Persistir.class);
if(annPers.escopo().equalsIgnoreCase("session")){
try {
if(annPers.nomeObjeto().equals("")){
form.put(metodoCorrente.getName().replace("get", "").toLowerCase(), metodoCorrente.invoke(obj, args));
}else{
form.put(annPers.nomeObjeto(), metodoCorrente.invoke(obj, args));
}
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}else if(annPers.escopo().equalsIgnoreCase("request")){
try {
if(annPers.nomeObjeto().equals("")){
ServletActionContext.getRequest().setAttribute(metodoCorrente.getName().replace("get", "").toLowerCase(), metodoCorrente.invoke(obj, args));
}else{
ServletActionContext.getRequest().setAttribute(annPers.nomeObjeto(), metodoCorrente.invoke(obj, args));
}
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
}
ActionContext.getContext().setSession(form);
return "";
}
a idéia é pegar um value de uma key desse map que está na sessão pelo jsp.
exemplo ( não funcina desse jeito )
<s:property value="#session.form.key"/>
queria que esse código acima escrevesse na minha tela o valor da key que está no map form.
alguem sabe como fazer isso???
obrigado