2012-01-28 3 views
0

아래 코드는 json 문자열을 하드 코드하면 작동하지만, json 문자열을 전달하여 아약스 호출에서 템플릿을 렌더링하면 작동하지 않습니다. 문제를 찾아 내도록 도와주세요. 서버 측에서jquery 템플릿이 아약스 데이터에서 렌더링되지 않습니다.

function getData(orgId){ 

    $.template("EmployeeTemplate","<tr><td colspan='2'>${name}</td> 
    <td colspan='2'>${id}</td> <td colspan='2'>${jobTitle}</td></tr>"); 

    var gUrl = "/JQueryMobileApp/HRServlet?action=employee&orgId="+orgId; 

    // Do the ajax call 
    $.ajax({ 
     url: gUrl, 
     dataType:'json', 
     // Callback (onsuccess) 
     success: function(d){ 

     var jsonData = eval(d); 

     var nameText=jsonData.empNames; 
     //nameText=[{name:"abc",id:"1"},{name:"pqr",id:"2"}]; 
     $.tmpl("EmployeeTemplate", nameText).appendTo("#employeeList"); 
     alert(nameText); 

     }, 
     // Error handler 
     error: function(req, status, err){ 
     alert('error getting name'); 
     var group_list = document.getElementById("orgTree"); 

     } 
    }); 
    } 

코드 : 나는 직원의 이름 텍스트 상자를 채우기 위해 같은 방법을 사용하고

   PrintWriter out = response.getWriter(); 
     response.setContentType("application/json"); 
     JSONObject obj1=new JSONObject(); 
     if(request.getParameter("action").equals("employee")){ 

      String orgId=request.getParameter("orgId"); 

     List<EmployeeVO> name=access.getEmployeeListInOrganization(orgId); 

     Gson gson = new Gson(); 
     String json=gson.toJson(name); 
     obj1.put("empNames",json); 


     out.print(obj1); 
     out.flush(); 
        } 

아약스 호출에서 반환하고 나는 그것이 채워지는 것을보고하고있다. 그러나 반환 유형이 JSON 배열 인 경우 표시 할 수 없습니다. 디스플레이 논리는 json 배열을 하드 코딩 한 것처럼 목록과 테이블을 볼 수 있습니다. 응답 코드가 성공하면 논리가 오류 상태가되지 않습니다.

+0

'작동하지 않습니다'는 의미는 무엇입니까? 서버가 무엇을 반환합니까? 응답 코드는 무엇입니까? – hvgotcodes

+0

내가 보여 주려고하는 테이블이 표시되지 않는다는 것을 의미합니다. 또한 상태 코드가 항상 성공하고 서버가 json 문자열을 반환합니다. 또한 dataType을 수정하여 시도 : 'json'@hvgotcodes – Ayub

+0

응답 코드 200을 확인했습니다. OK – Ayub

답변

0

은 var obj = jQuery.parseJSON (nameTex)을 사용하여 위 문제를 해결했습니다.

관련 문제