我试图在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中,我正在访问它 - 如< - p>
$(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中进行设置?提前谢谢你。 阿米特
答案 0 :(得分:0)
将xml放在响应对象中,并通过适当的标签访问视图层......简单。 我想这可能会节省你的时间。
答案 1 :(得分: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