」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 Go 中存取 HTML 模板中的嵌套結構欄位?

如何在 Go 中存取 HTML 模板中的嵌套結構欄位?

發佈於2024-11-17
瀏覽:635

How to Access Nested Struct Fields in HTML Templates in Go?

如何在Go 中存取HTML 模板中的映射元素的結構字段

本文解決了使用html/ 從HTML 模板中的映射元素檢索結構字段的問題Go 中的模板包。

考慮以下 Task 結構體:

type Task struct {
   Cmd string
   Args []string
   Desc string
}

此外,映射是用 Task 結構體作為值、字串作為鍵來初始化的:

var taskMap = map[string]Task{
    "find": Task{
        Cmd: "find",
        Args: []string{"/tmp/"},
        Desc: "find files in /tmp dir",
    },
    "grep": Task{
        Cmd: "grep",
        Args:[]string{"foo","/tmp/*", "-R"},
        Desc: "grep files match having foo",
    },
}

現在,讓我們檢查一下當前的問題。範本用於解析 HTML 頁面:

func listHandle(w http.ResponseWriter, r *http.Request){
    t, _ := template.ParseFiles("index.tmpl")
    t.Execute(w, taskMap)
}

以下程式碼片段代表index.tmpl範本:


{{range $key, $value := .}}
   
  • Task Name: {{$key}}
  • Task Value: {{$value}}
  • Task description: {{$value.Desc}}
  • {{end}}

    此方法成功輸出地圖的鍵和值,但嘗試存取模板內的任務欄位(例如使用 {{$value.Desc}})會導致錯誤。

    解決方案在於匯出您希望在範本中存取的欄位。這可以透過將欄位名稱的第一個字母大寫來實現:

    type Task struct {
       Cmd string
       Args []string
       Desc string
    }

    因此,範本中對欄位名稱的引用也必須大寫:

    
    {{range $key, $value := .}}
       
  • Task Name: {{$key}}
  • Task Value: {{$value}}
  • Task description: {{$value.Desc}}
  • {{end}}

    依照下列步驟,您可以成功擷取並顯示範本中每個任務的 Desc 欄位。

    版本聲明 本文轉載於:1729726421如有侵犯,請洽[email protected]刪除
    最新教學 更多>
    • 為什麼我的CSS背景圖像出現?
      為什麼我的CSS背景圖像出現?
      故障排除:CSS背景圖像未出現 ,您的背景圖像儘管遵循教程說明,但您的背景圖像仍未加載。圖像和样式表位於相同的目錄中,但背景仍然是空白的白色帆布。 而不是不棄用的,您已經使用了CSS樣式: bockent {背景:封閉圖像文件名:背景圖:url(nickcage.jpg); 如果您的html,cs...
      程式設計 發佈於2025-05-24
    • 人臉檢測失敗原因及解決方案:Error -215
      人臉檢測失敗原因及解決方案:Error -215
      錯誤處理:解決“ error:( - 215)!empty()in Function openCv in Function MultSiscale中的“檢測”中的錯誤:在功能檢測中。”當Face Cascade分類器(即面部檢測至關重要的組件)未正確加載時,通常會出現此錯誤。 要解決此問題,必...
      程式設計 發佈於2025-05-24
    • 如何使用node-mysql在單個查詢中執行多個SQL語句?
      如何使用node-mysql在單個查詢中執行多個SQL語句?
      Multi-Statement Query Support in Node-MySQLIn Node.js, the question arises when executing multiple SQL statements in a single query using the node-mys...
      程式設計 發佈於2025-05-24
    • 如何使用替換指令在GO MOD中解析模塊路徑差異?
      如何使用替換指令在GO MOD中解析模塊路徑差異?
      在使用GO MOD時,在GO MOD 中克服模塊路徑差異時,可能會遇到衝突,其中3個Party Package將另一個PAXPANCE帶有導入式套件之間的另一個軟件包,並在導入式套件之間導入另一個軟件包。如迴聲消息所證明的那樣: go.etcd.io/bbolt [&&&&&&&&&&&&&&&&...
      程式設計 發佈於2025-05-24
    • FastAPI自定義404頁面創建指南
      FastAPI自定義404頁面創建指南
      response = await call_next(request) if response.status_code == 404: return RedirectResponse("https://fastapi.tiangolo.com") else: ...
      程式設計 發佈於2025-05-24
    • 如何在php中使用捲髮發送原始帖子請求?
      如何在php中使用捲髮發送原始帖子請求?
      如何使用php 創建請求來發送原始帖子請求,開始使用curl_init()開始初始化curl session。然後,配置以下選項: curlopt_url:請求 [要發送的原始數據指定內容類型,為原始的帖子請求指定身體的內容類型很重要。在這種情況下,它是文本/平原。要執行此操作,請使用包含以下標頭...
      程式設計 發佈於2025-05-24
    • 在細胞編輯後,如何維護自定義的JTable細胞渲染?
      在細胞編輯後,如何維護自定義的JTable細胞渲染?
      在JTable中維護jtable單元格渲染後,在JTable中,在JTable中實現自定義單元格渲染和編輯功能可以增強用戶體驗。但是,至關重要的是要確保即使在編輯操作後也保留所需的格式。 在設置用於格式化“價格”列的“價格”列,用戶遇到的數字格式丟失的“價格”列的“價格”之後,問題在設置自定義單元...
      程式設計 發佈於2025-05-24
    • 如何將PANDAS DataFrame列轉換為DateTime格式並按日期過濾?
      如何將PANDAS DataFrame列轉換為DateTime格式並按日期過濾?
      Transform Pandas DataFrame Column to DateTime FormatScenario:Data within a Pandas DataFrame often exists in various formats, including strings.使用時間數據時...
      程式設計 發佈於2025-05-24
    • Java字符串非空且非null的有效檢查方法
      Java字符串非空且非null的有效檢查方法
      檢查字符串是否不是null而不是空的 if(str!= null && str.isementy())二手: if(str!= null && str.length()== 0) option 3:trim()。 isement(Isement() trim whitespace whites...
      程式設計 發佈於2025-05-24
    • Spark DataFrame添加常量列的妙招
      Spark DataFrame添加常量列的妙招
      在Spark Dataframe ,將常數列添加到Spark DataFrame,該列具有適用於所有行的任意值的Spark DataFrame,可以通過多種方式實現。使用文字值(SPARK 1.3)在嘗試提供直接值時,用於此問題時,旨在為此目的的column方法可能會導致錯誤。 df.withCo...
      程式設計 發佈於2025-05-24
    • 將圖片浮動到底部右側並環繞文字的技巧
      將圖片浮動到底部右側並環繞文字的技巧
      在Web設計中圍繞在Web設計中,有時可以將圖像浮動到頁面右下角,從而使文本圍繞它纏繞。這可以在有效地展示圖像的同時創建一個吸引人的視覺效果。 css位置在右下角,使用css float and clear properties: img { 浮點:對; ...
      程式設計 發佈於2025-05-24
    • 如何從PHP中的Unicode字符串中有效地產生對URL友好的sl。
      如何從PHP中的Unicode字符串中有效地產生對URL友好的sl。
      為有效的slug生成首先,該函數用指定的分隔符替換所有非字母或數字字符。此步驟可確保slug遵守URL慣例。隨後,它採用ICONV函數將文本簡化為us-ascii兼容格式,從而允許更廣泛的字符集合兼容性。 接下來,該函數使用正則表達式刪除了不需要的字符,例如特殊字符和空格。此步驟可確保slug僅包...
      程式設計 發佈於2025-05-24
    • CSS強類型語言解析
      CSS強類型語言解析
      您可以通过其强度或弱输入的方式对编程语言进行分类的方式之一。在这里,“键入”意味着是否在编译时已知变量。一个例子是一个场景,将整数(1)添加到包含整数(“ 1”)的字符串: result = 1 "1";包含整数的字符串可能是由带有许多运动部件的复杂逻辑套件无意间生成的。它也可以是故意从单个真理...
      程式設計 發佈於2025-05-24
    • Python讀取CSV文件UnicodeDecodeError終極解決方法
      Python讀取CSV文件UnicodeDecodeError終極解決方法
      在試圖使用已內置的CSV模塊讀取Python中時,CSV文件中的Unicode Decode Decode Decode Decode decode Error讀取,您可能會遇到錯誤的錯誤:無法解碼字節 在位置2-3中:截斷\ uxxxxxxxx逃脫當CSV文件包含特殊字符或Unicode的路徑逃...
      程式設計 發佈於2025-05-24

    免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

    Copyright© 2022 湘ICP备2022001581号-3