一. 资源拷贝
- 删除项目中static和view文件夹,把02资料/章节203总体页面展示中内容粘贴到项目中
- 测试登录成功后是否可以正确显示主页面
二.代码修改
- 确保%GOROOT%/src/github.com/下有gorilla文件夹,如果没有参照:03数据库操作和Go Web/笔记/章节4_07_restful进行配置
- 由于在main中声明的全局对象无法被其他包调用,所以在commons文件夹下新建CommonVars.go,保证整个项目任何包都可以使这个对象进行设置Handler
package commons
import "github.com/gorilla/mux"
var (
Router = mux.NewRouter()
)
package main
import (
"net/http"
"html/template"
"user"
"commons"
"github.com/gorilla/mux"
)
//显示登录页面
func welcome(w http.ResponseWriter, r *http.Request) {
t, _ := template.ParseFiles("view/login.html")
t.Execute(w, nil)
}
//restfule风格显示页面
func showPage(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
t, _ := template.ParseFiles("view/" + vars["page"] + ".html")
t.Execute(w, nil)
}
func main() {
commons.Router.HandleFunc("/", welcome)
commons.Router.PathPrefix("/static/").Handler(http.StripPrefix("/static/", http.FileServer(http.Dir("static"))))
commons.Router.HandleFunc("/page/{page}", showPage)
//调用所有user模块的handler
user.UserHandler()
http.ListenAndServe(":80", commons.Router)
}
- 修改user/UserController中UserHandler()函数
//所有user模块的handler
func UserHandler() {
commons.Router.HandleFunc("/login", loginController)
}