Como reduzir a quantidade de scriplets em JSP?

Olá pessoal,
Tenho um arquivo JSP (cadastraveiculo.jsp) que recebe dados de um veículo e o coloca na sessão (a chave é a placa do veículo). Tenho também outro arquivo JSP (buscar.jsp), que além de buscar um veículo da sessão e apresentar os dados no formulário, permite a atualização dos dados deste veículo.

Acontece que tenho scriptlets pra resolver este problema, o que não é adequado. Como eu poderia substituir esses scriptlets por tags JSP de forma mais adequada para que as páginas fiquem limpas?

Segue o código dos dois arquivos.

cadastraveiculo.jsp

[code]<jsp:useBean id=“veiculo” class=“beans.Veiculo” />
<jsp:setProperty name=“veiculo” property="*" />

<%
if(request.getParameter(“bt_cadastrar”) != null){
String placa = request.getParameter(“placa”);

    if(placa != null){
        session.setAttribute(placa, veiculo);
    }
    
}

%>

Veículos

Cadastro de Veículo


Placa:
Ano:
Marca:
Modelo:
Combustível: Gás Gasolina Álcool
Único dono: Sim Não
Descrição:
[/code]

buscar.jsp

[code] <%@ page import=“beans.Veiculo” %>
<%
Veiculo v = new Veiculo();
String botaoBuscar = request.getParameter(“bt_buscar”);
if(botaoBuscar != null){
String placa = request.getParameter(“placa”);
if(placa != null){
v = (Veiculo)session.getAttribute(placa);
if(v == null){
v = new Veiculo();
}
}
}else if(request.getParameter(“bt_alterar”) != null){
String placa = request.getParameter(“placa”);
String ano = request.getParameter(“ano”);
String modelo = request.getParameter(“modelo”);
String marca = request.getParameter(“marca”);
String unicoDono = request.getParameter(“unicoDono”);
String combustivel = request.getParameter(“combustivel”);
String descricao = request.getParameter(“descricao”);

    Veiculo veiculo = new Veiculo(placa, ano, modelo, marca, combustivel, unicoDono, descricao);
    if(placa != null){
        session.setAttribute(placa, veiculo);
    }
    
}

%>

<jsp:useBean id=“veiculo” class=“beans.Veiculo” />
<jsp:setProperty name=“veiculo” property=“placa” value="<%= v.getPlaca() %>" />
<jsp:setProperty name=“veiculo” property=“ano” value="<%= v.getAno() %>" />
<jsp:setProperty name=“veiculo” property=“marca” value="<%= v.getMarca() %>" />
<jsp:setProperty name=“veiculo” property=“modelo” value="<%= v.getModelo() %>" />
<jsp:setProperty name=“veiculo” property=“descricao” value="<%= v.getDescricao() %>" />

Busca de Veículos

Busca de Veículo


Placa: " >
Ano: ">
Marca: ">
Modelo: ">
Combustível: >Gás >Gasolina >Álcool
Único dono: >Sim >Não
Descrição:
[/code]

Use JSTL http://www.dsc.ufcg.edu.br/~jacques/cursos/daca/html/jstl/jstl.htm

Ok. Isto eu já sei, inclusive estou usando algumas tags. Mas estou com dificuldade em desenvolver este exercício apenas com tags.

Alguém pode me ajudar com este exercício?

Obrigada.

No seu caso só o JSTL não ajuda, você teria que aplicar um framork MVC, tal como Struts, JSF, Mentawai, etc.

Uma opção é usar um framework MVC. Os action-based, como o Struts 2, são os menos “traumáticos” quando se refere a dar um refactoring numa aplicação já existente como o seu.

Mas você pode, ao invés disso, usar Servlets seguido de JSP. É só você pegar o trecho inicial das suas páginas que estão dentro de scriptlets e movê-los dentro de uma classe que herde de HttpServlet (não se esqueça de registrá-lo no web.xml). Depois, faça um forward para a página jsp, agora sem aquele trecho de código inicial. Exemplo do forward:

request.getRequestDispatcher("cadastraveiculo.jsp").forward(request, response);

É isso.

concordo com o Leonardo3001 acho que vc deve utilizar servlets.
As tag JSTL devem ser suficientes para vc ,caso contrario está delegando funções de mais para seu JSP…

sugiro que de uma olha nessa apostila pode te ajudar e mto…

nela tem uma ideia legal para servlets

abr

Eu to entendendo: delego as funcionalidades a um servlet. Ele deve colocar um bean na sessão, atualizá-lo, buscá-lo, seja lá que tarefa for. Após fazer isto, a requisição é encaminhada para o JSP, que apresentará os dados necessários.

Obrigada, gente! Valeu!

:smiley:

precisar é só voltar

usar as tag JSTL é a melhor opcao… alem de ficar mais facil de dar manutenção!!! o livro head first JSP & Servlet o capitulo 10 aborda bem essas as tag JSTL se fizer uma busca na net vc acha ele…