No meu site qdo digito dominio.com.br/aaaaaa, que não existe no meu controller, o web.xml trata esse erro como 404 e redireciona para um jsp
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head></head><body><scripttype="text/javascript">document.location='<c:url value="/error/404"/>';</script></body></html>
se vc chama a url /erro/404 direto dá o mesmo erro?
tem algum interceptor que passa na frente desse controller? alguma classe que mexe no result ou no response?
F
fernando_n_vicente
se eu chamo a url/error/404 direto, faz o redirecionamento correto
Lucas_Cavalcanti
estranho…
vc não me respondeu: tem algum interceptor que passa na frente desse controller? alguma classe que mexe no result ou no response?
F
fernando_n_vicente
Olá,
Antes de acessar o controller, passa sim pelo interceptor
publicvoidintercept(InterceptorStackstack,ResourceMethodmethod,Objectcontroller)throwsInterceptionException{Stringurl=request.getRequestURL().toString().replaceAll("www.","").replaceAll("http://","").replaceAll("https://","");StringurlWhithoutLang=url.startsWith("siter")?url:url.substring(3);result.include("urlWhithoutLang",urlWhithoutLang);// defaultif(url.startsWith("siter")){//Language language = userSession.getLanguage();StringkeyLanguage=translator.getLanguageKey();if(!keyLanguage.equals(Language.DEFAULT)){url="http://"+keyLanguage+"."+url;result.redirectTo(url);}// language explicit}else{StringkeyLanguage=url.substring(0,2);try{languageController.changeLanguage(keyLanguage);}catch(Exceptione){languageController.changeLanguage(Language.DEFAULT);}if(keyLanguage.equals(Language.DEFAULT)){url="http://"+url.substring(3);result.redirectTo(url);}}stack.next(method,controller);}
Lucas_Cavalcanti
se passar por algum dos redirects não pode chamar o stack.next()… muda isso no código que deve funcionar.
F
fernando_n_vicente
não sei como fazer.
meu conhecimentos em java não são avançadas
esse código foi outra pessoa que fez, e estou tentando resolver esse problema.
Lucas_Cavalcanti
jeito simples: coloque um return; após cada result.redirectTo
F
fernando_n_vicente
Lucas, quero lhe agradecer pela ajuda, deu tudo certo.