Tapestry 5.1和servlet url

时间:2013-12-10 10:02:55

标签: tapestry

我正在尝试从tml页面进行ajax调用。想法是调用servlet来返回一个字符串。 javascript函数是:

function getComment(paramId){

            var xmlhttp;
            if (window.XMLHttpRequest)
                 {// code for IE7+, Firefox, Chrome, Opera, Safari
                 xmlhttp=new XMLHttpRequest();
                }
            else
            {// code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }

            xmlhttp.onreadystatechange=function()
                {
                if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                    //document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
                    alert('El server responde' + xmlhttp.responseText);
                }
            }
            xmlhttp.open("GET","/myapp/combo/?personId=paramId",true);
            xmlhttp.send();

        } 

url“/ myapp / combo /”映射到web.xml:

    <servlet>
    <servlet-name>ComboServlet</servlet-name>
    <servlet-class>xxx.xxx.ComboServlet</servlet-class>
</servlet>


<servlet-mapping>
    <servlet-name>ComboServlet</servlet-name>
    <url-pattern>/combo/*</url-pattern>
</servlet-mapping>

问题是,似乎url是错误的,因为servlet不拦截“GET”。 有谁知道我做错了什么,或者还有其他方法吗?

感谢!!!

1 个答案:

答案 0 :(得分:0)

正在发生的事情是tapestry处理你的ajax请求,这就是你的servlet“不拦截GET”的原因。

您需要在tapestry的应用程序模块(webapp的主要挂毯服务)中执行以下操作

public static void contributeIgnoredPathsFilter(Configuration<String> configuration)
{
    configuration.add("/combo/.*");
}

这应该有所帮助。