javascript - Grails Controller 的值打破了gsp中的javascript

标签 javascript xml string grails jstree

我正在将XML字符串从grails Controller 传递到gsp,并且需要在javascript函数中使用它来使用jstree显示treeview。

我的 Controller 代码是

    render(view: "list",model: [dataXML: callXML.getXmlString()])

gsp代码中的javascript函数是
    function callXML(){
            var xmlStr = "${dataXML}";
            _uimTree = new UIMTreeProcessor(parseXml(), jQuery("#jstree"));
            _uimTree.doProcess();
    }

    function parseXML(){
            if (window.DOMParser) {
                return new window.DOMParser().parseFromString(xmlStr, "text/xml");
            }else if (typeof window.ActiveXObject != "undefined" && new window.ActiveXObject("Microsoft.XMLDOM")) {
                var xmlDoc = new window.ActiveXObject("Microsoft.XMLDOM");
                xmlDoc.async = "false";
                xmlDoc.loadXML(xmlStr);
                return xmlDoc;
            }else{
                return jQuery(xmlStr);
            }
    }

Controller :
def showModel = { 
    CallXML callXML = new CallXML(); 
    callXML.setXmlString(); 
    def productFlowModels = new XmlParser().parseText(callXML.getXmlString()); 
    println callXML.getXmlString(); 
    render(view: "list",model: [dataXML: callXML.getXmlString() as String]) 
}

$ {dataXML}启用函数后,它将破坏代码。我尝试不加引号,仍然是同样的问题。
我做错了什么?

提前致谢。

最佳答案

如果您有xml字符串,则应该可以从 Controller 访问它,如下所示:

Controller :

def list(Integer max) {
        def xmlString = """<langs type="current">
                             <language>Java</language>
                             <language>Groovy</language>
                             <language>JavaScript</language>
                           </langs>"""

        def xml = new XmlParser().parseText( xmlString )
        render (view:'list',model: [dataXML:xml ])
    }

GSP:
<!DOCTYPE html>
<html>
    <head>
        <script>
        function my(){
            var str = "${dataXML.encodeAsHTML()}"
            alert (str)
        }
        </script>
    </head>
    <body>

    <p>
        ${dataXML.encodeAsHTML()}
    </p>
           <script>
               my()
           </script>
    </body>
</html>

关于javascript - Grails Controller 的值打破了gsp中的javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18544926/

相关文章:

javascript - 未捕获的语法错误 : Unexpected token ILLEGAL issue with markdown to HTML converter

javascript - 添加音频到我的网页

java - Android Studio 中单选按钮 onClick() 的替代选项

php - 字符串中最接近特定短语的数字

javascript - 获取类型错误 : Unknown encoding: 1 while running the server script with Mongoose

Javascript 专注于 DIV 元素不适用于 chrome

xml.etree.ElementTree 插入子节点的子节点创建无限循环 Python

sql-server - 如何正确处理 UTF-8 XML 中的 ?

凯撒密码转换字符

c# - 使用扩展方法修改字符串实例变量