| 字符串(无) | |
|---|---|
| 数组 | 数组 + 结构体 |
| Map | Map + 结构体 |
| 切片Slice |

main.go
package main
import (
"root/module2"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
r.LoadHTMLGlob("template/**/*")
r.GET("/arr", module2.ArrController) //数组
r.GET("/arrstruct", module2.ArrStruct) //数组 + 结构体
r.GET("/map", module2.MapController) //Map
r.GET("/mapstruct", module2.MapStruct) //Map + 结构体
r.GET("/slice", module2.SliceController) //切片
r.Run(":8080")
}
module2.go
package module2
import (
"net/http"
"github.com/gin-gonic/gin"
)
type UserInfo struct {
Id int
Name string
Age int
Address string
}
func ArrController(c *gin.Context) {
//数组
arr := [3]int{1, 2, 3}
c.HTML(http.StatusOK, "module2/arr.html", arr)
}
func ArrStruct(c *gin.Context) {
//数组 + 结构体
arrstruct := [3]UserInfo{
{
Id: 0,
Name: "秀儿",
Age: 6,
Address: "深圳",
},
{
Id: 1,
Name: "老六",
Age: 7,
Address: "广州",
},
}
c.HTML(http.StatusOK, "module2/arrstruct.html", arrstruct)
}
func MapController(c *gin.Context) {
//Map
mapdata1 := map[string]string{"name": "Kitty", "age": "18"}
mapdata2 := map[string]int{"age": 16}
mapData := map[string]interface{}{"data1": mapdata1, "data2": mapdata2}
c.HTML(http.StatusOK, "module2/map.html", mapData)
}
func MapStruct(c *gin.Context) {
//Map + 结构体
mapStruct := map[string]UserInfo{
"user": {
Id: 1,
Name: "老六",
Age: 7,
Address: "广州",
},
}
c.HTML(http.StatusOK, "module2/mapstruct.html", mapStruct)
}
func SliceController(c *gin.Context){
//切片Slice
sliceData := []int{1,2,3,4,5,6,7,8,9}
c.HTML(http.StatusOK, "module2/slice.html", sliceData)
}
arr.html
{{define "module2/arr.html"}}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h2>数组的两种遍历</h2>
{{range .}}
{{.}}<br>
{{end}}
{{range $i, $v := .}}
{{$i}}
{{$v}}<br>
{{end}}
</body>
</html>
{{end}}
arrstruct.html
{{define "module2/arrstruct.html"}}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
{{range .}}
{{.Id}}
{{.Name}}
{{.Age}}
{{.Address}}
<br>
{{end}}<br>
{{range $i, $v := .}}
{{$v.Id}}
{{$v.Name}}
{{$v.Age}}
{{$v.Address}}
<br>
{{end}}
</body>
</html>
{{end}}
map.html
{{define "module2/map.html"}}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!-- {{.name}}
{{.age}} -->
{{.data1}}
<hr>
{{.data2}}
</body>
</html>
{{end}}
mapstruct.html
{{define "module2/mapstruct.html"}}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
{{.user}}
</body>
</html>
{{end}}
slice.html
{{define "module2/slice.html"}}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
{{range .}}
{{.}}
{{end}}
<hr>
{{range $v := .}}
{{$v}}
{{end}}
</body>
</html>
{{end}}
运行
vscode 左上角文件file,保存全部
根目录root右键,终端Terminal运行:
go run main.go
浏览器分别输入 :
127.0.0.1:8080/arr
127.0.0.1:8080/arrstruct
127.0.0.1:8080/map
127.0.0.1:8080/mapstruct
127.0.0.1:8080/slice
本文介绍了如何在Gin框架中使用数组、结构体、Map和切片,并展示了如何将它们与HTML模板结合,展示在HTTP响应中。通过模块化实现,展示了不同类型数据的处理和渲染方法。
6万+

被折叠的 条评论
为什么被折叠?



