java – Spring Tiles.如何在Controller中返回301重定向(而不是302)

我使用的代码如下:

@RequestMapping(value="/oldPath")
public String doProductOld(
    @PathVariable(value = "oldProductId") Long oldProductId,
   Model model
) throws Exception {
    Product product = productDao.findByOldId(oldProductId);

    return "redirect:" + product.getUrlNewPath();
 }

一切正常但这个重定向返回302响应代码而不是SEO所需的301.如何轻松(没有ModelAndView或Http响应)更新它以返回301代码?

PS.当ModelAndView对象从控制器返回时我找到了解决方案,但是当返回tile alias(String)时需要Tiles的解决方案.

最佳答案
一般的想法是:

@RequestMapping(value="/oldPath")
public ModelAndView doProductOld(
    @PathVariable(value = "oldProductId") Long oldProductId,
   Model model
) throws Exception {
    Product product = productDao.findByOldId(oldProductId);
    RedirectView red = new RedirectView(product.getUrlNewPath(),true);
    red.setStatusCode(HttpStatus.MOVED_PERMANENTLY);
    return new ModelAndView(red);
 }

转载注明原文:java – Spring Tiles.如何在Controller中返回301重定向(而不是302) - 代码日志