Struts,Mysql,JSP : afficher data SQL dans liste déroulante JSP.

freepouy18 Messages postés 49 Date d'inscription mercredi 20 avril 2005 Statut Membre Dernière intervention 15 septembre 2005 - 28 juin 2005 à 17:48
hakker Messages postés 23 Date d'inscription vendredi 15 février 2008 Statut Membre Dernière intervention 20 février 2010 - 7 août 2009 à 10:47
Bonjour tout le monde,

Je débute tout juste la programmation jsp et on me demande d'utiliser struts, mysql,tomcat....autant de chose qui ne me sont pas familière. Je me suis qd meme penché sur le problème mais comme tout programmeur, je me retrouve face à un problème qui peut vous parraître evident mais ça ne l'est pas pour moi. Je souhaite afficher des données provenant d'une base de données dans une liste déroulante, chose que je n'arrive pas à faire, voila une bonne partie de mon code, qqun peut-il m'aider?

struts-config.xml :
<!-- = ========= Form Bean Definitions ================================== -->
<form-beans>
<form-bean name="connexionFormulaire" type="com.mastercci.pub.formulaire.connexionFormulaire">

<form-property name ="passwd" type= "java.lang.String" />
<form-property name="login" type="java.lang.String" />
</form-bean>
</form-beans>


<!-- Action Mapping Definitions -->

attribute="connexionFormulaire"
input="/vues/index.jsp"
name="connexionFormulaire"
validate="false"
scope="request"
path="/user"
type="com.mastercci.pub.action.connexionAction" >
<forward name="succes" path="/vues/public.user.index.jsp" />
<forward name="nosucces" path="/vues/erreurs.jsp" />


FORMULAIRE.JAVA
=============================================================================
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletRequest;


public class connexionFormulaire extends ActionForm
{

/** Creates a new instance of connexionFormulaire */
private String login = null;
private String passwd = null;



public String getLogin()
{
return this.login;
}
public String getPasswd()
{
return this.passwd;
}

public void setLogin(String login)
{
this.login=login;
}
public void setPasswd(String passwd)
{
this.passwd=passwd;
}

public void reset(ActionMapping mapping, HttpServletRequest request)
{
this.login=null;
this.passwd=null;
}


public connexionFormulaire()
{
}



public ActionErrors validate(ActionMapping mapping,HttpServletRequest request)
{
String login = (String)this.getLogin();
String passwd = (String)this.getPasswd();

ActionErrors errors=new ActionErrors();

if (login == null || login.length()==0)
{
errors.add("login",new ActionError("error.login.required"));
}
if (passwd == null || passwd.length()==0)
{
errors.add("passwd",new ActionError("error.passwd.required"));
}
return errors;
}
}
=============================================================================

ACTION.JAVA
=============================================================================
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;


import java.io.IOException;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Array;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import javax.servlet.ServletException;
import javax.servlet.http.HttpSession;
import javax.servlet.ServletContext;



