quarta-feira, 23 de janeiro de 2013

JSP - Melhorar o primeiro exemplo com Java Beans

No artigo anterior vimos um primeiro exemplo de utilização de JSP, onde era usado exclusivamente Java embebido no HTML para fazer toda a parte dinâmica.
Neste artigo, vamos melhorar a estrutura do exemplo anterior, usando um Bean. Esta estrutura melhora a legibilidade e separa o código da interface com o utilizador, do código para efetuar os cálculos.
No caso de uma aplicação mais complexa, a estrutura do primeiro exemplo conduziria a uma solução de difícil compreensão e de difícil manutenção. A estrutura que é dada à solução neste artigo, é mais legível e portanto mais fácil de manter e fazer evoluir.

Assim, devemos criar um projeto, tal como em  Primeiro Exemplo de JSP, e fazer as mesmas alterações a index.jsp.
Depois, criamos o novo ficheiro JSP (newjsp.jsp):


Contrariamente ao que vimos em Primeiro Exemplo de JSP, este ficheiro não tem embebido o código de obtenção dos parâmetros nem o de cálculo do resultado da operação. Tem, isso sim, a utilização de um componente JavaBean, que não é mais do que uma classe a quem são passados os parâmetros e efetua os cálculos pretendidos.


A tag <jsp:useBean> é um elemento de ação usado para instanciar um componente JavaBean. Neste caso, o componente a instanciar é a classe Calculator que está localizada no package Beans.
O scope do useBean está definido como page, significando que a bean instanciada pode ser usada na página atual.
Outros scopes possíveis seriam:
- request:  o bean pode ser usado a partir de qualquer JSP que processe o mesmo pedido (request).
- session:  o bean pode ser usado a partir de qualquer JSP na mesma sessão que a JSP que criou o bean.
- application: o bean pode ser usado a partir de qualquer página na mesma aplicação da JSP que criou o bean.

A tag <jsp:setProperty> é usada para atribuir os valores aos parâmetros da Bean. Equivale a invocar o setter da propriedade da classe identificada, e atribuir-lhe o valor do parâmetro identificado (obtido do request via URL).

Falta apenas criar a nossa JavaBean:
- Criamos um package Beans:



- Criamos uma nova classe (Calculator) nesse package:



O código da classe é:


package Beans;

public class Calculator {
    private int lhs   = 0;
    private int rhs   = 0;
    private int result= 0;
    private String oper = "";

    public int getLhs() {
        return lhs;
    }

    public void setLhs(int lhs) {
        this.lhs = lhs;
    }

    public int getRhs() {
        return rhs;
    }

    public void setRhs(int rhs) {
        this.rhs = rhs;
    }

    public String getOper() {
        return oper;
    }

    public void setOper(String oper) {
        this.oper = oper;
    }
    
    public int getResult() {
        if(oper.equals("add")){
            result = lhs + rhs;
        }
        else if(oper.equals("sub")){
            result = lhs - rhs;
        }
        else if(oper.equals("mul")){
            result = lhs * rhs;
        }
        else if(oper.equals("div")){
            result = lhs / rhs;
        }
        return result;
    }
}



O resultado é exatamente o mesmo que o obtido no Primeiro Exemplo de JSP.

Até à próxima!!!

Sem comentários:

Enviar um comentário