Etat HTTP 400错误

时间:2017-10-04 18:06:07

标签: mysql spring jsp java-ee

我再次带着一个新的担忧来到这里。当我尝试在mysql数据库中创建新的Etat HTTP 400时,我收到了Utilisateur错误页面。但是控制台中没有显示错误。

我的代码:

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

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>

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

1 个答案:

答案 0 :(得分:0)

我终于找到了什么是错的。这是日期格式的问题。我在我的模型中声明了一个Timestamsp,但在我的视图中键入了类似“2017-10-05”的内容。