因此,我是一位新手grails開發人員,他想知道如何正確使用每個MVCS設計模式的服務。現在在我的服務中,我有幾個功能在執行我的應用程序邏輯,然後我直接從我的gsp引用服務。我讀了here的評論,這是不好的形式。所以現在我有在Grails中正確使用服務(每個MVCS)
<g:set var="doc" bean="documentPartService"/>
直接在我的gsp。
所以我想通過傳遞信息通過正確的渠道來改變它,就像評論狀態一樣。
我遇到的一個小障礙是從我的服務傳遞信息到我的控制器到我的gsp。對於我的控制器
def replace(){
render documentPartService.replace(params)
}
爲例
<g:form name="inputForm" action="replace">
somecodehere...
<input value="Submit" type="submit">
</g:form>
然後在我的替代功能,那麼我有我的一些服務邏輯。
我在一些服務我已經看了都看到了,他們返回該變量作爲JSON(documentBody是一個局部變量我的服務)
return documentBody as JSON
,但我對如何有點疑惑實際上在我的控制器/視圖中訪問這個。我不能在我的控制器中使用 print documentBody
,因爲它只在我的服務中定義。在我用作參考的插件服務和控制器中,控制器是1個內襯,就像我擁有的那樣,他們所做的唯一的事情就是render servicefunction()
任何人都可以闡明我應該如何正確設計它?
謝謝,這是有幫助的。我的問題是認爲控制器總是呈現綁定到控制器定義的gsp,因爲如果控制器操作沒有正文,那麼這是本機行爲,現在我知道這是不正確的 –
如果您沒有定義呈現標記,那麼它會假設有一個gsp,如果你渲染「東西」,那麼它會顯示,或者你可以定義渲染(視圖:'someotherview')或渲染(模板:'a_template')。您只需要定義渲染視圖:如果視圖將與控制器操作不同 – Vahid