2012-01-28 8 views
0

以下のコードはjson文字列をハードコードする場合に機能しますが、テンプレートをレンダリングするためにajax呼び出しから返されたjson文字列を渡すと機能しません。問題を見つけるのを手伝ってください。サーバー側でjqueryテンプレートがajaxデータからレンダリングされない

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(); 
        } 

は、AJAX呼び出しから返されると、私はそのデータが取り込まれていることを見ています。しかし、戻り値の型がjson配列の場合は表示できません。表示論理はjson配列をハードコードしているかのように正しいです。私はリストとテーブルを見ることができます。レスポンスコードが成功した場合、ロジックはエラー状態になりません。

+0

「動作しません」とはどういう意味ですか?サーバーは何を返すのですか?レスポンスコードとは何ですか? – hvgotcodes

+0

私は、表示しようとしているテーブルが表示されないことも意味します。ステータスコードも常に成功し、サーバはJSON文字列を返しています。また、dataTypeを変更して試してみてください: 'json' @hvgotcodes – Ayub

+0

応答コードの200を確認しました。OK – Ayub

答えて

0

は、上記の問題をvar obj = jQuery.parseJSON(nameTex)を使用して解決しました。

関連する問題