2017-10-04 1 views
-1

나는 새로운 관심사로 다시 여기에 있습니다. mysql 데이터베이스에 새 Utilisateur을 만들려고 할 때 Etat HTTP 400 오류 페이지가 나타납니다. 그러나 콘솔에 오류가 표시되지 않습니다.Etat HTTP 400 오류

내 코드 :

Utilisateur.java

package com.model; 

import java.io.Serializable; 
import java.sql.Timestamp; 

import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.Table; 

@Entity 
@Table(name="utilisateur") 
public class Utilisateur implements Serializable { 

    private static final long serialVersionUID = 1L; 

    @Id 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    @Column(name="idutilisateur") 
    private int idUtilisateur; 

    @Column(name="emailutilisateur") 
    private String emailUtilisateur; 

    @Column(name="motpasseutilisateur") 
    private String motPasseUtilisateur; 

    @Column(name="nomutilisateur")private String nomUtilisateur; 

    @Column(name="dateinscriptionutilisateur") 
    private Timestamp dateInscriptionUtilisateur; 

    public int getIdUtilisateur() { 
     return idUtilisateur; 
    } 

    public void setIdUtilisateur(int idUtilisateur) { 
     this.idUtilisateur = idUtilisateur; 
    } 

    public String getEmailUtilisateur() { 
     return emailUtilisateur; 
    } 

    public void setEmailUtilisateur(String emailUtilisateur) { 
     this.emailUtilisateur = emailUtilisateur; 
    } 

    public String getMotPasseUtilisateur() { 
     return motPasseUtilisateur; 
    } 

    public void setMotPasseUtilisateur(String motPasseUtilisateur) { 
     this.motPasseUtilisateur = motPasseUtilisateur; 
    } 

    public String getNomUtilisateur() { 
     return nomUtilisateur; 
    } 

    public void setNomUtilisateur(String nomUtilisateur) { 
     this.nomUtilisateur = nomUtilisateur; 
    } 

    public Timestamp getDateInscriptionUtilisateur() { 
     return dateInscriptionUtilisateur; 
    } 

    public void setDateInscriptionUtilisateur(Timestamp dateInscriptionUtilisateur) { 
     this.dateInscriptionUtilisateur = dateInscriptionUtilisateur; 
    } 

    @Override 
    public String toString() { 
     return "Utilisateur [idUtilisateur=" + idUtilisateur + ", emailUtilisateur=" + emailUtilisateur 
       + ", motPasseUtilisateur=" + motPasseUtilisateur + ", nomUtilisateur=" + nomUtilisateur 
       + ", dateInscriptionUtilisateur=" + dateInscriptionUtilisateur + "]"; 
    } 
} 

UtilisateurDaoImpl.java

package com.dao; 

import java.util.List; 

import org.hibernate.SessionFactory; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Repository; 

import com.model.Utilisateur; 

@Repository 
public class UtilisateurDaoImpl implements UtilisateurDao { 

    @Autowired 
    private SessionFactory sessionFactory; 

    public void addUtilisateur(Utilisateur utilisateur) { 
     sessionFactory.getCurrentSession().saveOrUpdate(utilisateur); 
    } 

    @SuppressWarnings("unchecked") 
    public List<Utilisateur> getAllUtilisateur() { 
     List<Utilisateur> listeUtilisateur = sessionFactory.getCurrentSession().createQuery("from Utilisateur").list(); 
     return listeUtilisateur; 
    } 

    public Utilisateur getUtilisateurById(int idUtilisateur) { 
     return (Utilisateur)sessionFactory.getCurrentSession().get(Utilisateur.class, idUtilisateur); 
    } 

    public Utilisateur updateUtilisateur(Utilisateur utilisateur) { 
     sessionFactory.getCurrentSession().update(utilisateur); 
     return utilisateur; 
    } 

    public void deleteUtilisateur(int idUtilisateur) { 
     Utilisateur utilisateur = (Utilisateur)sessionFactory.getCurrentSession().load(Utilisateur.class, idUtilisateur); 
     if(utilisateur != null){ 
      this.sessionFactory.getCurrentSession().delete(utilisateur); 
     } 
    } 

} 

UtilisateurServiceImpl.java

012 3,516,
package com.service; 

import java.util.List; 

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Service; 
import org.springframework.transaction.annotation.Transactional; 

import com.dao.UtilisateurDao; 
import com.model.Utilisateur; 

@Service 
@Transactional 
public class UtilisateurServiceImpl implements UtilisateurService { 

    @Autowired 
    private UtilisateurDao utilisateurDao; 

