Beego脱坑(十)——数据绑定

19 篇文章 36 订阅

title: Beego脱坑(十)——数据绑定

tags: go,beego

author : Clown95

绑定普通变量

我们先看下怎么绑定普通变量,下面的代码我们将通过浏览器来绑定string类型的值,至于其他单数值类型可以依次类推。

控制器:

package controllers

import "github.com/astaxie/beego"

type  BindVarController struct {
	beego.Controller
}

func (this *BindVarController) Get(){
	var str string
	this.Ctx.Input.Bind(&str, "str")
	this.Ctx.WriteString("str绑定的值为:"+str)
}

注册路由:

beego.Router("/bind",&controllers.BindVarController{})

我们可以调用http://localhost:8080/databind?str=clown ,把clown赋值给变量str。

绑定切片

现在我们来演示下如何绑定切片。

func (this *BindVarController) BindArr(){
	buf := make([]int, 3)
	this.Ctx.Input.Bind(&buf, "buf")

	this.Ctx.WriteString("buf绑定的值为:\n")
	for k,v:=range buf{
		this.Ctx.WriteString( strconv.Itoa(k)+" : "+ strconv.Itoa(v)+"\n")
	}
}

注册路由:

beego.Router("/bind1",&controllers.BindVarController{},"Get:BindArr")
  • http://127.0.0.1:8080/bind1?buf[]=1&buf[]=2&buf[]=3

  • http://127.0.0.1:8080/bind1?buf[0]=1&buf[1]=2&buf[2]=3

  • 如果绑定的数据类型是切片,在url中待下标,此时解析顺序只和下标有关,和输入顺序无关,并且输入的数据个数大于切片容量,可以绑定成功,切片自动增容。
  • url中不带下标,解析顺序和输入顺序有关,其他同上。
  • 如果url中某个数据的类型不匹配,只会导致这一个数据解析失败,其他的数据任然能够解析成功

不能绑定数组

var array [2]int
this.Ctx.Input.Bind(&array, "array")
fmt.Println("array = ", array)

以上代码错误,不能将数据和数组进行绑定。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值