Acessar variavel da sessão no struts 2

1 resposta
mcbarsotti

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 &lt 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

1 Resposta

mcbarsotti

ninguem tem idéia de como fazer isso??? :?:

Criado 29 de agosto de 2007
Ultima resposta 29 de ago. de 2007
Respostas 1
Participantes 1