org.springframework.web.util.NestedServletException Netbeans

时间:2016-05-19 19:33:23

标签: spring java-ee netbeans tiles

我正在使用Spring Framework开发一个Web应用程序。 问题是我试图在我的数据库中添加一篇文章它显示了一个NestedServlet异常。谁能帮我 ? 这是我的控制器类:

@Controller
public class Controler {
    ArticleFacadeLocal articleModel;
    CategorieFacadeLocal categorieModel;
    ConnexionFacadeLocal connexionModel;

    public Controler(){
        articleModel = new ArticleModel();
        categorieModel = new CategorieModel();
        connexionModel = new ConnexionModel();
    }

    @RequestMapping("/home.do")
    public String home(HttpServletRequest request){
        if(isConnected(request))
        return addPage(request);
        else return "page:login";
    }

    @RequestMapping("login.do")
    public String login(HttpServletRequest request){

           String login=request.getParameter("login");
           String password=request.getParameter("password");

           if(ConnexionModel.connect(login, password)){
               request.getSession().setAttribute("login",login);
               ServletContext application=request.getServletContext();
               application.setAttribute("categories", categorieModel.findAll());
               return addPage(request);}
           else
                request.setAttribute("error",true);
           return "forward:/home.do";
    }

    @RequestMapping("logout.do")
public String logout(HttpServletRequest request)   {
    request.getSession(false).invalidate();
       return "forward:/home.do";
}

@RequestMapping("articles.do")
public String list(HttpServletRequest request){
     request.setAttribute("articles",articleModel.findAll());
    return "page:articles";
 }
@RequestMapping("addPage.do")
public String addPage(HttpServletRequest request){
        request.setAttribute("categories", categorieModel.findAll());
    return "page:add";

}
 @RequestMapping("add.do")
    public String add(HttpServletRequest request){
       try{
    Article a=getArticleFromView(request);
    articleModel.create(a);
    request.setAttribute("error", false);
    }catch(Exception e){request.setAttribute("error", true);}
    return "forward:/addPage.do";
   }   

  @RequestMapping("modifyPage.do")
    public String  modiyPage(HttpServletRequest request){
        int idArticle=Integer.parseInt(request.getParameter("idArticle"));
        request.setAttribute("categories", categorieModel.findAll());
        Article article = articleModel.find(idArticle);
    request.setAttribute("article", article);
    return "page:modify";
    }


    @RequestMapping("modify.do")
    public String  modify(HttpServletRequest request){      
    try{
            Article a=getArticleFromView(request);
            articleModel.edit(a);                       
            return "forward:/articles.do";
        }catch(Exception e){
                request.setAttribute("error", true);
                return "forward:/modifyPage.do";
        }               
    }
    @RequestMapping("searchPage.do")
    public String  searchPage(HttpServletRequest request){
    return "page:search";
    }

    @RequestMapping("search.do")
    public String  search(HttpServletRequest request){
        String libelle=request.getParameter("libelle");
    request.setAttribute("article",articleModel.find(libelle));
    return "page:search";
    }


 public boolean isConnected(HttpServletRequest request){
        HttpSession session = request.getSession(false);//recupere une session sans la creer
        return (session!=null && session.getAttribute("login")!=null);

    }

 public Article getArticleFromView(HttpServletRequest request){
     Article a = new Article();
     String libelle = request.getParameter("libelle");
     String description = request.getParameter("description");
     String prix = request.getParameter("prix");
     String qte = request.getParameter("qte");
     String categorie = request.getParameter("categorie");
     a.setLibelle(libelle);
     a.setDescription(description);
     a.setPrix(Double.parseDouble(prix));
     a.setQte(Integer.parseInt(qte));
     a.setCategorie(new Categorie(categorie));
     return a;
 }
}

这是我的jsp文件

<%@include file="include.jsp" %>
<form  action="add.do" method="post">
<table  align="center">

<tr >
        <td>Libelle :
    <td><input type="text" required="required" name="libelle"/>
</tr>   
<tr >
        <td>Description : 
    <td><input type="text" required="required" name="description">
</tr>
<tr>
    <td>Prix :
    <td><input type="text" required="required"  name="prix">
</tr>

<tr>
    <td>Quantité :
    <td><input type="text" required="required"  name="qte">
</tr>
<tr  >
    <td> Catégorie :
    <td>
    <select name="categorie" >
        <c:forEach items="${categories}" var="c"> 
            <option value="${c.idCategorie}"> ${c.libelleCategorie} </option>
        </c:forEach>        
    </select>

</tr>
<tr align="center" >
    <td  colspan="2"><button type="submit" id="btn">Ajouter</button></td>
</tr>

</table>

</form>

<c:if test="${not empty error && error}"> <p style="color: red;">   Echec d'ajout de l'article </p></c:if>
<c:if test="${not empty error && not error}"> <p style="color: green;">Article ajouté avec succes </p></c:if>

这是错误异常:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.AssertionFailure: null id in model.beans.Article entry (don't flush the Session after an exception occurs)
cause première

org.hibernate.AssertionFailure: null id in model.beans.Article entry (don't flush the Session after an exception occurs)

我没有使用Maven。

0 个答案:

没有答案