Primeiro :oops: ... obrigado :D
"marcelomartins":
- Eu segui passo a passo o tutorial, e primeiro eu não achei a implementação da Interface UserSessionAware. Procurei na internet outros tutoriais e achei vários que usavam o mesmo esquema de uma interface Classe+Aware e incrivelmente nenhum deles fala da implementação desta Interface.
Na verdade essa interface apenas define qual o método será usado para setar o componente na action .. o código dela é o seguinte:
public interface UserSessionAware {
public void setUserSession(UserSession usr);
public UserSession getUserSession();
}
(no meu caso eu adicionei o get também pro filtro de login poder se basear nesta interface).
Estamos providenciando pra colocar logo o código do tutorial para download ....
"marcelomartins":
- O erro que deu pra mim é que a classe UserSession é nula quando vou fazer o userSession.setUser() e quando vou comprar pra ver se tem usuario logado com userSession.getUser(). Então nao entendi onde esta classe é instanciada.
A classe é instanciada pelo próprio framework, essa é a função do container de IoC dele ... ele instancia e gerencia o lifecycle do componente (no caso nós dissemos no arquivo de configuração que é pra session, entao o mesmo objeto será usado enquanto exister uma sessão do usuário no server).
"marcelomartins":
- Em todas as minhas actions (as que extenderam a classe que extende ActionSupport) vou precisar ter User model = new User() e public Object getModel()?? isso é obrigatório? não tem como abstrair??
Quando você extende ActionSupport não precisa do model .... só será exigido se sua action implementar a interface ModelDriven .... no caso do tutorial foi definido que todas as actions seriam modelDriven, então nós já implementamos a interface na super classe de todas as actions do exemplo.
Não tem muito lógica abstrair o model porque teoricamente cada action utilizará um modelo de negócio, no login será User, em uma action de ckecout será o carrinho de compras e por ai vai.
Espero ter ajudado