2016-06-07 2 views
0

사람이있는 테이블이 있습니다. 삭제 아이콘을 클릭하면 해당 사람을 데이터베이스에서 삭제하고 성공하면 테이블에서 해당 줄을 삭제하려고합니다. 나는 항상 deleteEmployee?id=37 not found 404을 얻습니다. 컨트롤러가 @RequestMapping(value = "/deleteEmployee", method = RequestMethod.GET) 인 컨트롤러가 있습니다. 클릭 한 사람이 데이터베이스 (삭제됨)에서 삭제되어 컨트롤러가 정상 상태 여야합니다. 하지만 왜 오류가 발생합니까?요청 아약스 봄 mvc

@RequestMapping(value = "/deleteEmployee", method = RequestMethod.GET) 
public void deleteEmployee(@RequestParam(value = "id", required = true) int id) { 
    System.out.println(id); 
    employeeDAO.deleteEmployee(id); 
} 


$(document).on('click','.delete-emp', function(){ 
    deleteEmployee(this); 
}); 
function deleteEmployee(el){ 
    var id = $(el).parent().attr('data'); 
    console.log("delete: "+id); 
    $.ajax({ 
     url: "deleteEmployee?id="+id, 
     success: function(){ 
      deleteRow(id); 
     } 
    }); 
} 

function deleteRow(el){ 
    var row = $('.employee-row[data='+el+']'); 
    var shiftRow = row.next(); 
    console.log("deleting "+row+" "+shiftRow); 
    row.remove(); 
    shiftRow.remove(); 
} 
+0

당신은 @ RequestMapping''방법을 컨트롤러에 아약스 URL을 매핑 한 확인해야 아약스 호출에서 콘텐츠 형식을 추가 할 수 있습니다. – Blank

+1

void를 반환하지 마십시오. httpStatus를 반환합니다. 확인을 클릭합니다. '@ResponseStatus (value = HttpStatus.OK)' – TCHdvlp

+0

당신의 현재 페이지와 컨텍스트 경로는 무엇입니까? – Blank

답변

2

@ResponseBody annotation을 사용하면 충분합니다. 이것은 당신의 문제를 해결할 것입니다.

@RequestMapping(value = "/android/api/home", method = RequestMethod.GET, produces=MediaType.APPLICATION_JSON_VALUE) 
public @ResponseBody void Home(Locale locale, Model model,HttpServletRequest request,HttpServletResponse response) throws IOException { 
    //your logic 
} 

jQuery 
     .ajax({ 
      url : controllerUrl, 
      data : oMyForm, 
      dataType : 'text', 
      processData : false, 
      contentType : false, 
      type : 'POST', 
      success : function(data) { 

      } 
     }); 
+0

나는 그것을 무효로 시도했고 나는 빈 페이지를 얻었다. 나는 그것을 상쾌하게하지 않고 페이지에 머무르고 싶다. 그냥 db에서 행을 삭제하는 아약스를 해고하는 것은 DOM 테이블에서 같은 행을 삭제하는 것보다. db의 행이 삭제되었지만 DOM의 행이 업데이트되지 않도록 오류 응답이 나타납니다. – parohy

+0

응답 본문에서 문자열을 반환 할 수 있습니다. 내 대답을 업데이트하는 중입니다. 동일한 페이지에 머물러 있습니다. –

+0

함수를 void로 선언하면 문자열을 반환 할 수 없습니다. 그러나이 문제를 해결하는 방법에 대한 아이디어입니다. – TCHdvlp