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 です。と strurts 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 に答える