2013-12-10 2 views
0

tml 페이지에서 ajax 호출을 만들려고합니다. 아이디어는 나에게 문자열을 반환하는 서블릿을 호출하는 것입니다. 자바 스크립트 함수는 다음과 같습니다Tapestr 5.1 및 servlet url

기능 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를/콤보 /"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> 

문제가 있다는 것입니다 서블릿이 "GET"을 가로 채지 않기 때문에 URL이 잘못되었다고 생각됩니다. 누군가 내가 뭘 잘못하고 있는지 알고 있습니까? 아니면 다른 방법이 있습니까?

감사합니다 !!!

+0

하지 마세요! 태피스 트리를 사용하는 경우 기존 서블릿 기반 라이브러리를 통합하려는 경우가 아니면 서블릿이 필요하지 않습니다. Tapestry는 AJAX 기능을''zones''를 통해 내장하고 있으며 컴포넌트 액션에서''JSONObject''를 반환하고 페이지에서''TextStreamResponse''를 반환 할 수 있습니다. –

답변

0

무슨 일이 일어나고있는 것은 태피스트리가 아약스 요청을 처리하고있어서 서블릿이 "GET을 가로채는"이유입니다.

당신은 도움이

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

(관리자 웹 애플리케이션의 주요 태피스트리 서비스) 당신의 태피스트리의 응용 프로그램 모듈에서 다음을 수행해야합니다.