Bonjour,
J'essaie de traduire un fichier srt constitué de morceaux de titres. chaque morceau a un numéro, un temps de début, un temps de fin et du texte dans la langue originale.
Voici ci-dessous une jsp qui me permet d'afficher le texte à traduire avec un champ texte à coté de chaque texte original. Le champ texte servira à traduire chaque ligne de texte.
Mon problème est que je n'enregistre dans la base qu'une seule ligne et c'est toujours la première ligne de texte.
voici le code la servlet : la map me permet d'extraire la paire numéro de morceau et texte original pour lesquels j'ai utilisé dans la jsp des champs hidden pour pouvoir les récupérer.
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 <body> <h3>Enregistrer un morceau</h3> <form method="post" action="subEditor"> <input type="hidden" name="action" value="create"/> <input type="submit" style="position:fixed;top: 10px; right: 10px;" value="enregistrer" /> <table> <c:forEach var="entry" items="${map}" varStatus="status" > <c:forEach var="value" items="${entry.value}" varStatus="vs"> <tr> <input type="hidden" id="entry${status.index}value${vs.index}" name="numeroMorceau" value="${entry.key}"/> <td><label for="key" id="entry${status.index}value${vs.index}" name="numeroMorceau"><c:out value="${ entry.key}" /></label></td> <input type="hidden" id="entry${status.index}value${vs.index}" name="valueMap" value="${value}"/> <td style="text-align:right;"><label for="value" id="entry${status.index}value${vs.index}" name="valueMap"><c:out value="${value}"/></label></td> <td><input type="text" name="texte" id="entry${status.index}value${vs.index}" value="${param['texte']}" size="35" /></td> </tr> </c:forEach> </c:forEach> </table> </form> </body> </html>
Merci d'avance pour toute aide ou suggestion.
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 @WebServlet("/subEditorMorceau") public class SubEditorMorceau extends HttpServlet { private static final long serialVersionUID = 1L; private Dao<MorceauBis> daoMorceau; @Resource(name="MorceauDataSource") private DataSource dataSource; public void init(){ DaoFactory daoFactory = new DaoFactory(dataSource); this.daoMorceau = daoFactory.getMorceauImpl(); } private static final String FILE_NAME = "/WEB-INF/password_presentation2.srt"; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServletContext context = getServletContext(); HttpSession session = request.getSession(); SubtitlesHandler subtitles = new SubtitlesHandler( context.getRealPath(FILE_NAME)); Map<String, ArrayList<String>> map = subtitles .construireMapcleListeValeurs(context.getRealPath(FILE_NAME)); session.setAttribute("map", map); session.getAttribute("map"); getServletContext().getRequestDispatcher("/WEB-INF/saveSubtitlor.jsp") .forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); switch (Objects.toString(request.getParameter("action"), "")) { case "delete": doDelete(request, response); break; default: case "create": doPut(request, response); break; } } protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { MorceauBis morceau = new MorceauBis(); morceau.setNumero_morceau(Integer.parseInt(request.getParameter("numeroMorceau"))); morceau.setTexte_originale(request.getParameter("valueMap")); morceau.setTexte_traduit(request.getParameter("texte")); try { daoMorceau.ajouter(morceau); response.sendRedirect("subEditor"); } catch (SQLException e) { e.printStackTrace(); } } }
Avatar 71
Partager