无法在Spring MVC中使用获取请求调用控制器方法

时间:2018-10-14 16:05:54

标签: java spring spring-mvc

实际上,我是java spring mvc的新手,目前陷入一个非常简单的问题。基本上,我正在删除表的特定行,但无法调用控制器方法Remove

我的check.jsp表代码

<table id="customers">
   <tr>
       <th>ID</th>
       <th>Name</th>
       <th>Contact</th>
       <th>Edit</th>
       <th>Delete</th>
   </tr>
   <c:forEach items="${persons}" var="p">
        <tr>
             <td>${p.id}</td>
             <td>${p.name}</td>
             <td>${p.contact}</td>
             <td ><a href="#">edit</a></td>
             <td><a href="<c:url value='/remove/${p.id}' />" >delete</a></td>
       </tr>
    </c:forEach>
</table> 

我的testController.java代码

@Controller
public class testController {
    @RequestMapping("/check")
    public ModelAndView getusers() 
    {
       ModelAndView mv=new ModelAndView("check");
       Session session=HibernateUtil.getSessionFactory().getCurrentSession();
       session.beginTransaction();
       List list=session.createQuery("from Person").list();
       mv.addObject("persons",list);
       session.getTransaction().commit();   
       mv.addObject("message","Welcome");
       return mv;
    }
    @RequestMapping(value = "/remove/{id}", method = RequestMethod.GET)
    public ModelAndView removePerson(@PathVariable("id") int id)
    {
       //System.out.println("It IS RUNNING");
       ModelAndView mv=new ModelAndView("check");
       Session session=HibernateUtil.getSessionFactory().getCurrentSession();
       session.beginTransaction();

       Person P;
       P = (Person)session.load(Person.class,id);   
       session.delete(P);
       session.flush();

       session.getTransaction().commit(); 

       return mv; 
    }
}

这是testController的整个类代码,其中getusers()方法工作得很好,而removePerson()不起作用,从而导致HTTP Status 404 - Not Found错误

1 个答案:

答案 0 :(得分:0)

浪费了一天的时间后,我终于发现控制器类没有问题,主要问题在于我的dispatcher-servlet.xml映射,其中我将<prop key="check.htm">test</prop>更改为<prop key="/check/**">test</prop> removePerson()方法工作正常。