2017-01-03 1 views
0

Je crée actuellement une application Web qui utilise des servlets java et des pages jspx. J'ai créé une classe Java avec un paramètre lorsqu'elle est appelée avec la classe LessonSelection (int owner). Je sais que vous ne pouvez pas utiliser un bean avec un paramètre, j'ai donc créé un objet de cette classe avec le paramètre, puis je l'ai ajouté à la session, puis j'ai utilisé cet attribut de session dans useBean.Attribut de session ne fonctionnant pas avec la valeur useBean

J'ai une erreur à venir dire « La valeur de l'attribut class useBean $ {} sélectionné est invalide »

Le code useBean est ci-dessous.

<jsp:useBean class="${selected}" id="timetable" scope="session"/> 

Le code java est ci-dessous.

HttpSession session = request.getSession(true); 
session.setAttribute("username", user); 
session.setAttribute("id", id); 
selected = new LessonSelection(id); 
session.setAttribute("selected", selected); 
dispatcher = this.getServletContext().getRequestDispatcher("/LessonTimetableView.jspx"); 

Si vous avez besoin de plus du code que j'ai écrit, il suffit de demander merci.

EDIT 1:

Je pensais que je voudrais vérifier si elle est effectivement ajouté à l'attribut de session et il est ajouté. Il est imprimé en tant que «[email protected]». Il montre toujours la même erreur.

Répondre

0

Le class à jsp:useBean doit être le package + class de votre attribut! Supposons que votre LessonSelection se trouve dans le package com.test. Le code serait comme suit:

<jsp:useBean class="com.test.LessonSelection" id="timetable" scope="session"/> 

Modifier 1

Essayez ceci:

<jsp:useBean type="com.test.LessonSelection" id="timetable" scope="session"/> 

Il seens que l'utilisation type, le JSP instancier coutume pour votre, il vous reste plus qu'à regarder à partir du bean du type donné dans la portée donnée. Voyez here.

+0

Merci pour cela mais j'ai un paramètre pour la classe LessonSelection donc ça ne me le permettra pas. J'ai essayé class = "com.test.LessonSelection (1)" mais cela donne une autre erreur –

+0

@HasanTariq, essayez de créer le constructeur par défaut, et voyez si cela fonctionne – BrunoDM

+0

Ceci est pour une affectation et mon conférencier a donné la classe comme ça . Je ne pense pas que je peux le changer –