Как получить struts2 HttpServletReponse с помощью запроса xmlhttp - PullRequest
1 голос
/ 21 июня 2011

Моя часть struts.xml

<action name="viewall" class="com.abc.csm.actions.GetAllConfiguration">
         <result name="success">/success.jsp</result>
    </action>

на странице загрузки Welcome.jsp я вызываю функцию getXml(), которая должна получить xml в качестве ответа, но вместо этого я получаю success.jsp content

function getXml()
{
 var url_action="/csm/viewall.action";
 var client; 
 var dataString;

 if (window.XMLHttpRequest){ 
     client=new XMLHttpRequest();
 } else {                    
     client=new ActiveXObject("Microsoft.XMLHTTP");
 }

 client.onreadystatechange=function(){

     if(client.readyState==4&&client.status==200)
     {
         alert(client.responseText); /* here i want to get the actual response i.e., my xml. I am also using fiddler to monitor. */

     }
 };

 dataString="projectid=1-105101";
 client.open("POST",url_action,true);
 client.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

 client.send(dataString);
}

1 Ответ

2 голосов
/ 21 июня 2011

В Struts.xml у вас есть:

<result name="success">/success.jsp</result>

Это то же самое, что и

<result type="dispatcher" name="success">/success.jsp</result>

Тип результата диспетчера является значением по умолчанию, и это означает, визуализировать JSP. Это то, что происходит, вы получаете результат JSP, а не XML.

Вот список встроенных типов результатов: http://struts.apache.org/2.0.6/docs/result-types.html Тип результата xslt может вас заинтересовать. Если вы не возражаете против работы в JSON, добавление Struts2-json-plugin в путь к классу даст вам тип результата json, который также очень прост в использовании.

Редактировать : Вы также можете использовать результат потока.

...