0

私はgrailsコントローラーからgspにXML文字列を渡しています.jstreeを使用してツリービューを表示するには、JavaScript関数で使用する必要があります.

私のコントローラーコードは

    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);
            }
    }

コントローラ:

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} が関数に入るとすぐに、コードが壊れます。引用符なしで試しましたが、それでも同じ問題です。私が間違っていることは何ですか?

前もって感謝します。

4

2 に答える 2

0

モデルで、使用します

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

文字列を JavaScript コンテキストで出力する場合は、文字列を JavaScript 文字列として適切にエンコードする必要があります。

于 2013-08-31T06:07:54.783 に答える