Spring重定向不起作用,只在浏览器中显示重定向:/ url

时间:2014-03-07 01:10:55

标签: java spring spring-mvc redirect

我以为我几天前就已经有了这段代码了,但现在我似乎无法弄清楚它并且我不知道为什么它不起作用。我有这个方法,只有当cacheRefreshIsEnabled参数存在时才会处理请求:

    @RequestMapping(value = "/features", method = RequestMethod.GET, params = {"cacheRefreshIsEnabled"})
    public @ResponseBody 
    String getSetting(@RequestParam(value="cacheRefreshIsEnabled", required=true) boolean cacheRefreshIsEnabled) { 
        // do some stuff
        return "redirect:features"
    } 

和另一种看起来像的方法:

    @RequestMapping(value = "/features", method = RequestMethod.GET)
    public @ResponseBody 
    // etc... 

但是在我的第一个方法结束时,重定向根本没有改变URL。相反,“重定向:功能”显示在我的浏览器窗口中。

我做错了什么?我需要修改一些配置文件吗?我是Spring的新手。

[解决方案]

我改变了我的代码并使其正常工作。谢谢您的帮助!这就是我现在所拥有的:

    @RequestMapping(value = "/features", method = RequestMethod.GET, params ={"cacheRefreshIsEnabled"})
    String getSetting(@RequestParam(value="cacheRefreshIsEnabled", required=true) boolean cacheRefreshIsEnabled) { 
        // do some stuff
        return "redirect:/features"
    } 

1 个答案:

答案 0 :(得分:6)

了解@ResponseBody的目的。问题是由于@ResponseBody anotation导致内容按原样显示。当想要将内容作为Ajax响应传递时,使用注释。删除@ResponseBody将解决目的。