Pessoal estou com um probleminha acho que nao consigo resolver.
Bem estou criando uma jsp (“forum.jsp”) que contem outro jsp (“forum_lista.jsp”) via jsp:include e que retorna um lista de foruns, mas quando esta lista apresentar algum erro ela deve ser redirecionada para uma pagina que printa o erro (“erro.jsp”).
A jsp que retorna a lista (“forum_lista.jsp”) chama o metodo lista() na classe Forum, e caso haja erro joga a exception Cexception.
A Cexception tem o metodo handle que da o response.sendRedirect("/site/erro.jsp");
Quando executo apenas a a jsp “forum_lista.jsp” o programa faz o redirecionamento perfeitamente,
Mas quando chamo a uso “forum.jsp” o sendRedirect simplesmente nao funciona, nao redireciona nao faz nada, quando chamo o handle deveria redirecionar toda a url para a nova pagina “erro.jsp”
Nao sei se pelo fato de eu utilizar o jsp:include e nao executar o erro na pagina principal.
Meu codigo esta da seguindo forma:
forum.jsp:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" import="com.Forum" %>
<html>
<head>
<title>forum lista</title>
</head>
<body>
<jsp:include page="menu.jsp"/>
<jsp:include page="forum_lista.jsp"/>
</body>
</html>
forum_lista.jsp:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1" import="com.Forum" %>
<%
String list = "";
try{
list = Forum.listaTotal();
}catch(Cexception e){
e.handle (request,response);
}
%>
<%= list %>
RForumHtml.listaTotal():
public String listaTotal() throws listaTotal{
String vHTML = "<div>";
arrayForum = new ConcurrentHashMap<Integer,RForum>();
ForumDAO dao = new ForumDAO();
Iterator iterator2 = arrayForum.keySet().iterator();
int i = 0;
while (iterator2.hasNext()) {
i = i+1;
vHTML = vHTML + arrayForum.get(i).getTitulo()+"<BR>";
}
vHTML = vHTML + "</div>";
return vHTML;
}
Cexception.handle
public Cexception(String message) {
super(message);
}
public void handleExecption (HttpServletRequest request, HttpServletResponse response, String pagina) {
String message = this.getMessage();
if (null == message || "".equals(message)){
message = "There is no error menssage";
}
try {
RSession.setSession(request, "erro", message);
String url = response.encodeURL("/site/erro.jsp");
response.sendRedirect(url);
} catch (IOException e) {
RSession.setSession(request,"erro2",e.getMessage());
//} catch (ServletException e) {
// RSession.setSession(request,"erro2",e.getMessage());
}
}
Eu realmente preciso de ajuda, se puderem me ajudar eu ficaria totalmente grato.