func adminHandler(w http.ResponseWriter, r *http.Request) { //权限判断 cookie, err := r.Cookie("admin_name") if err != nil || cookie.Value == "" { http.Redirect(w, r, "/login/index", http.StatusFound) } //路由 pathInfo := strings.Trim(r.URL.Path, "/") parts := strings.Split(pathInfo, "/") var action = "" if len(parts) > 1 { action = strings.Title(parts[1]) + "Action" } fmt.Printf("path%s %v\n", "adminHandler", pathInfo) login := &controller.AdminController{} controller := reflect.ValueOf(login) method := controller.MethodByName(action) if !method.IsValid() { method = controller.MethodByName(strings.Title("index") + "Action") } requestValue := reflect.ValueOf(r) responseValue := reflect.ValueOf(w) method.Call([]reflect.Value{responseValue, requestValue}) }
func ajaxHandler(w http.ResponseWriter, r *http.Request) { pathInfo := strings.Trim(r.URL.Path, "/") parts := strings.Split(pathInfo, "/") var action = "" if len(parts) > 1 { action = strings.Title(parts[1]) + "Action" } fmt.Printf("path %s %v\n", "ajaxHandler", pathInfo) login := &controller.AjaxController{} controller := reflect.ValueOf(login) method := controller.MethodByName(action) if !method.IsValid() { method = controller.MethodByName(strings.Title("index") + "Action") } requestValue := reflect.ValueOf(r) responseValue := reflect.ValueOf(w) method.Call([]reflect.Value{responseValue, requestValue}) }