    public void setUtilisateurDao(UtilisateurDao utilisateurDao) { 
     this.utilisateurDao = utilisateurDao; 
    } 

    @Transactional 
    public void addUtilisateur(Utilisateur utilisateur) { 
     utilisateurDao.addUtilisateur(utilisateur); 
    } 

    @Transactional 
    public List<Utilisateur> getAllUtilisateur() { 
     return utilisateurDao.getAllUtilisateur(); 
    } 

    @Transactional 
    public Utilisateur getUtilisateurById(int idUtilisateur) { 
     return utilisateurDao.getUtilisateurById(idUtilisateur); 
    } 

    @Transactional 
    public Utilisateur updateUtilisateur(Utilisateur utilisateur) { 
     return utilisateurDao.updateUtilisateur(utilisateur); 
    } 

    @Transactional 
    public void deleteUtilisateur(int idUtilisateur) { 
     utilisateurDao.deleteUtilisateur(idUtilisateur); 
    } 

} 

UtilisateurController.java

package com.controller; 

import java.io.IOException; 
import java.util.List; 

import javax.servlet.http.HttpServletRequest; 

import org.jboss.logging.Logger; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.ModelAttribute; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.servlet.ModelAndView; 

import com.model.Utilisateur; 
import com.service.UtilisateurService; 

@Controller 
public class UtilisateurController { 

    @SuppressWarnings("unused") 
    private final static Logger logger = Logger.getLogger("UtilisateurController"); 

    public UtilisateurController(){ 
     System.out.println("UtilisateurController()"); 
    } 

    @Autowired 
    private UtilisateurService service; 

    @RequestMapping(value="/newUtilisateur", method=RequestMethod.GET) 
    public ModelAndView newUtilisateur(ModelAndView model){ 
     Utilisateur utilisateur = new Utilisateur(); 
     model.addObject("utilisateur", utilisateur); 
     model.setViewName("utilisateurForm"); 
     return model; 
    } 

    @RequestMapping(value="/saveUtilisateur", method = RequestMethod.POST) 
    public ModelAndView saveUtilisateur(@ModelAttribute Utilisateur utilisateur) { 
     System.out.println(utilisateur.getIdUtilisateur()); 
     if (utilisateur.getIdUtilisateur() == 0) {   
      service.addUtilisateur(utilisateur); 
     } else { 
      service.updateUtilisateur(utilisateur); 
     } 
     return new ModelAndView("redirect:/"); 
    } 

    @RequestMapping(value="/", method=RequestMethod.GET) 
    public ModelAndView listeUtilisateur(ModelAndView model) throws IOException{ 
     List<Utilisateur> listeUtilisateur = service.getAllUtilisateur(); 
     model.addObject("listeUtilisateur", listeUtilisateur); 
     model.setViewName("listeutilisateur"); 
     return model; 
    } 

    @RequestMapping(value = "/editUtilisateur", method = RequestMethod.GET) 
    public ModelAndView editUtilisateur(HttpServletRequest request) { 
     int idUtilisateur = Integer.parseInt(request.getParameter("idUtilisateur")); 
     System.out.println(idUtilisateur); 
     Utilisateur utilisateur = service.getUtilisateurById(idUtilisateur); 
     ModelAndView model = new ModelAndView("utilisateurForm"); 
     model.addObject("utilisateur", utilisateur); 
     return model; 
    } 

    @RequestMapping(value="/deleteUtilisateur", method=RequestMethod.GET) 
    public ModelAndView deleteUtilisateur(HttpServletRequest request){ 
     service.deleteUtilisateur(Integer.parseInt(request.getParameter("idUtilisateur"))); 
     return new ModelAndView("redirect:/"); 
    } 
} 

web.xml의

<!DOCTYPE web-app PUBLIC 
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd" > 

<web-app> 
    <display-name>Archetype Created Web Application</display-name> 

    <context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/spring-servlet.xml</param-value> 
    </context-param> 

    <listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 

    <servlet> 
    <servlet-name>spring</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>spring</servlet-name> 
    <url-pattern>/</url-pattern> 
    </servlet-mapping> 
</web-app> 

스프링 servlet.xml에

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd 
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> 

    <context:component-scan base-package="com"/> 
    <mvc:annotation-driven/> 
    <mvc:resources location="/resources/" mapping="/resources/**"></mvc:resources> 
    <context:property-placeholder location="classpath:application.properties"/> 

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix" value="/vues/" /> 
     <property name="suffix" value=".jsp" /> 
    </bean> 

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="${database.driver}"/> 
     <property name="url" value="${database.url}"/> 
     <property name="username" value="${database.username}"/> 
     <property name="password" value="${database.password}"/> 
    </bean> 

    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource"/> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">${hibernate.dialect}</prop> 
       <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> 
       <prop key="hibernate.show_format">${hibernate.show_format}</prop> 
       <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> 
      </props> 
     </property> 
     <property name="packagesToScan" value="com.model"/> 
    </bean> 

    <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
     <property name="sessionFactory" ref="sessionFactory"/> 
    </bean> 

    <tx:annotation-driven transaction-manager="transactionManager"/> 

