2017-11-25 184 views
0

我用MySQL数据库设置了Spark框架和thymeleaf。我无法将要删除的用户的ID传递到我的应用程序的后端。从Spark数据库中删除用户和MySQL中的Thymeleaf

后端

get("/delete", (rq, rs) -> { 
     map.put("lista", studentService.getAllStudents()); 
     return thymeleafTemplateEngine.render(new ModelAndView(map,"delete"));}); 

delete("/delete:id", (rq, rs) -> { 
      studentService.deleteStudent(rq.params(":id")); 
      return "Korisnik uspesno izbrisan iz baze."; 
     }); 

服务

public void deleteStudent(String id){ 
    sql = "DELETE FROM student WHERE student_id="+id; 
    con = ConnectionManager.getConnection(); 
    try{ 
     stmt = con.createStatement(); 
     stmt.executeUpdate(sql); 
    } catch (SQLException e){ 
     e.printStackTrace(); 
    } 
} 

前端

<form th:method="delete"> 
    <input th:name="id" type="text" placeholder="Id korisnika"> 
    <button type="submit">Submit</button> 
</form> 

这是会从thymeleaf模板http://localhost:4567/delete?id=15传递的URL,我希望它火花框架注册删除方法,有什么办法可以完成这个?

回答

0

后端

delete("/delete/deleteStudent", (rq, rs) -> { 
     studentService.deleteStudent(rq.queryParams("id")); 
     map.put("lista", studentService.getAllStudents()); 
     return thymeleafTemplateEngine.render(new ModelAndView(map, "delete")); 
    }); 

服务

public void deleteStudent(String id){ 
    System.out.println("Delete Called"); 
    sql = "DELETE FROM student WHERE student_id="+id; 
    con = ConnectionManager.getConnection(); 
    try{ 
     stmt = con.createStatement(); 
     stmt.executeUpdate(sql); 
    } catch (SQLException e){ 
     e.printStackTrace(); 
    } 
} 

前端

<form th:method="delete" th:action="@{delete/deleteStudent}"> 
    <input type="number" th:name="id"> 
    <button type="submit">Delete user</button> 
</form> 

的问题是,我不知道,如果你想在你的浏览器的删除请求你需要一个XMLHttpRequest,所以当我为Firefox安装RESTClient插件并发送删除请求到我的服务器ver,一切正常。