2013-05-30 30 views
-1

我想從數據庫中刪除一個用戶,但徒勞無功......我能夠將用戶保存到數據庫。試圖從數據庫中刪除用戶在春天mvc

我的春天控制器類是如下

CController.java

import project4.UserDAO1; 
import project4.User1; 
import java.util.Map; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import org.springframework.stereotype.Controller; 
import org.springframework.transaction.annotation.Transactional; 
import org.springframework.ui.ModelMap; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.servlet.ModelAndView; 
import org.springframework.web.servlet.mvc.multiaction.MultiActionController; 
import org.springframework.web.bind.annotation.ModelAttribute; 
import org.springframework.validation.BindingResult; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.beans.factory.annotation.Qualifier; 


@Controller 




public class CController{ 

    private UserDAO1 userDAO; 
    @Autowired 
    @Qualifier("myUserDAO") 
    private UserDAOImpl1 myUserDAO; 

    public void setUserDAO(UserDAO1 userDAO) { 
     this.userDAO = userDAO; 
    } 

    @RequestMapping(value = "/frm4/add", method = RequestMethod.POST) 
    public ModelAndView add(@ModelAttribute("add") User1 user,HttpServletRequest 
     request,HttpServletResponse response) throws Exception { 
     System.out.println("hai"); 

     userDAO.saveUser(user); 
     System.out.println("hai"); 
     return new ModelAndView("redirect:/list.htm"); 
    } 

    @RequestMapping(params = "/deleteuser/delete", method = RequestMethod.POST) 
    @Transactional 
    public ModelAndView delete(@ModelAttribute("delete") User1 user,HttpServletRequest 
      request,HttpServletResponse response) throws Exception { 
      userDAO.deleteUser(user); 
      return new ModelAndView("redirect:list.htm"); 
    } 


    @RequestMapping(params = "find", method = RequestMethod.POST) 
    @Transactional 
    public ModelAndView find(@ModelAttribute("find") User1 user,HttpServletRequest 
     request,HttpServletResponse response) throws Exception { 
        userDAO.findUser(user); 
         return new ModelAndView("redirect:list.htm"); 
    } 


    @RequestMapping(params = "update", method = RequestMethod.POST) 
    @Transactional 
    public ModelAndView update(@ModelAttribute("update") User1 user,HttpServletRequest 
      request,HttpServletResponse response) throws Exception { 
        userDAO.updateUser(user); 
         return new ModelAndView("redirect:list.htm"); 
    } 


    @RequestMapping(value = "list", method = RequestMethod.GET) 
    public ModelAndView list(HttpServletRequest request, 
      HttpServletResponse response) throws Exception { 


     ModelMap modelMap = new ModelMap(); 
     modelMap.addAttribute("userList", userDAO.listUser()); 
     modelMap.addAttribute("user", new User1()); 
     return new ModelAndView("list", modelMap); 
    } 
    } 

我hibeernate模板類是如下

import project4.User1; 
import java.util.List; 

import org.hibernate.Query; 
import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.cfg.Configuration; 
import org.springframework.orm.hibernate3.HibernateTemplate; 
import org.springframework.transaction.annotation.Propagation; 
import org.springframework.transaction.annotation.Transactional; 

public class UserDAOImpl1 implements UserDAO1 { 

    private HibernateTemplate hibernateTemplate; 

    public void setSessionFactory(SessionFactory sessionFactory) { 
     this.hibernateTemplate = new HibernateTemplate(sessionFactory); 
    } 

    @Override 
    @Transactional(propagation=Propagation.REQUIRED, readOnly=false) 
    public void saveUser(User1 user) { 
    try { 
    System.out.println (user.getId()); 
    hibernateTemplate.save(user); 
    }catch (RuntimeException re){ 
     throw re; 
    } 
    } 

    @Override 
    @SuppressWarnings("unchecked") 
    public List<User1> listUser() { 
    List<User1> result = hibernateTemplate.find("from User1"); 
    System.out.println("hai"); 
    System.out.println(result); 
    return result; 
    } 

    @Override 
    public void deleteUser(User1 user) { 
     hibernateTemplate.delete("from User1 where USER_ID=:" +user.getId()); 
    } 

    @Override 
    public List<User1> findUser(User1 user) { 
     List<User1> result =hibernateTemplate.find("from User1 where USER_ID=:" 
          +user.getId()); 
     return result; 

    } 

    @Override 
    public void updateUser(User1 user) { 
     hibernateTemplate.update(user); 

    } 

} 

我的前端是JSP如下

frm4.jsp

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <title>Insert title here</title> 
</head> 
<body> 
    <form method="POST" action="<%=request.getContextPath()%>/frm4/add"> 
    <table> 
    <tr> 
     <td><label for="oid">Id:</label></td> 
     <td> 
      <input name="oid" value="${user.id}" /> 
     </td> 
    </tr> 
    <tr> 
    <td> 
     <label for="name">Name:</label></td> 
    <td> 
     <input name="name" value="${user.name}" /> 
    </td> 
    </tr> 
    <tr> 
    <td> 
     <label for="password">Password:</label></td> 
    <td> 
     <input name="password" value="${user.password}" /> 
    </td> 
    </tr> 

    <tr> 
     <td> 
      <label for="gender">Gender:</label></td> 
     <td> 
      <input name="gender" value="${user.gender}" /> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <label for="lastName">Country:</label></td> 
     <td> 
      <input name="country" value="${user.country}" /> 
     </td> 
     </tr> 

    </table> 
     <input type="submit" value="Submit"/> 
    </form> 
    </body> 
</html> 

和執行刪除JSP功能如下

deleteuser.jsp

<%@ page import="java.util.Date" %> 
<%@ page isELIgnored="false" %> 
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <title>Insert title here</title> 
</head> 
<body> 
    <form method="POST" action="<%=request.getContextPath()%>/deleteuser/delete"> 

     <P>Are you sure you want to delete this user??</P> 
     <input type="submit" value="Yes" /> 

    </form> 
    <p> <a href="frm4.jsp">No</a></p> 
    </body> 
    </html> 

我得到「沒有約束力的結果也不是簡單的目標對象」如果我用,所以我只用了錯誤jsp表單標記。我對這兩個jsp文件都使用相同的實現方法,但是deleteuser.jsp沒有映射到spring控制器類,即CController.java

我點擊刪除按鈕

http://localhost:8080/Spring/deleteuser/delete 

它只是搜索的文件刪除,而不是映射到controller.Any幫助plzzz

回答

1

你沒有當你通過deleteuser提交模型屬性類型用戶1的「刪除」 .JSP。您只有一個提交按鈕的表單。

如果您正在實施確認頁面,請嘗試在會話或其他機制上保留User1對象。

通常你不需要對整個對象綁定只是刪除條目,你可以通過用戶ID,並通過休眠看看它的控制器上