本教材由知了传课辛苦制作而成,仅供学习使用,请勿用于商业用途!如进行转载请务必注明出处!谢谢!

数据绑定–Should bind

一、ShouldBind

可以绑定Form、QueryString、Json,uri

form标签:Form、QueryString

json标签:Json

uri标签:uri

form的绑定示例代码:

// 结构体
type User struct {
Id int form:"id" json:"id"
Name string form:"name" json:"name"

}

// 注意:structTag:指定字段名称,不用使用首字母大写的

// 绑定
var user User
context.ShouldBind(&user)
fmt.Println(user)

// 前端



QueryString的绑定示例代码:

// 结构体中structTag的form起作用



var user User
context.ShouldBind(&user)
fmt.Println(user)


访问:http://127.0.0.1:8080/tobind?name=zhiliao&age=110

json的绑定示例代码

// 结构体中structTag的json起作用



func DoBind(context *gin.Context) {

var user User
context.ShouldBind(&user)

fmt.Println(user)

context.JSON(200,gin.H{
"msg":"success",
"code":200,
})

}

前端:ajax

<form>
<input type="text" name="name" id="name"><br>
<input type="text" name="age" id="age"><br>
<input type="button" value="提交" id="btn_add">
</form>

<script>
var btn_add = document.getElementById("btn_add");
btn_add.onclick = function (ev) {
var name = document.getElementById("name").value;
var age = document.getElementById("age").value;

$.ajax({
url:"/dobind",
type:"POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
data:JSON.stringify({
"name":name,
"age":Number(age)
}),
success:function (data) {
console.log(data);
},
fail:function (data) {
console.log(data);
}
})



}
</script>

注意:
contentType: "application/json; charset=utf-8",
dataType: "json",
"age":Number(age) age是个int类型,必须得转成int类型才可以直接绑定

二、ShouldBindWith

可以使用显式绑定声明绑定 multipart form:

c.ShouldBindWith(&form, binding.Form)

或者简单地使用 ShouldBind 方法自动绑定

三、ShouldBindQuery等

ShouldBindJSON,ShouldBindXML,ShouldBindQuery,ShouldBindYAML等函数只绑定对应格式的参数

四、ShouldBindUri:绑定 Uri

使用structTag:uri

// 结构体中structTag的uri起作用

结构体:
type User struct {
Id int uri:"id"
Name string uri:"name"
Age int uri:"age"

}

路由:engine.GET("/tobind2/:name/:age",ToBind)

func ToBind(context *gin.Context) {
var user User
context.ShouldBindUri(&user)
fmt.Println(user)

context.String(200,“success”)

}

访问:http://127.0.0.1:8080/tobind2/zhiliao/110

1438人已阅读,今天你学习了吗?

添加新回复
目录