Go言語でのWebアプリ開発学習その8~標準ライブラリのHTMLテンプレートのアクション:コメント
前回 ( https://note.com/yasmizohawks/n/n41c0bb1954e9 ) に引き続き
Go言語でのWebアプリ開発についていろいろ見てみます。
今回は標準ライブラリのHTMLテンプレートのアクションのコメント機能
について見てみます。
■ アクションとは
前回までに紹介したHTMLテンプレートファイルには
以下のような記載がありました。
<p>Hello, {{.}}</p>
<p>名前:{{.userName}}</p>
{{ range $zipCode := .}}
上記の {{ と }} で囲まれた部分をアクションと呼びます。
アクション部分以外はそのまま表示、
アクション部分はプログラムの処理結果に応じて動的に生成
する感じですね。
アクション部分では、
・データの表示
・条件分岐や繰り返しなどの処理制御
を行います。
Java の JSP や Thymeleaf などでも同じようなことができますね。
Go のアクションでできることを見ていきます。
■ コメント
{{/* と */}} で囲まれた部分はコメントとなります。
以下にサンプルを示します。
HTMLテンプレートにデータを埋め込むコード
package main
import (
"html/template"
"os"
)
func main() {
name := "Mizoguchi"
t := template.Must(template.ParseFiles("./htmlTempSample07.html"))
t.Execute(os.Stdout, name)
}
文字列「Mizoguchi」をテンプレートに渡すだけのものです。
ブラウザでいちいち確認するのも面倒なので
HTMLの出力先を「os.Stdout」とし、
コマンドプロンプトの標準出力で確認できるようにしてます。
HTMLテンプレートファイル htmlTempSample07.html
以下の部分では1行のみコメントアウトしています。
以下のように、
開始行に {{/*
終了行に */}}
を記載し、その間に複数の行にまたがったコメントを入れることもできます。
以下の行では /*、*/ が無いと表示されることの確認のために
{{ "【固定文字列】" }}
という形にして【固定文字列】がそのまま表示されるようにしてます。
※ 【固定文字列】はダブルクォーテーションで囲まないとエラーになります
⇒ 固定文字列なのか関数名なのかの判断がつかないため
コメント内に任意のアクションがあっても
コメント扱いになるかの確認を以下で行ってます。
上記 {{.}} 部分は
プログラムから渡された文字列が入るアクションとなりますが
それを {{/* ~ */}} で囲ってコメントとしています。
実行してみます。
{{/* ~ */}} で囲まれた部分は表示されてないですね。
次回も引き続き標準ライブラリのHTMLテンプレートの
アクションについて見ていきます。