2016-12-30 103 views
4

我有一個Spring Boot web應用程序,它使用JSP(和Velocity模板是另一個應用程序)作爲其渲染器。我正在考慮將渲染技術遷移到Angular JS。將JSP(或Velocity模板)用於Angular JS

在我的應用程序中,我目前在控制器中有一些RequestMapping方法,每個方法填充ModelMap並返回JSP或Velocity模板。

春控制器〔實施例:

@RequestMapping("/somePage") 
public String somePage(ModelMap model) { 
    model.addAttribute("SomeObject", getSomeObject()); 
    return "tmpl_some_page.vm" 
} 

然後我用我的ModelMap屬性渲染視圖。 我Velocity模板 「tmpl_some_page.vm」:

<body> 
      $someObject 
    </body> 

正如上面所說,我希望遷移到角JS。正如我現在所瞭解的(在Angular中非常新穎),Angular的工作方向相反:Spring控制器不會填充ModelMap,而是Angular前端控制器。

我的問題是:是否有可能結合JSP/Velocity和Angular JS?是否有可能在Spring控制器中填充ModelMap,將它傳遞給Angular模型並將其用作json?

回答

1

如果你問角度是否會渲染速度模板,答案是否定的,因爲需要速度模板引擎來渲染速度模板....但是你的情況,如果你只是想將你的速度模板到角模板,那麼你將不得不將json數據直接返回給控制器....而不是將它放入模型映射中,因爲您無法訪問JavaScript文件中的請求範圍....所以直接返回json在響應主體中並將所需的json對象傳遞給角度js模板。

+0

我有點困惑,讓我明白這一點。目前,請求進程的順序是:hit url - >在控制器中調用方法 - >渲染速度模板。在角度上,當你打網址 - 它首先呈現的HTML,只有比接近控制器? –

+0

在使用路由器導航時,會出現角度.....它首先加載模板,然後調用執行摘要操作的控制器將數據綁定到模板....這就是爲什麼如果您調試加載,您將看到{}這些標籤..表示所有的數據沒有被綁定...如果你不使用UI路由器,那麼你可以創建一個指令綁定到一個控制器,並將其放置在UI ...一旦指令被調用從ui控制器將立即被調用,它將加載指令需要執行的所有數據。 – prashant