4463424 发表于 2024-7-26 12:02:41

GO服务器-模板中调用自定义函数/方法--问题解决了

本帖最后由 4463424 于 2024-8-6 13:34 编辑

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


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

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

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

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

方法 相加方法 <静态 类型 = 整数 折叠>
参数 参数1 <类型 = 整数>
参数 参数2 <类型 = 整数>
{
    返回 (参数1 + 参数2)
}


创世魂 发表于 2024-7-27 08:08:05

本帖最后由 创世魂 于 2024-7-27 09:18 编辑

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

4463424 发表于 2024-7-27 13:10:13

创世魂 发表于 2024-7-27 08:08
确实奇怪。。
有没有完整的go源码发一下。

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

4463424 发表于 2024-8-6 13:33:57

不好意思,是我的问题
关联解析文件()本身没问题
问题原因:
HTML模板类.创建 ( ) 里的文件名要和 .关联解析文件()最后的文件名一样!!!

页: [1]
查看完整版本: GO服务器-模板中调用自定义函数/方法--问题解决了