html
  • grails
  • 2015-10-30 2 views 3 likes 
    3

    У меня есть результат как списокПочему HTML становится отображается в виде строки

    [[<a onclick="viewEmpDetails('563291f0af6a1ecb740f904c','false','UniqueId')" title='View' style='cursor:pointer'><i class='ace-icon fa fa-search-plus grey' style='width:30px;'> </i></a>, 02/02/49, 02/02/49, 02/02/1949, 11-Jan-1916, 10-Feb-33]] 
    

    И я использую ниже код для итерации

    <g:each in="${session.treeGridJsonObject}" var="lists"> 
        <g:each in="${lists}" var="list"> 
        <td>${list}</td> 
        </g:each> 
    </g:each> 
    

    Но я получаю HTML-код в виде строки в GSP. enter image description here

    Как я добавляю HTML данных в контроллере

    htmlData += "<a onclick=\"viewEmpDetails('"+row['UniqueId']+"','false','UniqueId')\" title='View' style='cursor:pointer'><i class='ace-icon fa fa-search-plus grey' style='width:30px;'> </i></a>" 
    

    Когда я пытаюсь отлаживать его, показывая двойной «» котировку.

    enter image description here

    ответ

    5

    Это предотвращает XSS attacks. Таким образом, если пользователь отправляет некоторый javascript, он не будет запускаться при отображении другим людям. Есть несколько способов вывода исходных данных:

    ${raw(content)} 
    

    или

    ${content.encodeAsRaw()} 
    

    или

    <g:encodeAs codec="Raw">${content}</g:encodeAs> 
    

    или

    <g:encodeAs codec="None">${content}</g:encodeAs> 
    

    http://mrhaki.blogspot.nl/2013/11/grails-goodness-generating-raw-output.html См

     Смежные вопросы

    • Нет связанных вопросов^_^