7.9. 储存页面

函数saveHandler处理表单提交。

  func saveHandler(w http.ResponseWriter, r *http.Request) {
      title := r.URL.Path[lenPath:]
      body := r.FormValue("body")
      p := &page{title: title, body: []byte(body)}
      p.save()
      http.Redirect(w, r, "/view/"+title, http.StatusFound)
  }

页面标题(在URL中)和表单中唯一的字段,body,储存在一个新的page中。然后调用save()方法将数据写到文件中,并且将客户重定向到/view/页面。

FormValue返回值的类型是string,在将它添加到page结构前,我们必须将其转换为[]byte类型。我们使用[]byte(body)执行转换。