Bonjour,

J'essaie de traduire un fichier srt constitué de morceaux de titres. chaque morceau a un numéro, un temps de début et un temps de fin.
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. Je pense que


Code html : 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>
voici le code la servlet : la map me permet d'extraire la paire numéro de morceau et texte original.
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();
		}
	}
}
Merci d'avance pour toute aide ou suggestion.

Avatar 71