我的路由是这样写的:
INI
GET /me/login Me.Login POST /me/login Me.HandleLogin
Controller是这样的,
go
func (c Me) Login() revel.Result { fmt.Println("=========") fmt.Println("aaaaaaaaa") return c.Render() } func (c Me) HandleLogin() revel.Result { var ( username string password string remember string ) c.Params.Bind(&username, "username") c.Params.Bind(&password, "password") c.Params.Bind(&remember, "remember") _, err := models.GetUserByName(username) fmt.Println("===========================================") fmt.Println(username, password) if err != nil { c.RenderArgs["Error"] = "username or password error" return c.RenderTemplate("me/login.html") } return c.Redirect("/") }
然后html的
html
form action="/me/login" method="post"
运行结果:
第一个是打开的时候输出的,第二个是Post的时候输出的。
这个是浏览器的请求:
然后我就找不到原因了
第一次是Get请求,走的Get后面的Action,但是第二次是,POST请求,然后还是走的是Get的Action。然后,我在Login() Action里面打出了,我post过去的两个值。