</beans> 
,691,363 (210)

utilisateurForm.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
     <title>Edit/Save Utilisateur</title> 
    </head> 
    <body> 
     <div align="center"> 
      <h1> Edit/Save Utilisateur</h1>   
      <form:form action="saveUtilisateur" method="post" modelAttribute="utilisateur"> 
       <table> 
        <form:hidden path="idUtilisateur"/>     
        <tr> 
         <td>Adresse email</td> 
         <td><form:input path="emailUtilisateur"/></td> 
        </tr>     
        <tr> 
         <td>Mot de passe</td> 
         <td><form:password path="motPasseUtilisateur"/></td> 
        </tr>     
        <tr> 
         <td>Nom d'utilisateur</td> 
         <td><form:input path="nomUtilisateur"/></td> 
        </tr>     
        <tr> 
         <td>Date d'inscription</td> 
         <td><form:input path="dateInscriptionUtilisateur"/></td> 
        </tr>     
        <tr> 
         <td colspan="2" align="center"><input type="submit" value="Save"/></td> 
        </tr> 
       </table> 
      </form:form> 
     </div> 
    </body> 
</html> 

listeutilisateur.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" isELIgnored="false"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 

<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
     <title>Liste des utilisateurs</title> 
     <link rel="stylesheet" type="html/css" href="/WEB-INF/style.css"/> 
    </head> 
    <body> 
     <div align="center"> 
      <h1>Liste des utilisateurs</h1> 

      <table border="1"> 
       <tr> 
        <th>Id.</th> 
        <th>Nom d'utilisateur</th> 
        <th>Adresse email</th> 
        <th>Mot de passe</th> 
        <th>Date d'inscription</th> 
        <th>Action</th> 
       </tr> 

       <c:forEach items="${listeUtilisateur}" var="u"> 
        <tr> 
         <td><c:out value="${u.idUtilisateur}"/></td> 
         <td><c:out value="${u.nomUtilisateur}"/></td> 
         <td><c:out value="${u.emailUtilisateur}"/></td> 
         <td><c:out value="${u.motPasseUtilisateur}"/></td> 
         <td><c:out value="${u.dateInscriptionUtilisateur}"/></td> 
         <td><a href="editUtilisateur?idUtilisateur=${u.idUtilisateur}">Edit</a>&nbsp<a href="deleteUtilisateur?idUtilisateur=${u.idUtilisateur}">Delete</a></td> 
        </tr> 
       </c:forEach> 
      </table> 

      <h3>Nouveau ? Cliquer <a href="newUtilisateur">ici</a></h3> 

     </div> 
    </body> 
</html> 

application.properties

database.driver=com.mysql.jdbc.Driver 
database.url=jdbc:mysql://localhost:3306/gestionutilisateur 
database.username=root 
database.password=1234 

hibernate.dialect=org.hibernate.dialect.MySQLDialect 
hibernate.show_sql=true 
hibernate.show_format=true 
hibernate.hbm2ddl.auto=update 
+2

[최소, 완전하고 검증 가능한 예제] (https://stackoverflow.com/help/mcve)를 추가하면 코드 벽이 읽기 쉽지 않기 때문에 챈을 크게 늘릴 수 있습니다. – svgrafov

+1

엔티티 설명을 고려해보십시오. 'Utilisateur'는 'User'를 의미하는 것이 분명하지 않다. 제목은 불어로되어 있습니다.'HTTP 400 error : {description here} '와 같이 사용할 수 있습니다. 그리고 'HTTP 400'은 오류에 대한 설명이 아닙니다. 그것에 대해 자세히 설명해주세요. – Al1

+0

제안 해 주셔서 감사합니다. 나는 그것을 계정으로 가져갈 것이다. 나는 여전히 같은 문제에 직면 해있다. 내 코드에서 무엇이 잘못되었는지 알지 못할 때까지. 좀 도와 줄 수있어? 나는 고마워 할 것이다 – FooBayo

답변

0

마침내 잘못 손쉽게 찾을 수 있습니다. 그것은 날짜 형식의 문제입니다. 내 모델에는 Timestamsp를 선언하지만 내보기에는 "2017-10-05"와 같은 형식을 사용합니다.