Не удается заставить Ajax работать со Struts / Spring - PullRequest
1 голос
/ 08 марта 2012

Я пытаюсь заставить Ajax работать с простым WebApp с использованием Struts и Spring, чтобы я мог загрузить .jsp внутри тега div в другой .jsp, но продолжаю получать ошибку «Resource not found» Я просмотрел всю сеть, но все еще не могу понять.

Вот мой код:

распорки-config.xml

<global-exceptions>
</global-exceptions>
<global-forwards></global-forwards>

<action-mappings>
    <action path="/ajax" input="/index.jsp" type="org.springframework.web.struts.DelegatingActionProxy">
        <forward name="success" path="/contenido.jsp" />
    </action>

</action-mappings>

<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
         <set-property property="contextConfigLocation"
            value="/WEB-INF/classes/spring/ApplicationContext.xml"/>
</plug-in>

applicationContext.xml

<!-- Actions Classes -->
<bean name="/ajax" class="com.ajax.prueba.action.AjaxAction"> </bean>

AjaxAction.java

public class AjaxAction extends Action {

    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {

        return mapping.findForward("success");
    }
}

index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<%@taglib prefix="html" uri="http://struts.apache.org/tags-html" %>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>Ajax Test</title>
        <script type="text/javascript" src="<c:url value="/js/general.js"/>"></script>
    </head>
    <body>

        <h1>This is an Ajax Test</h1>
        <html:link  href="#" onclick="loadContent()" >Show Message</html:link>

        <div id="content"></div>

    </body>
</html>

contenido.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Ajax is working!

general.js

var xmlhttp;

function loadContent()
{

 xmlhttp=GetXmlHttpObject();

  if (xmlhttp==null)
  {
   alert ("Your browser does not support Ajax HTTP");
   return;
  }

    var url="/ajax.do";

    xmlhttp.onreadystatechange=getOutput;
    xmlhttp.open("GET",url,false);
    xmlhttp.send(null);
}

function getOutput()
{
  if (xmlhttp.readyState==4)
  {
  document.getElementById("content").innerHTML=xmlhttp.responseText;
  }
}

function GetXmlHttpObject()
{
    if (window.XMLHttpRequest)
    {
       return new XMLHttpRequest();
    }
    if (window.ActiveXObject)
    {
      return new ActiveXObject("Microsoft.XMLHTTP");
    }
 return null;
}

index.jsp загружается просто отлично, но когда я нажимаю на ссылку «Показать сообщение», я получаю 404 с сервера Apache:

тип Статус отчета

message /ajax.do

description Запрашиваемый ресурс (/ajax.do) недоступен.

Извините, если это слишком долго. Это всего лишь небольшое приложение для тестирования Ajax, а затем использовать его в другом большом приложении, над которым я работаю (с той же проблемой).

Есть идеи, в чем может быть проблема? Я думаю, что перенаправление со Struts неправильным образом?

Заранее спасибо.

1 Ответ

1 голос
/ 08 марта 2012

Вам необходимо указать полный путь действия:

    url='http:\\localhost:8080\'+appName+'\ajax.do'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...