2015-02-09 69 views
1

我有一个Spring MVC 4应用程序,我想用“/editor/index.html”资源提供“/ editor/**”下的所有URL。Spring MVC为所有匹配模式的url提供相同的静态内容

我使用EmberJS和History API,所以像/ editor/task/1这样的请求并不是一个真正的URL,它只是一个应该发送到/editor/index.html的历史URL,它将处理它。

我尝试使用

<mvc:resources mapping="/editor/**" location="/editor/"/> 

但这不工作,它发出随后的网址,如“/编辑/任务/ 1”到servlet,当然它发送未找到404资源。

有没有办法用相同的资源服务所有的网址?

回答

0

你应该定义一个控制器,它返回与“/ editor/*”匹配的所有URL的相同视图。

@Controller 
public class EditorController { 
    @RequestMapping("/editor/*") 
    @GET 
    public String doGet() { 
    return "editor/index.html"; 
} 
+0

我应该使用什么视图解析器?解析器将提供什么样的html文件? – engma 2015-02-09 12:46:05

+0

我相信你可以使用静态资源定义来服务你的静态html文件,如下所示:。您可能需要修改资源的名称,以免与控制器映射发生冲突。 – thedoctor 2015-02-09 13:15:45