Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mencegah HTML Melarikan Diri dalam Templat GoLang?

Bagaimana untuk Mencegah HTML Melarikan Diri dalam Templat GoLang?

Linda Hamilton
Linda Hamiltonasal
2024-11-02 10:47:311086semak imbas

How to Prevent HTML Escaping in GoLang Templates?

Memasukkan HTML ke dalam Templat GoLang

Apabila mengisi templat HTML dalam GoLang, menghadapi isu dengan aksara HTML yang dilepaskan dan ditambah secara tidak betul bukanlah perkara biasa. Untuk menangani perkara ini, adalah penting untuk memahami perbezaan antara menghantar data sebagai rentetan dan sebagai templat.HTML.

Secara lalai, templat GoLang akan terlepas daripada aksara HTML apabila data dihantar sebagai rentetan. Ini menghasilkan output yang tidak dijangka yang anda nyatakan. Untuk mengelakkan ini, pendekatan yang betul adalah dengan menghantar kandungan HTML sebagai templat.HTML. Jenis data ini direka khusus untuk mengendalikan kandungan HTML tanpa melarikan diri.

Berikut ialah contoh cara menggunakan templat.HTML:

<code class="go">package main

import (
    "html/template"
    "os"
)

func main() {
    tpl := template.Must(template.New("main").Parse(`{{define "T"}}{{.Html}}{{.String}}{{end}}`))
    tplVars := map[string]interface{} {
        "Html": template.HTML("<p>Paragraph</p>"),
        "String": "<p>Paragraph</p>",
    }
    tpl.ExecuteTemplate(os.Stdout, "T", tplVars)
}</code>

Dengan menghantar kandungan HTML sebagai templat.HTML, output akan diberikan seperti yang dimaksudkan, dengan aksara HTML dipaparkan dengan betul. Pendekatan ini memastikan bahawa templat HTML anda diisi dengan tepat tanpa sebarang pelepasan yang tidak diingini.

Atas ialah kandungan terperinci Bagaimana untuk Mencegah HTML Melarikan Diri dalam Templat GoLang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn