param.go 380 B

12345678910111213141516171819202122232425262728
  1. package tango
  2. import (
  3. "net/url"
  4. )
  5. type Paramer interface {
  6. SetParams(url.Values)
  7. }
  8. type Params struct {
  9. url.Values
  10. }
  11. func (p *Params) SetParams(u url.Values) {
  12. p.Values = u
  13. }
  14. func Param() HandlerFunc {
  15. return func(ctx *Context) {
  16. if action := ctx.Action(); action != nil {
  17. if p, ok := action.(Paramer); ok {
  18. p.SetParams(ctx.Params())
  19. }
  20. }
  21. ctx.Next()
  22. }
  23. }