Skip to main content
  1. Posts/

Go言語:Revelチュートリアル02

·62 words·1 min

さてさて引き続きRevelのチュートリアルをやっていきましょう。

<form action="/App/Hello" method="GET">
    <input type="text" name="myName" /><br/>
    <input type="submit" value="Say hello!" />
</form>

をIndex.htmlに追記。多分footerの前あたり。

そうするとアクションがないのでエラーが出ます。

controller/App.goにfunction Helloを追記してViewにHello.htmlを追加すればうごきます。

func (c App) Hello(myName string) revel.Result {
    return c.Render(myName)
}
{{set . "title" "Home"}}
{{template "header.html" .}}

<h1>Hello {{.myName}}</h1>
<a href="/">Back to form</a>

{{template "footer.html" .}}

Index.htmlでmyNameという名前をつけたtextの中身がそのままHelloの引数にmyNameとして渡されます。(名前が同じじゃないと値が入りません)

別の名前をつけたtextを追加して引数にもstringを追加したら二つ渡すこともできました。

簡単便利素敵。

いい感じですね。

 

ここで一つ疑問に思いました

routesに記入してないのになんで動くの?

ということでconf/routesを見てみると…

# Catch all
*       /:controller/:action                    :controller.:action

それっぽいのありました。

この記述でどうやら/コントローラー名/アクション名でコントローラー.アクション()が実行されるようになってるんですね。安心。

ねむい。とりあえず今日はここまで。続きは明日。

validationとFlashでどうやら終わりですね。短い。最高。

ではまた。

Related

Go言語:Revelチュートリアル01
·82 words·1 min
Go言語:Revelのインストール
·39 words·1 min
Go言語のインストールとGOPATH・GOROOT
·41 words·1 min