Erreur 404 "org.springframework.web.servlet.DispatcherServlet noHandlerFound"
Bonjour,
je débute avec spring et je souhaiterai créer un form mais je suis confronté à une erreur quand je tente d'accéder à l'adresse http://localhost:8080/starterSpring/user/createUser.jsp :roll:
ATTENTION: No mapping found for HTTP request with URI [/starterSpring/user/createUser.jsp] in DispatcherServlet with name 'CreationUser'
Voici mon web.xml:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>Spring Hello World</display-name>
<welcome-file-list>
<welcome-file>main</welcome-file>
<!-- <welcome-file>/WEB-INF/index.jsp</welcome-file>-->
</welcome-file-list>
<servlet>
<servlet-name>springDispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/spring-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springDispatcher</servlet-name>
<url-pattern>/hi</url-pattern>
</servlet-mapping>
<!-- déclare la servlet de la page principale -->
<servlet>
<servlet-name>Main</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/main-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Main</servlet-name>
<url-pattern>/main</url-pattern>
</servlet-mapping>
<!-- servlet pour la création de user -->
<servlet>
<servlet-name>CreationUser</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/creationUser-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CreationUser</servlet-name>
<url-pattern>/user/createUser.jsp</url-pattern>
</servlet-mapping>
<!-- <servlet-mapping>
<servlet-name>CreationUser</servlet-name>
<url-pattern>/user/CreationUser</url-pattern>
</servlet-mapping>-->
</web-app> |
mon fichier de config spring creationUser-context.xml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <?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:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="com.starterSpring.controller.user" />
<mvc:resources mapping="/resources/**"
location="/resources/" />
<mvc:annotation-driven />
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/user/" />
<property name="suffix" value=".jsp" />
</bean>
</beans> |
ma page createUser.jsp contenant mon form qui se trouve sous le dossier user
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@ page pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Création d'un User</title>
<link type="text/css" rel="stylesheet" href="../inc/css/style.css" />
<script>
function checkFied(){
/*if(document.getElementById("nomUser").value == ''){
alert("vous devez introduire un nom");
document.getElementById("nomUser").focus();
return false;
}
if(document.getElementById("adresseUser").value == ''){
alert("vous devez introduire une adresse");
document.getElementById("adresseUser").focus();
return false;
}
if(document.getElementById("telephoneUser").value == ''){
alert("vous devez introduire un numero de telephone");
document.getElementById("telephoneUser").focus();
return false;
}*/
document.forms['insUser'].submit();
return true;
}
</script>
</head>
<body>
<div>
<c:out value="${message}" default="Inscription" escapeXml="false"></c:out>
<form:form commandName="User" method="post" action="creationUser">
<fieldset>
<legend>Informations User</legend>
<form:label path="userLogin">Login <span class="requis">*</span></form:label>
<form:input path="userLogin" ></form:input>
<!--<label for="loginUser">Login <span class="requis">*</span></label><input type="text" id="loginUser" name="loginUser" value="<c:out value="${user.userLogin}"></c:out>" size="20" maxlength="20" />-->
<span class="erreur"><c:out value="${form.erreurs['loginUser']}"></c:out></span>
<br />
<!--<label for="pswdUser">Password <span class="requis">*</span></label>
<input type="password" id="pswdUser" name="pswdUser" value="" size="20" maxlength="20" />-->
<form:label path="userPswd">Password <span class="requis">*</span></form:label>
<form:input path="userPswd"></form:input>
<span class="erreur"><c:out value="${form.erreurs['pswdUser']}"></c:out></span>
<br />
</fieldset>
<input onClick="return checkFied();" type="button" value="Valider" />
<input type="reset" value="Remettre à zéro" /> <br />
<p class="${empty form.erreurs ? 'succes' : 'erreur'}">${form.resultat}</p>
</form:form>
</div>
</body>
</html> |
mon controller
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| package com.starterSpring.controller.user;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.ui.Model;
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.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.starterSpring.form.user.CreateUserForm;
import com.starterSpring.utilities.EmailSender;
import modele.DAO.beans.user.User;
@Controller
public class CreationUser {
@RequestMapping("creationUser")
public ModelAndView addUSer(@ModelAttribute("User") User usr, Model model) {
ModelAndView modelAndView = new ModelAndView("valUser");
modelAndView.addObject("User", usr);
return modelAndView;
//String pswdVal = model.get("userPswdval").toString();
//return new ModelAndView("createUser", "command", usr);
}
@RequestMapping(value="/createUser", method=RequestMethod.GET)
public String myform(Model model) {
model.addAttribute("User", new User());
return "createUser";
}
} |
et ma classe User
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| package modele.DAO.beans.user;
import java.util.Date;
import java.text.SimpleDateFormat;
/**
* User generated by hbm2java
*/
public class User implements java.io.Serializable {
private String userLogin;
private String userPswd;
public User() {
}
public String getUserLogin() {
return this.userLogin;
}
public void setUserLogin(String userLogin) {
this.userLogin = userLogin;
}
public String getUserPswd() {
return this.userPswd;
}
public void setUserPswd(String userPswd) {
this.userPswd = userPswd;
}
/**
* @param userLogin
* @param userPswd
*/
public User(String userLogin, String userPswd) {
super();
this.userLogin = userLogin;
this.userPswd = userPswd;
}
} |
J'ai également une autre question, j'ai vu dans certains tuto que des personnes utilisaient l'héritage de SimpleFormController pour leurs controller et override des méthodes comme referenceData. Quelle est la meilleure solution?
Merci bien pour votre aide que je puisse avancer et m'appuier sur un exemple qui fonctionne