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
a7791c27
authored
2012-12-19 16:20:55 +0800
by
astaxie
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
#2
#2
1 parent
e81795a0
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
33 additions
and
33 deletions
README.md
controller.go
README.md
View file @
a7791c2
...
...
@@ -30,7 +30,7 @@ Here is the canonical "Hello, world" example app for beego:
}
func (this *MainController) Get() {
this.Ct.WriteString("hello world")
this.Ct
x
.WriteString("hello world")
}
func main() {
...
...
@@ -177,10 +177,10 @@ So you can define ChildStruct method to accomplish the interface's method, now l
func (this *AddController) Post() {
//data deal with
this.Ct.Request.ParseForm()
pkgname := this.Ct.Request.Form.Get("pkgname")
content := this.Ct.Request.Form.Get("content")
beego.Info(this.Ct.Request.Form)
this.Ct
x
.Request.ParseForm()
pkgname := this.Ct
x
.Request.Form.Get("pkgname")
content := this.Ct
x
.Request.Form.Get("content")
beego.Info(this.Ct
x
.Request.Form)
pk := models.GetCruPkg(pkgname)
if pk.Id == 0 {
var pp models.PkgEntity
...
...
@@ -194,7 +194,7 @@ So you can define ChildStruct method to accomplish the interface's method, now l
at.Pkgid = pk.Id
at.Content = content
models.InsertArticle(at)
this.Ct.Redirect(302, "/admin/index")
this.Ct
x
.Redirect(302, "/admin/index")
}
## View / Template
...
...
@@ -216,7 +216,7 @@ then beego will find the file in the path:`/views/admin/add.tpl`
if you don't set TplNames,beego will find like this:
c.TplNames = c.ChildName + "/" + c.Ct.Request.Method + "." + c.TplExt
c.TplNames = c.ChildName + "/" + c.Ct
x
.Request.Method + "." + c.TplExt
So if the ChildName="AddController",Request Method= "POST",default TplEXT="tpl"
So beego will file the file in the path:
`/view/AddController/POST.tpl`
...
...
controller.go
View file @
a7791c2
...
...
@@ -13,7 +13,7 @@ import (
)
type
Controller
struct
{
Ct
*
Context
Ct
x
*
Context
Tpl
*
template
.
Template
Data
map
[
interface
{}]
interface
{}
ChildName
string
...
...
@@ -36,14 +36,14 @@ type ControllerInterface interface {
Render
()
error
}
func
(
c
*
Controller
)
Init
(
ct
*
Context
,
cn
string
)
{
func
(
c
*
Controller
)
Init
(
ct
x
*
Context
,
cn
string
)
{
c
.
Data
=
make
(
map
[
interface
{}]
interface
{})
c
.
Tpl
=
template
.
New
(
cn
+
ct
.
Request
.
Method
)
c
.
Tpl
=
template
.
New
(
cn
+
ct
x
.
Request
.
Method
)
c
.
Tpl
=
c
.
Tpl
.
Funcs
(
beegoTplFuncMap
)
c
.
Layout
=
""
c
.
TplNames
=
""
c
.
ChildName
=
cn
c
.
Ct
=
ct
c
.
Ct
x
=
ctx
c
.
TplExt
=
"tpl"
}
...
...
@@ -57,38 +57,38 @@ func (c *Controller) Finish() {
}
func
(
c
*
Controller
)
Get
()
{
http
.
Error
(
c
.
Ct
.
ResponseWriter
,
"Method Not Allowed"
,
405
)
http
.
Error
(
c
.
Ct
x
.
ResponseWriter
,
"Method Not Allowed"
,
405
)
}
func
(
c
*
Controller
)
Post
()
{
http
.
Error
(
c
.
Ct
.
ResponseWriter
,
"Method Not Allowed"
,
405
)
http
.
Error
(
c
.
Ct
x
.
ResponseWriter
,
"Method Not Allowed"
,
405
)
}
func
(
c
*
Controller
)
Delete
()
{
http
.
Error
(
c
.
Ct
.
ResponseWriter
,
"Method Not Allowed"
,
405
)
http
.
Error
(
c
.
Ct
x
.
ResponseWriter
,
"Method Not Allowed"
,
405
)
}
func
(
c
*
Controller
)
Put
()
{
http
.
Error
(
c
.
Ct
.
ResponseWriter
,
"Method Not Allowed"
,
405
)
http
.
Error
(
c
.
Ct
x
.
ResponseWriter
,
"Method Not Allowed"
,
405
)
}
func
(
c
*
Controller
)
Head
()
{
http
.
Error
(
c
.
Ct
.
ResponseWriter
,
"Method Not Allowed"
,
405
)
http
.
Error
(
c
.
Ct
x
.
ResponseWriter
,
"Method Not Allowed"
,
405
)
}
func
(
c
*
Controller
)
Patch
()
{
http
.
Error
(
c
.
Ct
.
ResponseWriter
,
"Method Not Allowed"
,
405
)
http
.
Error
(
c
.
Ct
x
.
ResponseWriter
,
"Method Not Allowed"
,
405
)
}
func
(
c
*
Controller
)
Options
()
{
http
.
Error
(
c
.
Ct
.
ResponseWriter
,
"Method Not Allowed"
,
405
)
http
.
Error
(
c
.
Ct
x
.
ResponseWriter
,
"Method Not Allowed"
,
405
)
}
func
(
c
*
Controller
)
Render
()
error
{
//if the controller has set layout, then first get the tplname's content set the content to the layout
if
c
.
Layout
!=
""
{
if
c
.
TplNames
==
""
{
c
.
TplNames
=
c
.
ChildName
+
"/"
+
c
.
Ct
.
Request
.
Method
+
"."
+
c
.
TplExt
c
.
TplNames
=
c
.
ChildName
+
"/"
+
c
.
Ct
x
.
Request
.
Method
+
"."
+
c
.
TplExt
}
t
,
err
:=
c
.
Tpl
.
ParseFiles
(
path
.
Join
(
ViewsPath
,
c
.
TplNames
),
path
.
Join
(
ViewsPath
,
c
.
Layout
))
if
err
!=
nil
{
...
...
@@ -100,20 +100,20 @@ func (c *Controller) Render() error {
tplcontent
,
_
:=
ioutil
.
ReadAll
(
newbytes
)
c
.
Data
[
"LayoutContent"
]
=
template
.
HTML
(
string
(
tplcontent
))
_
,
file
=
path
.
Split
(
c
.
Layout
)
err
=
t
.
ExecuteTemplate
(
c
.
Ct
.
ResponseWriter
,
file
,
c
.
Data
)
err
=
t
.
ExecuteTemplate
(
c
.
Ct
x
.
ResponseWriter
,
file
,
c
.
Data
)
if
err
!=
nil
{
Trace
(
"template Execute err:"
,
err
)
}
}
else
{
if
c
.
TplNames
==
""
{
c
.
TplNames
=
c
.
ChildName
+
"/"
+
c
.
Ct
.
Request
.
Method
+
"."
+
c
.
TplExt
c
.
TplNames
=
c
.
ChildName
+
"/"
+
c
.
Ct
x
.
Request
.
Method
+
"."
+
c
.
TplExt
}
t
,
err
:=
c
.
Tpl
.
ParseFiles
(
path
.
Join
(
ViewsPath
,
c
.
TplNames
))
if
err
!=
nil
{
Trace
(
"template ParseFiles err:"
,
err
)
}
_
,
file
:=
path
.
Split
(
c
.
TplNames
)
err
=
t
.
ExecuteTemplate
(
c
.
Ct
.
ResponseWriter
,
file
,
c
.
Data
)
err
=
t
.
ExecuteTemplate
(
c
.
Ct
x
.
ResponseWriter
,
file
,
c
.
Data
)
if
err
!=
nil
{
Trace
(
"template Execute err:"
,
err
)
}
...
...
@@ -122,32 +122,32 @@ func (c *Controller) Render() error {
}
func
(
c
*
Controller
)
Redirect
(
url
string
,
code
int
)
{
c
.
Ct
.
Redirect
(
code
,
url
)
c
.
Ct
x
.
Redirect
(
code
,
url
)
}
func
(
c
*
Controller
)
ServeJson
()
{
content
,
err
:=
json
.
MarshalIndent
(
c
.
Data
,
""
,
" "
)
if
err
!=
nil
{
http
.
Error
(
c
.
Ct
.
ResponseWriter
,
err
.
Error
(),
http
.
StatusInternalServerError
)
http
.
Error
(
c
.
Ct
x
.
ResponseWriter
,
err
.
Error
(),
http
.
StatusInternalServerError
)
return
}
c
.
Ct
.
SetHeader
(
"Content-Length"
,
strconv
.
Itoa
(
len
(
content
)),
true
)
c
.
Ct
.
ContentType
(
"json"
)
c
.
Ct
.
ResponseWriter
.
Write
(
content
)
c
.
Ct
x
.
SetHeader
(
"Content-Length"
,
strconv
.
Itoa
(
len
(
content
)),
true
)
c
.
Ct
x
.
ContentType
(
"json"
)
c
.
Ct
x
.
ResponseWriter
.
Write
(
content
)
}
func
(
c
*
Controller
)
ServeXml
()
{
content
,
err
:=
xml
.
Marshal
(
c
.
Data
)
if
err
!=
nil
{
http
.
Error
(
c
.
Ct
.
ResponseWriter
,
err
.
Error
(),
http
.
StatusInternalServerError
)
http
.
Error
(
c
.
Ct
x
.
ResponseWriter
,
err
.
Error
(),
http
.
StatusInternalServerError
)
return
}
c
.
Ct
.
SetHeader
(
"Content-Length"
,
strconv
.
Itoa
(
len
(
content
)),
true
)
c
.
Ct
.
ContentType
(
"xml"
)
c
.
Ct
.
ResponseWriter
.
Write
(
content
)
c
.
Ct
x
.
SetHeader
(
"Content-Length"
,
strconv
.
Itoa
(
len
(
content
)),
true
)
c
.
Ct
x
.
ContentType
(
"xml"
)
c
.
Ct
x
.
ResponseWriter
.
Write
(
content
)
}
func
(
c
*
Controller
)
Input
()
url
.
Values
{
c
.
Ct
.
Request
.
ParseForm
()
return
c
.
Ct
.
Request
.
Form
c
.
Ct
x
.
Request
.
ParseForm
()
return
c
.
Ct
x
.
Request
.
Form
}
...
...
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