Я пытаюсь заставить 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 неправильным образом?
Заранее спасибо.