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