2012-07-17 19 views
0

我的問題是,我有一個頁面說view.gsp幷包含一個窗體,在我的控制器中調用動作saveMyController.groovy在提交。現在我想要做的是,當細節已經成功保存在數據庫中時,我想回到那個頁面(view.gsp),或者寧可留在那裏,使用遠程調用或提交。如何使模板附加到從控制器specefic視圖

我該怎麼做?

另外,主要是我想附加一段文字,說明'您的詳細信息已經保存成功'或'請在失敗時再次輸入詳細信息'。我可以這樣做,創建一個模板,然後從MyController渲染它?怎麼樣?

+0

我懷疑你會得到更多的幫助,直到你接受你已經給予的一些幫助。 – OnResolve 2012-07-17 22:47:12

+0

該死的,對不起,我是這個網站的新手,真的不知道事情是如何完成的。 – niharika 2012-07-17 22:52:29

+0

別擔心,這是一個簡單的修復;) – OnResolve 2012-07-17 22:53:38

回答

0

因此,您要使用相同的表單和操作來創建(保存)和編輯(更新)?

您的save根據保存是否成功,某個點的操作可以是redirectrender特定的視圖。因爲你總是希望呈現了同樣的觀點,無論它是否保存或不我這樣做:

def save = { 
    def propertyInstance 
    //you need to do this since you are both saving and updating in the same action 
    if(params.id) { 
     propertyInstance = Property.get(params.id) 
     propertyInstance.properties = params 
    } else { 
     propertyInstance = new Property(params) 
    } 

    if (propertyInstance.save(flush: true)) { 
     flash.message="Property ${propertyInstance?.id} : ${propertyInstance?.address} has been added successfully" 
    } 
    else { 
     flash.message = "Please enter details again" 
    } 
    render(view: "view", model: [propertyInstance: propertyInstance]) 
} 

,然後在view.gsp你能證明你在flash.message這樣設置:

<g:if test="${flash.message}"> 
    <div class="message">${flash.message}</div> 
</g:if> 

編輯

如果你想用一個模板(例如稱爲_addressMessage.gsp),以顯示與一些格式化的消息(比如如果地址的部分在單獨的行),你可以做這樣的事情在你的view.gsp無論你想要的消息顯示:

<g:if test="${propertyInstance.address}"> 
    <g:render template="addressMessage" model="[propertyInstance: propertyInstance]" /> 
</g:if> 
<g:else> 
    Please enter details again. 
</g:else> 

我包括在那裏<g:if...,因爲我認爲你不想顯示這一點,如果沒有地址。

+0

其實我之所以問我是否可以使用模板是因爲它不僅僅是一個純文本消息。這個消息需要像這樣 - 「屬性(這裏屬性的id):(這裏屬性的地址)已被添加。這就是爲什麼我創建了一個模板,我想知道如果我可以從我的控制器渲染此模板在我的view.gsp-我的模板看起來像這樣 - Property $ {propertyInstance?.id}:$ {propertyInstance?.address}已成功添加 – niharika 2012-07-17 23:33:53

+0

嗯,我猜你可以創建一個小模板並將其傳遞給propertyInstance。你可以將模板嵌入到view.gsp中,並將其傳遞給propertyInstance模型,我會在答案中添加一個小小的更新,但是這看起來過於複雜 - 你展示的用戶仍然只是一個純文本消息。還有別的,你還沒有說,但我仍然會這樣做 - 只是讓你flash.message =「財產$ {propertyInstance?.id}:$ {propertyInstance?.address}已成功添加」 – Kelly 2012-07-17 23:58:07

+0

謝謝爲了編輯,我會解釋爲什麼我'選擇去模板而不是閃光消息。這是因爲我希望每次用戶輸入新的詳細信息時,都要在視圖中附加/顯示消息,正好位於舊消息的下面。因此,如果他已輸入5次詳細信息,則視圖頁面上應顯示5條消息,顯示屬性的詳細信息。並且(街道)必須成爲將他帶到列表動作()的鏈接。我明白這很複雜。 :( – niharika 2012-07-18 06:51:49

相關問題