public class connexionAction extends Action
{

/** Creates a new instance of connexionAction */
public connexionAction()
{
}


protected String getUser(String username, String passwd,HttpServletRequest request)
{
String user= null;
ResultSet rs = null;
Connection conn=null;
Statement stmt= null;
DataSource dataSource = getDataSource(request);

try
{
conn = dataSource.getConnection();
stmt =conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM utilisateur WHERE login=\'"+username+"'"+"AND passwd='"+passwd+"'");

if (rs.next())
{
user=rs.getString("login");
//Iteration sur le résultat
System.err.println("Login :" + rs.getString("login") + " Password :" + rs.getString("passwd"));
}
else
{
System.err.println("--->Utilisateur non trouvé<---");
}
}
catch (SQLException e)
{
System.err.println(e.getMessage());
}
finally
{
if (rs != null)
{
try
{
rs.close();
}
catch (SQLException sqle)
{
System.err.println(sqle.getMessage());
}
rs=null;
}

if (stmt != null)
{
try
{
stmt.close();
}
catch (SQLException sqle)
{
System.err.println(sqle.getMessage());
}
stmt =null;
}

if (conn != null)
{
try
{
conn.close();
}
catch (SQLException sqle)
{
System.err.println(sqle.getMessage());
}
conn =null;
}
}
return user;
}

//Fonction qui permet de récupérer le résultat d'une colonne de la requete dans un Array

public Array getSoft_List(HttpServletRequest request)
{
Array Soft_List=null;
ResultSet res_soft = null;
Connection conn2=null;
Statement stmt2= null;
DataSource dataSource2 = getDataSource(request);
try
{
conn2 = dataSource2.getConnection();
stmt2 =conn2.createStatement();
res_soft = stmt2.executeQuery("SELECT * FROM logiciel");
Soft_List=res_soft.getArray("nom_logiciel"); //récupération de la colonne "nom_logiciel"
}
catch (SQLException sqle)
{
System.err.println(sqle.getMessage());
}
finally
{
if (res_soft != null)
{
try
{
res_soft.close();
}
catch (SQLException sqle)
{
System.err.println(sqle.getMessage());
}
res_soft=null;
}

if (stmt2 != null)
{
try
{
stmt2.close();
}
catch (SQLException sqle)
{
System.err.println(sqle.getMessage());
}
stmt2 =null;
}

if (conn2 != null)
{
try
{
conn2.close();
}
catch (SQLException sqle)
{
System.err.println(sqle.getMessage());
}
conn2 =null;
}
}

return Soft_List;
}

public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)
throws IOException, ServletException
{
connexionFormulaire user_connexionForm=(connexionFormulaire)form;

String user = null;
Array Soft_List=null;

Soft_List=this.getSoft_List(request);

//utilisation de connexionFormulaire pour obtenir les paramètres de la requête
String username = user_connexionForm.getLogin();
String password = user_connexionForm.getPasswd();
user=getUser(username,password,request);

// Cible en cas d'échec

if (user == null)
{
return mapping.findForward("nosucces");
}
else
{
HttpSession session = request.getSession();

request.setAttribute("login",user_connexionForm.getLogin());
request.setAttribute("passwd",user_connexionForm.getPasswd());
request.setAttribute("Soft_List",Soft_List); //c'est ici que je veux affecter mon Array Soft_List pour le récupérer dans mon OUTPUT.JSP et l'afficher dans une liste déroulante
return mapping.findForward("succes");
}
}
}

=============================================================================

INPUT.JSP
=============================================================================
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>


<center>
<html:form action="/user">

Saisissez votre nom d'utilisateur :
<html:text property="login" size="20" maxlength="255"/>
<html:errors property="login"/>

Mot de passe :
<html:password property="passwd" size="20" maxlength="20"/>
<html:errors property="passwd"/>

<!--NE MANQUERAIT-IL PAS QQES CHOSE CONCERNANT Soft_List-->

<html:submit value="Connexion" />
</html:form>
</center>

=============================================================================

OUTPUT.JSP
=============================================================================
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>



Recherche de Logiciels

<HR SIZE =2 noshading>

border= 0>

----

<!--C'EST A CE NIVEAU QUE JE SOUHAITE AFFICHER MA LISTE DEROULANTE-->



===============================================================================
A voir également:

2 réponses

saber_hammami Messages postés 14 Date d'inscription jeudi 25 mars 2004 Statut Membre Dernière intervention 1 juillet 2005
1 juil. 2005 à 09:47
au lieu de
Soft_List=res_soft.getArray("nom_logiciel");
faite
List Soft_List = new ArrayList();
while (res_soft.next()){
Soft_List.add(getString("nom_logiciel"));
}


pour l'affichage
Iterator iter = Soft_List.iterator();
int i = 0;
while (iter.hasNext()) {
String soft= (String ) iter.next();
}
0
hakker Messages postés 23 Date d'inscription vendredi 15 février 2008 Statut Membre Dernière intervention 20 février 2010
7 août 2009 à 10:47
salut je moi aussi j'ai le meme problem.mais je veu l'affiché dans une liste déroulante donc on va utliser select on creant un form. donc il fau un actionFormbean et actionbean et pare cmt on va l'aficher dans la liste select? thnx

nice working with u all guz!!
0
Rejoignez-nous