Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
张磊
/
FileStorageBeego
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
f7b01aab
authored
2014-06-10 11:02:41 +0800
by
astaxie
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
beego: modify the filter sequence
1 parent
2570f075
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
26 additions
and
18 deletions
controller.go
parser.go
router.go
controller.go
View file @
f7b01aa
...
...
@@ -82,7 +82,7 @@ type ControllerInterface interface {
Render
()
error
XsrfToken
()
string
CheckXsrfCookie
()
bool
HandlerFunc
(
fn
string
)
HandlerFunc
(
fn
string
)
bool
URLMapping
()
}
...
...
@@ -147,11 +147,12 @@ func (c *Controller) Options() {
}
// call function fn
func
(
c
*
Controller
)
HandlerFunc
(
fnname
string
)
{
func
(
c
*
Controller
)
HandlerFunc
(
fnname
string
)
bool
{
if
v
,
ok
:=
c
.
methodMapping
[
fnname
];
ok
{
v
()
return
true
}
else
{
Error
(
"call funcname not exist in the methodMapping: "
+
fnname
)
return
false
}
}
...
...
parser.go
View file @
f7b01aa
...
...
@@ -98,11 +98,6 @@ func parserComments(comments *ast.CommentGroup, funcName, controllerName, pkgpat
func
genRouterCode
()
{
os
.
Mkdir
(
path
.
Join
(
AppPath
,
"routers"
),
0755
)
Info
(
"generate router from comments"
)
f
,
err
:=
os
.
Create
(
path
.
Join
(
AppPath
,
"routers"
,
"commentsRouter.go"
))
if
err
!=
nil
{
panic
(
err
)
}
defer
f
.
Close
()
var
globalinfo
string
for
k
,
cList
:=
range
genInfoList
{
for
_
,
c
:=
range
cList
{
...
...
@@ -124,9 +119,16 @@ func genRouterCode() {
}
params
=
strings
.
TrimRight
(
params
,
","
)
+
"}"
}
globalinfo
=
globalinfo
+
fmt
.
Sprintln
(
`beego.GlobalControllerRouter["`
+
k
+
`"] = &beego.ControllerComments{"`
+
strings
.
TrimSpace
(
c
.
Method
)
+
`", "`
+
c
.
Router
+
`", `
+
allmethod
+
", "
+
params
+
"}"
)
globalinfo
=
globalinfo
+
fmt
.
Sprintln
(
`beego.GlobalControllerRouter["`
+
k
+
`"] = append(beego.GlobalControllerRouter["`
+
k
+
`"], beego.ControllerComments{"`
+
strings
.
TrimSpace
(
c
.
Method
)
+
`", "`
+
c
.
Router
+
`", `
+
allmethod
+
", "
+
params
+
"})"
)
}
}
if
globalinfo
!=
""
{
f
,
err
:=
os
.
Create
(
path
.
Join
(
AppPath
,
"routers"
,
"commentsRouter.go"
))
if
err
!=
nil
{
panic
(
err
)
}
defer
f
.
Close
()
f
.
WriteString
(
strings
.
Replace
(
globalRouterTemplate
,
"{{.globalinfo}}"
,
globalinfo
,
-
1
))
}
f
.
WriteString
(
strings
.
Replace
(
globalRouterTemplate
,
"{{.globalinfo}}"
,
globalinfo
,
-
1
))
}
...
...
router.go
View file @
f7b01aa
...
...
@@ -559,10 +559,6 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)
http
.
Error
(
w
,
"Method Not Allowed"
,
405
)
goto
Admin
}
//static file server
if
serverStaticRouter
(
context
)
{
goto
Admin
}
if
!
context
.
Input
.
IsGet
()
&&
!
context
.
Input
.
IsHead
()
{
if
CopyRequestBody
&&
!
context
.
Input
.
IsUpload
()
{
...
...
@@ -575,6 +571,11 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)
goto
Admin
}
//static file server
if
serverStaticRouter
(
context
)
{
goto
Admin
}
if
context
.
Input
.
RunController
!=
nil
&&
context
.
Input
.
RunMethod
!=
""
{
findrouter
=
true
runMethod
=
context
.
Input
.
RunMethod
...
...
@@ -666,6 +667,8 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)
}
}
execController
.
URLMapping
()
if
!
w
.
started
{
//exec main logic
switch
runMethod
{
...
...
@@ -684,9 +687,11 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)
case
"Options"
:
execController
.
Options
()
default
:
in
:=
make
([]
reflect
.
Value
,
0
)
method
:=
vc
.
MethodByName
(
runMethod
)
method
.
Call
(
in
)
if
!
execController
.
HandlerFunc
(
runMethod
)
{
in
:=
make
([]
reflect
.
Value
,
0
)
method
:=
vc
.
MethodByName
(
runMethod
)
method
.
Call
(
in
)
}
}
//render template
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment