mirror of
https://github.com/astaxie/beego.git
synced 2024-11-22 03:50:54 +00:00
support filter to get router. get runController & runMethod
This commit is contained in:
parent
2f4acf46c6
commit
5588bfc35e
@ -4,6 +4,7 @@ import (
|
||||
"bytes"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"reflect"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
@ -18,6 +19,8 @@ type BeegoInput struct {
|
||||
Data map[interface{}]interface{} // store some values in this context when calling context in filter or controller.
|
||||
Request *http.Request
|
||||
RequestBody []byte
|
||||
RunController reflect.Type
|
||||
RunMethod string
|
||||
}
|
||||
|
||||
// NewInput return BeegoInput generated by http.Request.
|
||||
|
@ -626,7 +626,14 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)
|
||||
context.Input.Body()
|
||||
}
|
||||
|
||||
if context.Input.RunController != nil && context.Input.RunMethod {
|
||||
findrouter = true
|
||||
runMethod = context.Input.RunMethod
|
||||
runrouter = context.Input.RunController
|
||||
}
|
||||
|
||||
//first find path from the fixrouters to Improve Performance
|
||||
if !findrouter {
|
||||
for _, route := range p.fixrouters {
|
||||
n := len(requestPath)
|
||||
if requestPath == route.pattern {
|
||||
@ -652,6 +659,7 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//find regex's router
|
||||
if !findrouter {
|
||||
|
Loading…
Reference in New Issue
Block a user