2012-04-27 3 views
1

Я пытаюсь получить ответ в javascript типа xml в strurts2. В моем классе действия я создаю xml, и я пытаюсь получить его в java-скрипте. Мой код в классе действия -Как получить xml как ответ в struts2

public String populateXML(){ 
    DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); 
    DocumentBuilder documentBuilder; 

    String root = "menuTree"; 
    File file = new File(this.getServletRequest().getRealPath("/xml/xmlmenutree2.xml")); 

    documentBuilder = documentBuilderFactory.newDocumentBuilder(); 
    Document document1 = documentBuilder.newDocument(); 

    Element rootElement = null; 
    rootElement = document1.createElement(root); 
    document1.appendChild(rootElement); 

    TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
    Transformer transformer = transformerFactory.newTransformer(); 

    DOMSource source = new DOMSource(document1); 
    StreamResult result = new StreamResult(file); 

    transformer.transform(source, result); 
    return SUCCESS; 
} 

Это создаст файл XML в моем диске. и в моей JavaScript я доступ к нему как -

$(document).ready(function() { 
    var options = { 
    xmlUrl : 'xml/xmlmenutree2.xml' 

}; 
    $('#xmlMenuTree').xmltree(options); 
} 

где xmlMenuTree мой ДИВ идентификатора в JSP. и strurts xml-

<action name="fileManagement" class="com.amit.MyAction" method="populateXML"> 
    <result name="success" type="tiles">filemanagement</result> 
</action> 

Это работает отлично. Но я действительно хотел, чтобы xml был настроен на ответ вместо сохранения его на моем диске. Можно ли установить настройку в strurts2? благодарю вас заранее. Amit

ответ

0

Поместите xml в объект ответа и получите доступ к слою с помощью соответствующих тегов ... просто. Я думаю, это может сэкономить ваше время.

0

Действие:

public class MyAction extends ActionSupport { 
    //Generate xml like InputStream and put it here 
    private InputStream myXmlStream;  

определение Действие:

<action name="MyAction" class="mypackage.MyAction"> 
    <result type="stream"> 
    <!-- Struts will take InputStream from this variable and send it as response--> 
    <param name="myXmlStream">text/plain</param> 
    <!-- Set fake filename--> 
    <param name="contentDisposition">filename="xmlmenutree2.xml"</param> 
    </result> 
</action 
+0

Не уверен, что 'myXmlStream' парам есть, но это не было бы текст/обычный если это XML-документ, он бы либо 'text/xml', либо' application/xml' или что-то - для 'contentType'. 'inputName' устанавливает имя свойства потока и по умолчанию используется' inputStream'. –

+0

спасибо dave..это мне тест с этим .. я обязательно дам вам знать !!! :) – Amit

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