1

我正在尝试在 strurts2 中以 xml 类型的 javascript 获得响应。在我的动作类中,我正在创建一个 xml,并试图在 java 脚本中获取它。我在行动课上的代码 -

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 的 div id。并支持 xml-

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

这工作正常。但我实际上希望将 xml 设置为响应而不是将其保存在我的磁盘中。是否可以在 strurts2 中进行设置?提前谢谢你。阿米特

4

2 回答 2

0

将 xml 放入响应对象并通过适当的标签访问视图层......简单。我认为这可能会节省您的时间。

于 2012-04-27T07:02:48.217 回答
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
于 2012-04-27T10:38:43.307 回答