Struts 2 e Request

Bom Dia,

Preciso de uma enorme ajuda!

Eu estou estundando Struts 2 e me deparei com um seguinte problema, no Struts 1… eu fazia assim para recuperar dados do request:

    public static EmpresaDAO getEmpresa(HttpServletRequest request) {
        EmpresaDAO dao = (EmpresaDAO) request.getSession().getAttribute("empresa_dao");
        if (dao == null) {
            dao = new EmpresaDAO();
            request.getSession().setAttribute("empresa_dao", dao);
        }
        dao.setRequest(request);
        return dao;
    }
Com poderia cria esse método usando Struts 2??

Cara, da uma olhada na doc nesse link que vc vai entender como fazer

http://struts.apache.org/2.x/docs/accessing-application-session-request-objects.html

abs

Edilson,

Sem querer ser chato ou até parecer preguiçoso, por acaso você possui alguma coisa/link que tenha um exemplo de “persistencia” com banco de dados (sem hibernate) usando Stuts 2, sinceramente estou meio perdido, comecei estudar recentemente e antes só conhecia a versão 1…

    public ActionForward newCadastro(ActionMapping mapping,
            ActionForm form,
            HttpServletRequest req,
            HttpServletResponse res){
        
        req.setAttribute("dto", new AcessoDTO()); 
        req.setAttribute("action", "insert");
        setDefaultParam(req);
        return mapping.findForward("SUCESSO");
        
    }

Quando eu criava algum método em minhas Actions esse sempre já possuiam os "request e reponse" e esses parametros eu ia passando para controlar as sessões:

[code]
    public ActionForward doConfirm(ActionMapping mapping,
            ActionForm form,
            HttpServletRequest req,
            HttpServletResponse res){
        
        setDefaultParam(req);
        String action = req.getParameter("action");
        if("update".equals(action))
            return update(mapping, form, req, res);
        else if("insert".equals(action))
            return insert(mapping, form, req, res);
        
        
        
        return mapping.findForward("SUCESSO");
    }
[/code]

robinson, não leva a mal não cara, mas aconselho vc a baixar este livro e dar uma estudada, pois como o pessoal está debatendo na net, o Struts2 de Struts só tem o nome.

eu usei struts 1 em um projet o struts 2 em outro e posso falar que a diferença é realmente grande.

boa sorte.

Realmente está tudo muito diferente, fiquei mal acostumado a ter quer configurar tanta coisa, setar isso e aquilo e na versão dois muitas dessas tarefas não são necessárias.

Valeu pela dica.

Realmente não tem que configurar tanta coisa, e mudou muito do 1 pro 2. Mas eu tô cada vez mais chateado com o Struts 2, tem trazido problemas chatos.

Concordo plenamente, e um dos problemas mais chatos é a forma de se trabalhar os objetos na sessao.

[code]HttpServletRequest request = ServletActionContext.getRequest();

ou

HttpServletRequest request = (HttpServletRequest) ServletActionContext.getContext().get(StrutsStatics.HTTP_REQUEST);[/code]

E aquele negócio de tirar o EL? Eu sei que foi medida de segurança, mas matou muita gente.

É…sinceramente fiquei assustado!
Estou em um projeto e o dead line é agora em setembro, esse até que simples, mas eu não contava com esse imprevisto de ter que “aprender” novamente Struts.

[quote=edilson_x][quote]

Realmente não tem que configurar tanta coisa, e mudou muito do 1 pro 2. Mas eu tô cada vez mais chateado com o Struts 2, tem trazido problemas chatos.

[/quote]

Concordo plenamente, e um dos problemas mais chatos é a forma de se trabalhar os objetos na sessao.[/quote]

Qual é o problema? implementar uma interface no máximo???

Tirar EL? Não fiquei sabendo disso… Tem algum link??? Eu sei que foram reportados bugs de segurança no OGNL, mas se for retirar tudo o que é OGNL de toda aplicação que usa… OoO

[quote=Tecnoage][quote=edilson_x][quote]

Realmente não tem que configurar tanta coisa, e mudou muito do 1 pro 2. Mas eu tô cada vez mais chateado com o Struts 2, tem trazido problemas chatos.

[/quote]

Concordo plenamente, e um dos problemas mais chatos é a forma de se trabalhar os objetos na sessao.[/quote]

Qual é o problema? implementar uma interface no máximo???[/quote]

O problema maior não é esse, é que o Framework sofreu mudanças drasticas e a documentação não é rica.
Por exemplo, quem usa Struts 2 e JPA sofre um pouco para efetuar algumas configurações.
A fusão entre Strust e WebWork criou uma mudança que quem estava acostumado com a versão anterior teve que
“aprender” a nova.

Por exemplo, eu tenho o seguinte problema na versão 2.0.9. Passagem de parâmetros usando annotations. Alguém tem?

vi um post seu sobre isso.

tenho problemas em redirecionar o result de uma action para outra action em outro namespace.

vi um post seu sobre isso.

tenho problemas em redirecionar o result de uma action para outra action em outro namespace.[/quote]

Sem passagem de parâmetros eu consigo mudar para outro namespace.

A documentação do Struts 2 é infinitamente maior e melhor do que a primeira versão…

[quote]quem usa Struts 2 e JPA sofre um pouco para efetuar algumas configurações.[/quote]Que “eu” saiba o Struts 2 não tem integração a Jpa e sim pro Spring que dá suporte pra jpa, qual a dificuldade não entendi…

Como assim passagem de parâmetros? Seria o mesmo que a tag <param do struts-config? Explique melhor o que você quer fazer…

[quote] Como assim passagem de parâmetros? Seria o mesmo que a tag <param do struts-config? Explique melhor o que você quer fazer…[/quote] Sim, seria. A annotation @Result. Tem um atributo params, um array de string, mas acontece de não funcionar.

-Pessoal to tentando usar request no struts 2 com :

HttpServletRequest request = (HttpServletRequest) ServletActionContext.getContext().get(StrutsStatics.HTTP_REQUEST);

não ta funcionando, devo implementar alguma Interface ???

Como faço para funcionar…vejo que não há suporte para o request dentro de uma Action…

Não sei se é isso que você quer. Mas eu quando quero pegar algo diretamente do request, eu faço:

ActionContext.getContext().getParameters();