Pedaço da página que contém scriptlets:
<%
Integer numero = (Integer) request.getAttribute("teste");
Teste t = new Teste();
List<tes> lista = new ArrayList<tes>();
lista = t.getLista(numero);
%>
Servlet:
public class Servlet extends HttpServlet {
private Integer numero;
protected void service(HttpServletRequest request,
HttpServletResponse response) {
request.setAttribute("outroteste", null);
if (request.getAttribute("teste") == null) {
numero = 10;
} else {
numero = Integer.parseInt(request.getAttribute("teste").toString()) + 10;
}
request.setAttribute("teste", numero);
try {
request.getRequestDispatcher("teste.jsp").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
A página teste.jsp tem uma váriavel chamada numero. Ela faz uma consulta baseada na variavel numero e depois ele coloca na página. A função dessa váriavel é o de limitar o tamanho do resultado E quais resultados buscar. Mas até aqui isso não importa.
Na página JSP tem um botão chamado “próximo”, que ao ser clicado chama a Servlet acima. A servlet tem um If que verifica se o atributo “teste” é nulo (para evitar o NullPointerException) ele atribui o Integer número como sendo 10 (e caso ele não seja nulo, significa que ele já foi usado ao menos uma vez portanto não dará mais o NullPointerException, sendo assim, é só incrementar a váriavel numero com 10) e após isso ele chama o request.setAttribute(“teste”, numero);, fazendo com que o valor do atributo “teste” seja o valor anterior dele mais 10 (caso o If falhe).
O problema é que, ele nunca chega no bloco else. Quando eu clico no botão “próximo” pela segunda vez, ele cai novamente no bloco if, ou seja, ele entende que o atributo “teste” continua nulo.
Alguém pode me dizer o que estou fazendo de errado?
