2012-03-23 8 views
0

こんにちはすべて、Grailsのアクションissure

私はGrailsのといくつかの問題を抱えています。

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

def search ={println('Hello')}

私が実行したとき、それは"要求されたリソース(/ユーザー/ユーザー/サーチ)が利用できない" を教えて遠かった理由を私は知られていません。

しかし、私が何かをedtitしようとし、それを保存しました。それから、シャットダウンしてもう一度実行してください。"要求されたリソース(/ User/user/search)は利用できません"。

私を助けてください。

ありがとうございます!

+0

あなたの問題についてもっと正確に教えてください。問題の明確な再現手順は、より長いコードリストを作成するのに役立ちます。 – Esteban

+0

質問の詳細情報が役立ちます。たとえば、これらのコードスニペットのそれぞれのファイル名は何ですか? – David

答えて

2

だから私は、これはあなたの問題だと思う:

コントローラでのアクションは、それが要求したWebブラウザに送信するために何を知っている必要が完了したら。アプリに何をどこに送るべきかを伝える主な2つの方法があります。

リダイレクト - これを使用して、アプリケーションの別の部分または任意の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ブラウザに返します。または、012.gifというビューをユーザー/ディレクトリに作成すると、そのビューがユーザーに返されるものに使用されます。