response.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package utility
  2. import (
  3. "fmt"
  4. "github.com/gogf/gf/v2/frame/g"
  5. "github.com/gogf/gf/v2/net/ghttp"
  6. "net/http"
  7. )
  8. type (
  9. localHtmlRender struct{}
  10. Params = map[string]interface{}
  11. )
  12. const ErrorFilePath = "error.html"
  13. var (
  14. HtmlRender localHtmlRender
  15. )
  16. // Render 渲染html页面
  17. func (l *localHtmlRender) Render(r *ghttp.Request, filePath string, params ...Params) {
  18. var usedParams Params
  19. if len(params) > 0 {
  20. usedParams = params[0]
  21. }
  22. res, err := g.View().Parse(r.Context(), filePath, usedParams)
  23. if err != nil {
  24. g.Log().Error(r.Context(), "渲染%s页面异常 %v", filePath, err)
  25. l.RenderError(r, fmt.Errorf("页面异常"), params...)
  26. } else {
  27. r.Response.Write(res)
  28. }
  29. }
  30. // RenderError 渲染异常页面
  31. func (l *localHtmlRender) RenderError(r *ghttp.Request, err error, params ...Params) {
  32. var usedParams Params
  33. if len(params) > 0 {
  34. usedParams = params[0]
  35. }
  36. if usedParams == nil {
  37. usedParams = Params{}
  38. }
  39. usedParams["ErrMsg"] = err
  40. res, err := g.View().Parse(r.Context(), ErrorFilePath, usedParams)
  41. if err != nil {
  42. r.Response.Write(fmt.Sprintf("出错啦%v", err.Error()))
  43. } else {
  44. r.Response.Write(res)
  45. }
  46. }
  47. // NotFound 未找到页面
  48. func (l *localHtmlRender) NotFound(r *ghttp.Request) {
  49. http.NotFound(r.Response.ResponseWriter, r.Request)
  50. }