Как остановить кодирование URL-адреса в файле шаблона на Beego?

У меня проблемы с кодировкой шаблонов и URL-адресов на Beego.

(Beego — один из шаблонизаторов Go lang)

Как остановить кодирование URL-адреса в HTML TAG в файле шаблона на Beego?

Пожалуйста, дай мне знать.

--

logcontroller.go

package controllers

import (
    "mycode/models"
)

type FiletranslogController struct {
    baseController
}

func (this *FiletranslogController) Get() {
    // Already encoded url
    this.Data["querystring"] = "/filetranslog/getlogs?sdate=2016-11-13%2000%3A00&edate=2016-12-13%2023%3A59&md5=&trans_type=2"

    this.TplName = "log/filetrans.html"
}

файлtrans.html

<!-- Not in TABLE TAG -->
{{str2html .querystring}}

<!-- In TABLE TAG -->
<table  id="table-log"
        data-url="{{str2html .querystring}}"
        data-toggle="table"
        data-toolbar="#toolbar-log"
        data-search="true"
        data-show-refresh="true"
        data-pagination="true"
        data-side-pagination="server"
        >
    <thead>
    <tr>
        <th data-field="rdate">Date</th>
        <th data-field="mail_sender">Mail Sender</th>
        <th data-field="trans_type">Trans Type</th>
        <th data-field="md5">MD5</th>
    </tr>
    </thead>
</table>
<script>

просмотреть исходный код в веб-браузере

<!-- Not in TABLE TAG -->
/filetranslog/getlogs?sdate=2016-11-13%2000%3A00&edate=2016-12-13%2023%3A59&md5=&trans_type=2

<!-- In TABLE TAG -->
<table  id="table-log"
        data-url="/filetranslog/getlogs?sdate=2016-11-13%2000%3A00&amp;edate=2016-12-13%2023%3A59&amp;md5=&amp;trans_type=2"
        data-toggle="table"
        data-toolbar="#toolbar-log"
        data-search="true"
        data-show-refresh="true"
        data-pagination="true"
        data-side-pagination="server"
        >
    <thead>
    <tr>
        <th data-field="rdate">Date</th>
        <th data-field="mail_sender">Mail Sender</th>
        <th data-field="trans_type">Trans Type</th>
        <th data-field="md5">MD5</th>
    </tr>
    </thead>
</table>
<script>

МОЙ БОГ

/filetranslog/getlogs?sdate=2016-11-13%2000%3A00&edate=2016-12-13%2023%3A59&md5=&trans_type=2
---> changed to 
/filetranslog/getlogs?sdate=2016-11-13%2000%3A00&amp;edate=2016-12-13%2023%3A59&amp;md5=&amp;trans_type=2

* пример) Движок шаблонов PHP Smarty поддерживает тег {literal} bla..bla..never encoded {/literal}. *


person Won Seok Ahn    schedule 15.12.2016    source источник
comment
Вы пытались использовать необработанную строку для уже закодированного URL-адреса (используя обратные галочки)? Необработанные строки содержат неинтерпретированные символы — golang.org/ref/spec#String_literals   -  person Pradip Patil    schedule 15.12.2016
comment
Я уже пробовал, но это все еще. Спасибо хоть.   -  person Won Seok Ahn    schedule 15.12.2016
comment
stackoverflow.com/questions/41154937/   -  person Won Seok Ahn    schedule 15.12.2016


Ответы (2)


  • str2html Разбирать строку в HTML, без экранирования. {{str2html .Strhtml}}

https://beego.me/docs/mvc/view/template.md

person AstaXie    schedule 15.12.2016
comment
Для меня большая честь видеть вас, Астакси. Я уже пробовал. Но это работает только вне TAG.{{.str2html .querystring}} vs <table data-url="{{.str2html .querystring}}"></table> - person Won Seok Ahn; 15.12.2016
comment
stackoverflow.com/questions/41154937/ - person Won Seok Ahn; 15.12.2016

Результат второго теста.

файл_шаблона.html

{{str2html .querystring}}
<table  data-url="{{.querystring}}"
        data-url='{{.querystring}}'
        data-url="{{str2html .querystring}}"
        data-url='{{str2html .querystring}}'
        >
    <thead>
    <tr>
        <th data-field="rdate">Date</th>
        <th data-field="mail_sender">Mail Sender</th>
        <th data-field="trans_type">Trans Type</th>
        <th data-field="md5">MD5</th>
    </tr>
    </thead>
</table>

просмотреть исходный код в веб-браузере

/filetranslog/getlogs?sdate=2016-11-13%2000%3A00&edate=2016-12-13%2023%3A59&md5=&trans_type=2
<table  data-url="/filetranslog/getlogs?sdate=2016-11-13%2000%3A00&amp;edate=2016-12-13%2023%3A59&amp;md5=&amp;trans_type=2"
        data-url='/filetranslog/getlogs?sdate=2016-11-13%2000%3A00&amp;edate=2016-12-13%2023%3A59&amp;md5=&amp;trans_type=2'
        data-url="/filetranslog/getlogs?sdate=2016-11-13%2000%3A00&amp;edate=2016-12-13%2023%3A59&amp;md5=&amp;trans_type=2"
        data-url='/filetranslog/getlogs?sdate=2016-11-13%2000%3A00&amp;edate=2016-12-13%2023%3A59&amp;md5=&amp;trans_type=2'

        >
    <thead>
    <tr>
        <th data-field="rdate">Date</th>
        <th data-field="mail_sender">Mail Sender</th>
        <th data-field="trans_type">Trans Type</th>
        <th data-field="md5">MD5</th>
    </tr>
    </thead>
</table>

Почему литеральная строка кодируется? Я использую функцию «beego.ParseForm» для разбора формы, однако URL-адрес с двойным кодированием не анализируется «beego.ParseForm» должным образом.

person Won Seok Ahn    schedule 15.12.2016