递归火山软件开发平台

标题: GO服务器-模板中调用自定义函数/方法--问题解决了 [打印本页]

作者: 4463424    时间: 2024-7-26 12:02
标题: GO服务器-模板中调用自定义函数/方法--问题解决了
本帖最后由 4463424 于 2024-8-6 13:34 编辑

关联解析文件()取不到文件,
不知道是我没用对还是怎么的,尝试了很多方法都不行。
参考GO源码
  1. func html(res http.ResponseWriter, req *http.Request) {
  2.    //把自定义函数绑定到FuncMap上
  3.    funcMap:=template.FuncMap{"mf":MyFormat}
  4.    //此处注意,一定要先绑定函数
  5.    t:=template.New("demo.html").Funcs(funcMap)
  6.    //绑定函数后在解析模版
  7.    t, _ = t.ParseFiles("demo.html")
  8.    s:="2009-08-07 01:02:03"
  9.    t.Execute(res, s)
  10. }
复制代码



火山源码
  1. <火山程序 类型 = "通常" 版本 = 1 />

  2. 方法 启动方法 <公开 类型 = 整数 折叠>
  3. {
  4.     变量 server <类型 = HTTP服务器类>
  5.     变量 test <类型 = HTTP处理程序接口 值 = 空对象>
  6.     变量 t <参考 类型 = HTML模板类>
  7.     变量 err <类型 = 错误接口 值 = 空对象>

  8.     HTTP处理程序接口.创建2 (test)
  9.     {
  10.         t = HTML模板类.创建 ("t")
  11.         t.置模板方法 (模板方法哈希表.从方法创建 ("add", 相加方法))
  12.         // t.关联解析 ("1 + 2 = {{add 1 2}}")
  13.         t.关联解析文件 ("d:/view/index.html")
  14.         t.执行 (HTTP处理程序接口.取写回应接口 (), 空对象)
  15.     }

  16.     server.地址 = ":8090"
  17.     HTTP.注册 ("/test", test)
  18.     server.监听并服务 ()
  19.     返回 (1)
  20. }

  21. 方法 相加方法 <静态 类型 = 整数 折叠>
  22. 参数 参数1 <类型 = 整数>
  23. 参数 参数2 <类型 = 整数>
  24. {
  25.     返回 (参数1 + 参数2)
  26. }
复制代码



作者: 创世魂    时间: 2024-7-27 08:08
本帖最后由 创世魂 于 2024-7-27 09:18 编辑

确实奇怪。。
有没有完整的go源码发一下。

作者: 4463424    时间: 2024-7-27 13:10
创世魂 发表于 2024-7-27 08:08
确实奇怪。。
有没有完整的go源码发一下。

第二个,go代码是有接受返回值的
  1.   t, _ = t.ParseFiles("demo.html")
复制代码



作者: 4463424    时间: 2024-8-6 13:33
不好意思,是我的问题
关联解析文件()本身没问题
问题原因:
HTML模板类.创建 ( ) 里的文件名要和 .关联解析文件()  最后的文件名一样!!!






欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4