2012-03-23 77 views
0

大家好,Grails的行動issure

我有一些問題Grails的。

<g:form action="search" method="post">

def search ={println('Hello')}

我不知道爲什麼,當我運行它得出的結論告訴我「所請求的資源(/用戶/用戶/搜索)不可用」。

但是,當我試圖edtit任何東西,然後保存它已經完成。然後我關閉並再次運行它也告訴「請求的資源(/用戶/用戶/搜索)不可用」。

請幫幫我。

謝謝!

+0

你能更準確地瞭解你的問題嗎?明確的問題再現步驟將有所幫助,因爲可能會有更長的代碼列表。 – Esteban 2012-03-24 04:46:57

+0

問題中的更多信息將有所幫助。例如,這些代碼片段中的每個文件的名稱是從哪裏來的? – David 2012-03-24 09:21:01

回答

2

所以我覺得這是你的問題:

當一個控制器的動作完成,它需要知道什麼發回請求的Web瀏覽器。有兩種主要方式可以告訴你的應用程序發送用戶的內容(或地點)。

重定向 - 您使用它來告訴應用程序將用戶發送到應用程序的不同部分或任何URL。更多信息可以在這裏找到:http://grails.org/doc/latest/ref/Controllers/redirect.html

渲染 - 您可以使用它來告訴您的應用程序呈現一些文本作爲對用戶的響應。主要的方法是直接指定文本,例如render "Hello",或者您可以告訴它一個模板或視圖(GSP)用於呈現內容。信息:http://grails.org/doc/latest/ref/Controllers/render.html

我覺得你的問題是,如果你沒有在你的行動中使用上述(你有沒有),那麼的默認行爲是使具有相同的名稱爲您的操作視圖。所以我認爲你的應用試圖在user/search.gsp上顯示哪個(我猜測)不存在。

所以,如果你改變你的行動看起來像這樣:

def search = { 
    println("Hello 1") 
    render("Hello 2") 
} 

你不應該有你的錯誤,你應該看到「Hello 2」返回給用戶的Web瀏覽器。或者,您可以在用戶/目錄中創建名爲search.gsp的視圖,然後該視圖將用於返回給用戶的內容。