beego中controller向views中传递数据及views中数据渲染的完整示例

routers.go

package routers

import (
	"github.com/astaxie/beego"
	"quickstart/controllers"
)

func init() {
    beego.Router("/", &controllers.MainController{})
	//beego.Router("/orm", &controllers.MainController{},"*:TestOrm")
	//beego.Router("/ba", &controllers.StuController{},"*:TestBase")
	beego.Router("/tp", &controllers.StuController{},"*:BaseTempl")
}

Stu.go文件源码:

package controllers

import (
	"fmt"
	"github.com/astaxie/beego"
	_ "github.com/go-sql-driver/mysql"
	_ "sync"
)

type StuController struct {
	beego.Controller
}



type User struct {
	Id    int         `form:"-"`
	Name  interface{} `form:"username"`  //对应表单中的username值,字段名首字母也必须大写,否则无法解析该参数的值
	Age   int         `form:"age"`  //对应表单中的age值,如果不写将无法解析该参数的值
	Email string	  `form:"email"`  //对应表单中的email值,如果不写将无法解析该参数的值
	Like []string	  `form:"like"`  //对应表单中的like值,如果不写将无法解析该参数的值
}

type Res struct {
	Code int
	Into string
	Data [] User
}


func (c *StuController) BaseTempl() {


	var s1 = []string{"你好", "世界"}
	 user1 := User{
		1,
		"李虎",
		25,
		"lihu@qq.com",
		 s1,
	}
	var s2 = []string{"你好", "世界"}
	user2 := User{
		1,
		"李虎",
		25,
		"lihu@qq.com",
		s2,
	}

	res := Res{
		1,"success",[]User{user1,user2},
	}

	fmt.Println(res)
	c.Data["data"] = &res

	c.TplName = "temp.tpl"
}

temp.tpl源码:

<!DOCTYPE html>

<html>
<head>
  <title>Beego</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

</head>

<body>
<div>
    模板样式
</div>

<div> if ... else ... end {{ if gt .data.Code 0 }} 123 {{else }} 444{{end}}</div>
<div> range ... end {{range .data.Data}}{{.}}{{else}}
                                             	没有东西哦{{/* 当 .data.Data 为空 或者 长度为 0 时会执行这里 */}}{{end}} </div>
<div> {{range $index, $elem := .data.Data}}
      	{{$index}} - {{$elem.Name}}
      {{end}} </div>
//
<div> with ... end {{with .data}}{{.Code}}{{.Into}}{{end}} </div>
<div>{{with $value := "My name is %s"}}
     	{{printf . "slene"}}
     {{end}}</div>

//
<div>define
{{define "loop"}}
    <li>11111111111111111111</li>
{{end}}
{{template "loop" .}}
</div>
//
<div>允许多行文本注释,不允许嵌套{{/* comment content
                   support new line */}}</div>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

php、go编程学习实例

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值