2013-02-11 1 views
0

안녕하세요.Ajax를 통한 서블릿 값 보내기

개인적으로 "맵"을 시뮬레이트하는 기능이 있는데, "키"메뉴 항목과 "값"메뉴 하위 항목으로 추가 할 수 있습니다.

이 기능

내가 서블릿에 아약스에서이 함수의 값을 전달 어떻게이었고, 그들을 통해 자바의지도를 조립 알고 싶습니다 무엇

var key; 
var value; 
var mapaDeListas = new Array(); 
$(".conteudoMenu a").click(function(){ 
    key = $(this).parent(".conteudoMenu").parent("li").find(".itemMenu").attr("id"); 
    value = $(this).attr("id"); 
    Processar(); 
    console.log(mapaDeListas); 
}); 

var Processar = function() { 
    if (mapaDeListas[key] && $.inArray(value, mapaDeListas[key]) == -1 || mapaDeListas[key] && $.inArray(value, mapaDeListas[key]) != -1) { 
     // Checks if the key already exists from the "key" and if the value of "value" is present in the array 
     if (mapaDeListas[key].indexOf(value) == -1){ 
      mapaDeListas[key].push(value); 
     } 
    } 
    else { 
     // Creates the array according to the value of the "key" and adds the value of "value" 
     mapaDeListas[key] = new Array(); 
     mapaDeListas[key].push(value); 
    } 
} 

아래에서 볼 수 있습니다.

난 다음 다음 Ajax를 통해이 함수의 값을 보내도록했지만, 다음과 같이 쓸데 서블릿에

function loadQuery(){ 
    if(inputMenu.length > 0){ 
    $.ajax({ 
     url: "assembles-query", 
     type: "POST", 
     data: { 
      "mapaDeListas[]" : mapaDeListas 
     }, 
     //dataType: "json", 
     error:function(){ 
      alert("ERRO MENU") 
     }, 
     success:function(responseText){ 
      $("textarea[id=assembleQuery]").text(responseText); 
     } 
    }); 
    } 
} 

에 결과를 얻을려고 문자열 [] mapaDeListas = request.getParameterValues ("mapaDeListas []");

그러나 인쇄물을 보내면 결과는 항상 null으로 반환됩니다.

누군가 내가 잘못된 정보와이 값을 올바르게 전달하기 위해 어떻게해야합니까? 이미 도움을 주신 모든 분들께 감사드립니다.

아래에는 결과 저장 방법이 인쇄되어 있습니다. 나는이 있으리라 믿고있어 http://bit.ly/V9oHsg

+0

이 mapaDeListas [] ": mapaDeListas'는 wok입니다. 당신은 당신 자신의 GET URL ('url : "assembles-query",')을 만들고 배열의 각 요소를 추가하려고 노력해야 할 수도 있습니다. – MatRt

+0

내 loadQuery 함수 내에서 mapaDeListas를 인쇄하려고하면 아무것도 반환되지 않습니다. . 값이 mapaDeListas에 저장되지 않은 것입니다. 당신이 말한이 제안이 될까요? –

답변

0

가 jQuery를 1.4 함께 - 다음 $.ajax()

traditional: true 매개 변수를 사용 또는 전 세계적으로 설정 : (from $.param() docs)

jQuery를 1.4로

$.param() 방법 PHP 및 Ruby on Rails와 같은 최신 스크립팅 언어 및 프레임 워크를 수용 할 수 있도록 깊은 객체를 재귀 적으로 직렬화합니다. jQuery.ajaxSettings.traditional = true;을 설정하여이 기능을 전역으로 비활성화 할 수 있습니다.

+0

안녕하세요 Sudhakar. 이것은 내가 가지고있는 문제에서 나를 도울 수 있 었는가? 고맙습니다. –

+0

시도해 보셨습니까? – Sudhakar