gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 15:31:35 26 4
gpt4 key购买 nike

我正在将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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com