Java 如何在struts2中获取xml作为响应
我试图在strurts2中获得类型为xml的javascript响应。 在我的action类中,我创建了一个xml,并试图在java脚本中获取它。 我在动作课上的代码-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
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