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);
}
Cuando llega la solicitud, ejecuta primero el método topCategory anterior
Además, hay un interceptor como el siguiente. Se ejecuta después del método topCategory como se espera. Aunque intenté insertar el estado 301 allí, no pude obtener lo que quería.
Aquí:
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