我想用golang实现一个基本的mvc, IndexController继承了mvc包中的Controller,但是在mvc包中用反射获取不到IndexController的GET()方法,搞了一天了不知道怎么解决!求高人指点!!!
package mvc
import (
"log"
"net/http"
"reflect"
)
type App struct{}
type Controller struct {
}
func (c *Controller) ServeHTTP(w http.ResponseWriter, r *http.Request) {
uc := reflect.ValueOf(c)
method := uc.MethodByName("GET")
methodValid := method.IsValid()
if methodValid == true {
log.Println("方法存在")
//method.Call([]reflect.Value{})
} else {
log.Println("方法不存在")
}
}
package main
import (
"log"
"net/http"
"test/mvc"
)
type IndexController struct {
mvc.Controller
}
func (c *IndexController) GET() {
log.Println("GET")
}
func main() {
http.Handle("/", &IndexController{})
http.ListenAndServe(":8100", nil)
}