go言語のセッション管理について
goでechoを使用してセッションを使ってカードをセットした配列を次のページで使おうと思っております。
echoの公式docに従ってgorilla/sessionsを使っています。
indexの際にはうまくvalueが表示されるのですが、なぜが次に引き継がれません。
ただの文字列であれば引き継がれるのですが、配列は引き継げないのでしょうか?
うまいやり方をご教示ください。
一部のプログラムを記載します。
var card [4][13] map[string]int
// Handler
func Index(c echo.Context) error {
data := map[string]interface{}{
"message": "",
}
sess, _ := session.Get("session", c)
sess.Options = &sessions.Options{
Path: "/",
MaxAge: 86400 * 7,
HttpOnly: true,
}
// カードをセットする。
// cardにvalue S1H13セット
var prefix string
for i, v := range card {
switch {
case i == 0:
prefix = "S"
case i == 1:
prefix = "D"
case i == 2:
prefix = "C"
case i == 3:
prefix = "H"
default:
}
for j, _ := range v {
number := strconv.Itoa(j + 1)
card[i][j] = make(map[string]int)
card[i][j][prefix + number] = 0
}
}
sess.Values["test"] = "test"
sess.Values["card"] = card
sess.Save(c.Request(), c.Response())
fmt.Println(sess.Values["test"])
fmt.Println(sess.Values["card"])
return c.Render(http.StatusOK, "index.html", data)
}
func SessionTest(c echo.Context) error {
sess, _ := session.Get("session", c)
fmt.Println(sess.Values["test"])
fmt.Println(sess.Values["card"])
data := map[string]interface{}{
"message": "",
}
return c.Render(http.StatusOK, "nervous_breakdown.html", data)
}