Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在struts2中获取xml作为响应_Java_Xml_Struts2 - Fatal编程技术网

Java 如何在struts2中获取xml作为响应

Java 如何在struts2中获取xml作为响应,java,xml,struts2,Java,Xml,Struts2,我试图在strurts2中获得类型为xml的javascript响应。 在我的action类中,我创建了一个xml,并试图在java脚本中获取它。 我在动作课上的代码- public String populateXML(){ DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder; Stri

我试图在strurts2中获得类型为xml的javascript响应。 在我的action类中,我创建了一个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中,我访问它就像--

其中xmlMenuTree是我在jsp上的div id。 和struts xml-

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

文件管理
这很好用。但我实际上希望xml在响应时设置,而不是保存在磁盘中。 可以在strurts2中进行设置吗?先谢谢你。
Amit

将xml放在响应对象中,并通过适当的标记在视图层中进行访问…很简单。 我想这可能会节省您的时间。

行动:

  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

文本/纯文本
filename=“xmlmenutree2.xml”

不确定
myXmlStream
参数是什么,但如果它是XML文档,它就不会是text/plain,它可能是
text/XML
application/XML
或其他东西——对于
contentType
inputName
设置流属性名称,默认为
inputStream
<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