Salut à tous,
J'suis en train de tester le JSP car j'aime programmer en JAVA.
Cependant, j'ai un problème pour parcourir ma base de données Mysql en JSP. Le problème est tout bête, je narrive pas à faire une variable qui s'incrémente et se décrémente quand je clique sur mon menu fait en javascript.
Le menu est fait ainsi :
<table width="60%" cols="4" align="center">
<tr>
<td colspan="4"><hr width="100%" color="#7DFFA0"></td>
</tr>
<tr>
<td align="center" valign="center">
<div class="menu" onMouseOver='couleur(this,vert,bleu)' onMouseOut='couleur(this,bleu,vert)'
onClick='document.location="carnet.jsp?action=premier";'><<</div>
</td>
<td align="center" valign="center">
<div class="menu" onMouseOver='couleur(this,vert,bleu)' onMouseOut='couleur(this,bleu,vert)'
onClick='document.location="carnet.jsp?action=precedent";'><</div>
</td>
<td align="center" valign="center">
<div class="menu" onMouseOver='couleur(this,vert,bleu)' onMouseOut='couleur(this,bleu,vert)'
onClick='document.location="carnet.jsp?action=suivant";'>></div>
</td>
<td align="center" valign="center">
<div class="menu" onMouseOver='couleur(this,vert,bleu)' onMouseOut='couleur(this,bleu,vert)'
onClick='document.location="carnet.jsp?action=dernier";'>>></div>
</td>
</tr>
<tr>
<td colspan="4"><hr width="100%" color="#7DFFA0"></td>
</tr>
</table>
Je fais donc un test a chaque passage pour voir l'opération demandée :
request.getParameter("action" ).
Ensuite, je fais appel une méthode pour plaser le ResultSet au bon endroit pour lire dans la base de données. Le code -->
String act = request.getParameter("action" );
if (act.compareTo("premier" )==0)
{
debut();
}
if (act.compareTo("precedent" )==0)
{
precedent();
}
if (act.compareTo("suivant" )==0)
{
prochain();
}
if (act.compareTo("dernier" )==0)
{
positionFin();
}
Le code des méthodes pour placer le ResultSet :
Code :
- public void debut()
- {
- try
- {
- curseur.first();
- }
- catch(SQLException E)
- {
- E.printStackTrace();
- erreur="SQLException: " + E.getMessage();
- }
- }
- public void positionFin()
- {
- try
- {
- curseur.last();
- }
- catch(SQLException E)
- {
- E.printStackTrace();
- erreur="SQLException: " + E.getMessage();
- }
- }
- public void prochain()
- {
- try
- {
- if( curseur.isLast() ) { ; }
- else{
- curseur.next();
- }
- }
- catch(SQLException E)
- {
- E.printStackTrace();
- erreur="SQLException: " + E.getMessage();
- }
- }
- public void precedent()
- {
- try
- {
- if( curseur.isFirst() ) { ; }
- else{
- curseur.previous();
- }
- }
- catch(SQLException E)
- {
- E.printStackTrace();
- erreur="SQLException: " + E.getMessage();
- }
- }
|
Finalement, je lis la position avec la méthode suivante :
Code :
- public int getPosition()
- {
- int p=0;
- try
- {
- p = curseur.getRow();
- }
- catch(SQLException E)
- {
- E.printStackTrace();
- erreur="SQLException: " + E.getMessage();
- }
- if(p==0){ return p; }
- else{
- return p-1;}
- }
|
Et dans mon code JSP je fais ca : pos = (String)lignes.get(position);
pour ensuite afficher l'element de la base de donnée.
Ça marche pour placer le curseur en début et a la fin mais pas pour suivant et précédent. Je ne sais pas comment faire pour placer une variable qui s'incrémente et se décrémente pour résoudre le problème.
Est-ce que je fais bien de parcourir les éléments de la base ainsi ou je devrai utiliser un autre moyen?
Mici pour vos réponses