module
0.0.0-20240218090725-708bce3ada11
Repository: https://github.com/y74h1116/go-gin-libs.git
Documentation: pkg.go.dev
# README
y74h1116/go-gin-libs
page library
- The page library is useful to linkage between handler and view.
- usage
- refer to examples/login.go
- import github.com/y74h1116/go-gin-libs/page and gin and go-playground/validator
import ( "net/http" "github.com/y74h1116/go-gin-libs/page" "github.com/gin-gonic/gin" "github.com/go-playground/validator/v10" )
- initialize page object
var loginValidationMessages = map[string]map[string]string{ "Email": { "required": "メールアドレスを入力してください。", }, "Password": { "required": "パスワードを入力してください。", "custom_password_characters": "パスワードに利用できない文字が含まれています。", }, } pageLogin := page.NewPage("ログイン", loginValidationMessages)
- error handling
// handler call SetFormErrorsByValidator and SetOld, then pass viewParam to ctx.HTML() if err := ctx.ShouldBind(&loginForm); err != nil { viewParam := login.pageLogin.CreateViewParam() login.pageLogin.SetFormErrorsByValidator(viewParam, err.(validator.ValidationErrors)) login.pageLogin.SetOld(viewParam, loginForm) ctx.HTML(http.StatusBadRequest, "login/index", viewParam) return } // view can refer formErrors and old メールアドレス<br> {{ if .formErrors.Email }}<span class="red_text">{{.formErrors.Email}}</span><br>{{ end }} <input type="text" name="email" required class="input_text" value="{{.old.Email} placeholder="[email protected]" size="60" min="5" max="255">
sample
- usage
$ cd go-gin-libs/examples $ docker compose build $ docker run -it --rm -v $(pwd):/home/go -v $(pwd)/go/pkg:/go/pkg --workdir /home/go examples-example go mod tidy $ docker compose up # access http://localhost:8080 with a web browser
# Packages
No description provided by the author