Bonjour a tous et merci d'avance pour essayer de comprendre mon problème.
pour commencer j'ai lu la documentation de Serge Tahe & springsource et de différent bouquins ou site web sur spring mvc et plus particulièrement sur multiactioncontroller et j'ai parcourru les forums.
Je n'arrive pas a appliquer l'exemple de la documentation a mon cas concernant les multiActionCrontroller avec un code java script dans la vue
J'ai choisi l'exemple 1 Multiactioncrontoller dans le springMvc3 de Serge Tahe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 input type="button" value="Delete" onclick='submitAction("delete");'>
Voici ma vue j'obtiens un tableau qui liste les utilisateurs provenant d'une DB
sa fonctionne les utilisateurs sont bien affiché dans le tableau.
chaque ligne d'élement a un bouton un delete et un update.
et je souhaite dans un premier temps pouvoir réaliser des delete sur cette liste.
donc après la vue je vous met mon Controller qui étend MultiactionController
et ensuite la partie du Bean-config file de spring.
et mon fichier Pom pour les questions de Version...
ma webapp me permet bien d'encoder en database et de lire la database.
donc pas de problème de liaison db et autre vraiment au niveau de la config du MultiActionController.
Voici le code de la vue.
Voici le code du controller de cette vue là
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>IList of user here</title> <style type="text/css"> @import "../css/a8.css"; @import "../css/css.css"; </style> <!-- start Javascript --> <script language="javascript"> function submitAction(uneAction) { with (document.frmNoms) { action.value = uneAction; submit(); } } </script> </head> <body> <!--<div id="header">--> <!--<center><br>--> <!--Header Page - V1 -25-03-2011 test ${welcomeMessage}</br>--> <!--</br>--> <!--</br>--> <!--</center>--> <!--</div>--> </br> </br> </br> <center><form:form method="POST" name="frmNoms"> <table border="1"> </tr> <th>id</th> <th>nom</th> <th>prenom</th> <th>email</th> <th>country</th> <th>login</th> <th>enable</th> <th>password</th> <th>Delete</th> <th>Update</th> </tr> <c:forEach var="bean" items="${listpers}"> <tr> <td><c:out value="${bean.id}" /></td> <td><c:out value="${bean.nom}" /></td> <td><c:out value="${bean.prenom}" /></td> <td><c:out value="${bean.email}" /></td> <td><c:out value="${bean.country}" /></td> <td><c:out value="${bean.login}" /></td> <td><c:out value="${bean.enabled}" /></td> <td><c:out value="${bean.password}" /></td> <td><!--<input type="hidden" path="id" value="${bean.id}" /> --><input type="button" value="Supprimer" onclick='submitAction("delete");'></td> <td><input type="button" value="Mise a jour" onclick='submitAction("update");'></td> </tr> </c:forEach> </table> <input type="hidden" name="action"> </form:form> </td> <a href="/index.htm">Root Page</a></center> <div id="footer"> <center><br> footer Page - V1 -25-03-2011 test</br> </center> </div> </body> </html>
et pour finir mon fichier de configuration Spring pour les vues
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79 package com.a8sys.web.usermanager; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; import org.springframework.web.servlet.mvc.multiaction.MultiActionController; import com.a8sys.dao.PersonneJdbcDaoSupport; import com.a8sys.domaine.Personne; public class listUsers extends MultiActionController { private PersonneJdbcDaoSupport personnejdbcdaosupport; private Personne personne; public void setPersonnejdbcdaosupport( PersonneJdbcDaoSupport personnejdbcdaosupport) { this.personnejdbcdaosupport = personnejdbcdaosupport; } /*@Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { List<Personne> lpers = personnejdbcdaosupport.getAllPersonnes(); System.out.println("**************************************************"); System.out.println("Nombre de ligne dans le tableau : " + personnejdbcdaosupport.getPersonnesCount()); System.out.println("**************************************************"); return new ModelAndView("admin/listusers","listpers", lpers); }*/ public ModelAndView list(HttpServletRequest request, HttpServletResponse response) { List<Personne> lpers = personnejdbcdaosupport.getAllPersonnes(); System.out.println("**************************************************"); System.out.println("Nombre de ligne dans le tableau : " + personnejdbcdaosupport.getPersonnesCount()); System.out.println("From listUsers method list "); System.out.println("**************************************************"); return new ModelAndView("admin/listusers","listpers", lpers); } public ModelAndView delete(HttpServletRequest request, HttpServletResponse response) { System.out.println("From listUsers method delete "); System.out.println("*** begin Erase Personne "); int idref = ServletRequestUtils.getIntParameter(request,"deletePersonneid", 0); personnejdbcdaosupport.deletePersonneByid(idref); System.out.println("*** Erased Personne " + idref ); List<Personne> lpers = personnejdbcdaosupport.getAllPersonnes(); return new ModelAndView("admin/listusers","listpers", lpers); } public ModelAndView update(HttpServletRequest request, HttpServletResponse response) { System.out.println("From listUsers method update "); System.out.println("*** begin get Personne "); int idref = ServletRequestUtils.getIntParameter(request,"UpdatePersonneid", 0); Personne lpers = personnejdbcdaosupport.getPersonneById(idref); System.out.println("*** Personne is ready " + idref ); return new ModelAndView("admin/updateusers","pers", lpers); } protected ModelAndView adduser(Object command) throws ServletException { System.out.println("From listUsers method adduser "); Personne pers = (Personne) command; pers.outpersonne(); this.personnejdbcdaosupport.savePersonne(pers); List<Personne> lpers = personnejdbcdaosupport.getAllPersonnes(); return new ModelAndView("admin/listusers","listpers", lpers); } }
mon fichier de conf
Et voici le fichier de conf de spring au complet pour les Bean uniquement formulaire encodage liste ..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <!-- le Bean qui étend MultiActionController --> <bean id="listUser" class="com.a8sys.web.usermanager.listUsers"> <property name="methodNameResolver"> <ref local="MethodNameResolver" /> </property> <property name="personnejdbcdaosupport"> <ref bean="formDAO" /> </property> </bean> <!-- le Bean qui étend MultiActionController m'affiche bien par défaut la liste Mais quand je fai click sur la console je n'ai aucun message et aucun changement en DB si j'avais déja un message. --> <bean id="MethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver"> <property name="defaultMethodName"> <value>list</value> </property> <property name="paramName"> <value>action</value> </property> </bean> <!-- **** J'ai bien un fichier dans web-inf/src/vue.properties qui comprend #list list.class=org.springframework.web.servlet.view.JstlView list.url=/WEB-INF/jsp/admin/listusers.jsp **** --> <bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> <property name="basename"> <value>vues</value> </property> </bean>
Voici mon fichier Pom Maven2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:security="http://www.springframework.org/schema/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.4.xsd"> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"> <value>/WEB-INF/jsp/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean> <bean id="formDAO" class="com.a8sys.dao.PersonneJdbcDaoSupport"> <property name="dataSource" ref="dataSource" /> </bean> <!-- le Bean qui étend MultiActionController --> <bean id="listUser" class="com.a8sys.web.usermanager.listUsers"> <property name="methodNameResolver"> <ref local="MethodNameResolver" /> </property> <property name="personnejdbcdaosupport"> <ref bean="formDAO" /> </property> </bean> <!-- le Bean qui étend MultiActionController m'affiche bien par défaut la liste Mais quand je fai click sur la console je n'ai aucun message et aucun changement en DB si j'avais déja un message. --> <bean id="MethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver"> <property name="defaultMethodName"> <value>list</value> </property> <property name="paramName"> <value>action</value> </property> </bean> <!-- **** J'ai bien un fichier dans web-inf/src/vue.properties qui comprend #list list.class=org.springframework.web.servlet.view.JstlView list.url=/WEB-INF/jsp/admin/listusers.jsp **** --> <bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> <property name="basename"> <value>vues</value> </property> </bean> <bean id="persValidator" class="com.a8sys.web.usermanager.userValidator" /> <bean id="persdao" class="com.a8sys.web.usermanager.userFormController"> <property name="personnejdbcdaosupport"> <ref bean="formDAO" /> </property> <property name="sessionForm"> <value>false</value> </property> <property name="commandName"> <value>Personne</value> </property> <property name="commandClass"> <value>com.a8sys.domaine.Personne</value> </property> <property name="validator"> <ref bean="persValidator" /> </property> <property name="formView"> <value>admin/addUser</value> </property> <property name="successView"> <value>admin/listusers</value> </property> </bean> <bean id="indexpublic" class="com.a8sys.web.HelloWorldController"> <property name="message" value="Hello World! public" /> </bean> <bean id="infoserver" class="com.a8sys.web.infoserver" /> <bean name="/index.htm" class="com.a8sys.web.index"> <property name="message" value="Hello World! index" /> </bean> <bean id="adminindex" class="com.a8sys.web.admin"> <property name="message" value="Hello World! admin" /> </bean> <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="interceptors"> <list> <ref local="localeChangeInterceptor" /> </list> </property> <property name="urlMap"> <map> <entry key="/admin/admin.htm"> <ref bean="adminindex" /> </entry> <entry key="/public/welcome.htm"> <ref bean="indexpublic" /> </entry> <entry key="/admin/infoserver.htm"> <ref bean="infoserver" /> </entry> <entry key="/admin/addUser.htm"> <ref bean="persdao" /> </entry> <entry key="/admin/listusers.htm"> <ref bean="listUser" /> </entry> </map> </property> </bean> <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"> <property name="paramName" value="hl" /> </bean> <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver" /> </beans>
donc voici mon problème je vous remercie pour avoir lu mon post
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>Database-Manager</groupId> <artifactId>Database-Manager</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>Database-Manager Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>javax</groupId> <artifactId>javaee-web-api</artifactId> <version>6.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.0.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>3.0.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>3.0.4.RELEASE</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>20041127.091804</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-dao</artifactId> <version>2.0.8</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-core</artifactId> <version>2.0.6.RELEASE</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.15</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-acl</artifactId> <version>3.0.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-taglibs</artifactId> <version>2.0.6.RELEASE</version> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>20030825.184428</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>datetime</artifactId> <version>1.0.1</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> </dependencies> <build> <finalName>Database-Manager</finalName> </build> </project>
quand je click sur supprimer je n'ai aucun signe de vie dans la consol malgré mais println
Mais l'application affichier bien le contenu de la class listUsers de la methode list
donc j'ai bien la methode par défault qui fonctionne mais pas possible de faire un delete.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 springframework.beans.factory.support.DefaultListableBeanFactory@58b7f 25-avr.-2011 21:48:56 org.springframework.web.servlet.FrameworkServlet initServletBean INFO: FrameworkServlet 'Database-Manager': initialization completed in 59 ms ************************************************** Nombre de ligne dans le tableau : 5 From listUsers method list **************************************************
l'application n'est pas plantée tomcat tourne bien l'appli aussi.
Mais je pense qu'il y a une erreur d'aiguillage au niveau de la config spring si vous pouvez m'aider a pointer ou j'ai une erreur se serait chouette.
Merci.
a bientôt.
Partager