JAVA et JSP

Fermé
Nikko - 27 mars 2008 à 10:29
 Nikko - 28 mars 2008 à 14:13
Bonjour,

Je réalise une web app dans laquelle je me sers d'une servlet et de pages JSP. Je rencontre un problème sur l'écriture de l'une des ces pages.

J'ai, dans mon programme java, une session utilisateur. J'essaye de l'appeler dans ma page JSP pour mettre une valeur par défaut dans une zone de texte, mais je n'y arrive pas. Voici mon code :

<p align="center"> <font face="Broadway" size ="2">Nom de la personne réservant :</font></p>

<%HttpServletRequest req; %>
<%HttpSession Session = req.getSession();%>
<%String s = (String)Session.getAttribute("login");%>
<%s=s.substring(0, s.lastIndexOf("-"));%>


<p align="center"> <font face="Broadway"><input type="text"value=<%=s %>name="salarie" size="20"></font></p>
<br>

Si quelqu'un a une idée, je suis preneur ! Merci par avance !

amicalement,
Nikko

PS : le code java intégré à la JSP est mis en valeur
A voir également:

6 réponses

Utilisateur anonyme
27 mars 2008 à 11:00
Vérifie que lastIndexOf ne te retourne pas -1 car sinon le substring ne peut pas fonctionner
0
Merci de ta réponse Tassin.

J'ai, comme tu me l'as conseillé, testé si lastIndexOf retournait -1, mais ce n'est pas le cas. Cependant, j'ai procédé différemment. J'ai créé une fonction dans mon programme java et je l'ai appelé dans ma JSP.
Voici donc mon nouveau code de ma JSP:

<%!private ADO ado = new ADO(); %>

<p align="center"> <font face="Broadway"><input type="text" value=<%=ado.decoupLogin(request, response) %> name="salarie" size="20"></font></p>


Et voici le code de ma fonction de mon programme java :

public String decoupLogin(HttpServletRequest req, HttpServletResponse rep){
		HttpSession Session = req.getSession();
		String s = (String)Session.getAttribute("login");
		s = s.substring(0, s.lastIndexOf("."));
		s += " ";
		String x = (String)Session.getAttribute("login");
		x = x.substring(x.lastIndexOf(".")+1, x.lastIndexOf("-"));
		s += x;
		return s;
	}


Cependant, je rencontre un nouveau problème. Le login que je récupère est sous la forme "dupont/-henry" (nom/-prénom). Pour ce genre de login, tout va bien. Mais dès qu'il s'agit d'un login avec mon composé, il ne m'affiche qu'une partie de ce que je souhaite.

Je m'explique. Prenons le login suivant : ait/hellail-katia (le "/" remplace l'espace qu'il y a normalement dans le nom.
Avec la fonction précédente, quand je le test avec des "System.out.println", je récupère bien "ait hellail". Mais la valeur qui est retournée dans la zone de texte est la suivante : "ait" et je n'ai pas le "hellail" qui devrait suivre...

Je ne sais pas d'où ca peut venir... Si quelqu'un à une idée... Par avance, merci !
0
Utilisateur anonyme
27 mars 2008 à 15:13
c pas parce que tu n'a pas mis les " après le value ?

value="<%=ado.decoupLogin(request, response) %>"
0
Non, lorsque tu introduis un code java qui retourne un String, tu n'as pas besoin d'ajouter les "". Mais saurais-tu si les valeurs des attributs d'un objet session autorisent les "/" sans altérer la valeur de cet attribut ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
28 mars 2008 à 10:39
Normalement non car le / n'est pas considéré comme caractère spécial en Java
0
vois-tu une solution alors ? ou la raison pour laquelle je ne reçois pas entièrement mon string ?
0