1) Créer une classe de servlet qui a le doGet()
mis en œuvre pour lire le fichier de propriétés en utilisant Properties#load()
, stocke dans le cadre de la demande à l'aide HttpServletRequest#setAttribute()
, transmet la demande à un fichier JSP en utilisant RequestDispatcher#forward()
. Enfin mapper cette servlet dans web.xml sur un modèle d'URL comme /propertieseditor
.
Properties properties = new Properties();
properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("file.properties"));
request.setAttribute("properties", properties);
request.getRequestDispatcher("propertieseditor.jsp").forward(request, response);
2) Créer un fichier JSP qui utilise JSTL c:forEach
pour itérer sur les propriétés paires clé-valeur, la génération d'un élément HTML input type="text"
à chaque fois.
<form action="propertieseditor" method="post">
<c:forEach items="${properties}" var="property">
${property.key} <input type="text" name="${property.key}" value="${property.value}"><br>
</c:forEach>
<input type="submit">
</form>
3) Ajouter une méthode doPost()
au servlet comme créée en 1) et d'écriture logique qui rassemble toutes les paires propriété clé-valeur de la carte des paramètres de demande et le stocke en arrière dans le fichier.
Properties properties = new Properties();
Map<String, Object> parameterMap = request.getParameterMap();
for (Entry<String, Object> entry : parameterMap.entrySet()) {
properties.setProperty(entry.getKey(), entry.getValue());
}
properties.store(new FileOutputStream(new File(
Thread.currentThread().getContextClassLoader().getResource("file.properties").toURI())));
response.sendRedirect("propertieseditor.jsp");
Enfin, utilisez la propertieseditor par http://localhost/webapp/propertieseditor. Bonne chance.
@Peter Mortensen (réf: modifications) - pensez-vous vraiment qu'il est nécessaire de lier les définitions de Java et HTML sur un site de programmation? –