Usamos 5.2.0.6.
Tengo un controlador con mapeo de asterisco que tiene un método que detecta la ruta de redirección. Aquí:
@RequestMapping(value =
public class TopCategoryPageController extends AbstractSearchPageController
{
...
//@ResponseStatus(HttpStatus.MOVED_PERMANENTLY/* this is 301 */)
@RequestMapping(value = TOP_CATEGORY_CODE_PATH_VARIABLE_PATTERN, method = RequestMethod.GET)
public String topCategory(@PathVariable("categoryCode") final String categoryCode, final Model model,
final HttpServletRequest request, final HttpServletResponse response)
throws UnsupportedEncodingException, CMSItemNotFoundException
{
...
if any redirection
{
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
return redirection;
}
else
return getViewForPage(categoryCode);
}
Quando a solicitação chega, primeiro executa o método topCategory acima.
Além disso, há um interceptor como o seguinte. Ele é executado após o método topCategory como esperado. Embora eu tenha tentado inserir o status 301 lá, não consegui obter o que queria.
Aqui:
public class BeforeViewHandlerInterceptor extends HandlerInterceptorAdapter
{
...
public void postHandle(final HttpServletRequest request, final HttpServletResponse response, final Object handler,
final ModelAndView modelAndView) throws Exception
{
...
if (isRedirectView(modelAndView))
{
String uri = request.getScheme() +
+ request.getContextPath();
uri += modelAndView.getViewName().substring(modelAndView.getViewName().indexOf
Pedro Pascal
Se unió el 07/03/2018