Bonjour,
Mon programme permet de faire de la traduction de phrases. Ma servlet va chercher une liste de message et envoi à ma jsp la liste des messages ainsi qu'une liste des messages traduit. Le but est que l'utilisateur puisse changer la valeur de la traduction et lorsqu'il cliquera sur le bouton envoyer l'ensemble des nouvelles traductions seront enregistrées dans la DB. Le problème c'est que je ne sais pas comment je peux récupérer ces valeurs là. Je ne sais pas combien de message il y a l'avance et j'aimerais bien (si c'est possible) avoir quelque chose comme request.getAttribute(MalisteTraduite) qui renverrait tout la liste des messages traduits.
Voici mon code de ma JSP
Mon bean
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 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!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>TRANSRT-Translate</title> </head> <body> <%@ include file="Header.jsp" %> <h3>Traduction du fichier</h3> <form method="post"> <button type="submit">Enregistrer</button> <table> <tr> <th>Langue</th> <th><input type="text"/></th> </tr> <c:forEach items="${messages }" var="item" varStatus="status"> <tr> <th>${item.message}</th> <th name="${item.numberMessage }"><input name="message" type="text" value="${translations[status.count-1].message }"></th> </tr> </c:forEach> </table> <button type="submit">Enregistrer</button> </form> </body> </html>
et ma servlet
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 public class MessageBean { private Integer id; private Integer fileId; private Integer numberMessage; private String timeMessage; private String message; private String langue; private Integer translate; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getFileId() { .....
Un grand merci d'avance !
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 @WebServlet("/TranslateController") public class TranslateController extends HttpServlet { private static final long serialVersionUID = 1L; private FileService fileService; public TranslateController() { super(); fileService = new FileServiceImpl(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String fileId = request.getParameter("search"); List<MessageBean> messages = fileService.getMessages(Integer.valueOf(fileId)); List<MessageBean> translations = fileService.getTranslations(Integer.valueOf(fileId)); request.setAttribute("messages", messages); (request.getSession()).setAttribute("translations", translations); this.getServletContext().getRequestDispatcher("/WEB-INF/jsp/Translate.jsp").forward(request, response); } @SuppressWarnings("unchecked") protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List<MessageBean> translations = (List<MessageBean>)request.getAttribute("translations"); fileService.saveMessage(translations); response.sendRedirect("/Traduction/"); } }
Partager