2015-02-09 72 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