Essaye sans le constructeur car c'est vraiment un copier collé de ton code sans le public TestServlet (le constructeur donc).
Et tout ton code jsp est bon car j'ai rien changé du tout.
donc la servlet :
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
|
public class TestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
request.setAttribute("listeNom", ParseXmlFile.getInstance().getDatas());
getServletContext().getRequestDispatcher("/maPageJsp.jsp").forward(request, response);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
request.setAttribute("listeNom", ParseXmlFile.getInstance().getDatas());
getServletContext().getRequestDispatcher("/maPageJsp.jsp").forward(request, response);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} |
la jsp, maPageJsp.jsp :
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
|
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"
import="java.util.ArrayList"%>
<!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=ISO-8859-1">
<title>exemple</title>
</head>
<body>
<form action="<%=request.getContextPath()%>/ServletTest" method="POST">
<%
ArrayList<String> listeNomParser = (ArrayList) request.getAttribute("listeNom");
%>
<select name="itemSelected">
<%
for (int i=0; i<listeNomParser.size(); i++)
{
String item= (String) listeNomParser.get(i) ;
%>
<option value="<%=item%>"><%=item%></option>
<%
}
%>
</select>
</form>
</body>
</html> |
parserXml (j'ai mis mon fichier sur mon disque d:/ c'était plus rapide pour moi mais, peut importe c'est pas ça ton problème apparemment):
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
|
public class ParseXmlFile {
private static ParseXmlFile parser = new ParseXmlFile();
private ParseXmlFile(){
}
public static synchronized ParseXmlFile getInstance(){
if( parser == null){
parser = new ParseXmlFile();
}
return parser;
}
public static List<String> getDatas() throws Exception{
SAXBuilder sxb=new SAXBuilder();
List<String> listeNomParser=new ArrayList<String>();
Document document=sxb.build(new File("/data.xml"));
Element societes=document.getRootElement();
List<Element> soc = societes.getChildren();
for(Element societe:soc){
String nom=societe.getChild("nom").getText();
listeNomParser.add(nom);
}
return listeNomParser;
}
} |
web.xml :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>
testServletSimple</display-name>
<servlet>
<servlet-name>testServletSimple</servlet-name>
<servlet-class>controller.TestServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>testServletSimple</servlet-name>
<url-pattern>/servlet.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app> |
et arborescence du projet (Dynamic Web Project) non exaustive:
-testServletSimple
-src (les source java, peu importe ta strucure du moment que ça compile)
-webContent
Et donc dans mon navigateur j'écrit l'url : http://localhost:8080/testServletSimple/servlet.do
Voila, je ne vois pas comment t'aider plus, mais n'hésite pas si quelque chose n'est pas clair.
Partager