2017-01-03 10 views
0

В настоящее время я создаю веб-приложение, использующее сервлеты Java и страницы jspx. Я создал класс java с параметром при вызове с классом LessonSelection (int owner). Я знаю, что вы не можете использовать компонент с параметром, поэтому я сделал объект этого класса с параметром, а затем добавил его в сеанс, а затем использовал этот атрибут сеанса в useBean.Атрибут сеанса, не работающий с useBean value

У меня есть ошибка придумывают говоря: «Значение этого атрибута useBean класса $ {выбранного} недействителен»

useBean код ниже.

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

Код java находится ниже.

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"); 

Если вам нужен еще какой-то код, который я написал, просто спросите спасибо.

EDIT 1:

Я думал, что проверить, является ли это на самом деле добавляется в атрибут сеанса и добавляется. Он печатается как «[email protected]». Он по-прежнему показывает ту же ошибку.

ответ

0

class at jsp:useBean должен быть пакетом + класс вашего атрибута! Предположим, ваш LessonSelection находится в упаковке com.test. Код будет выглядеть следующим образом:

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

Edit 1

Попробуйте это:

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

Это seens, что использование типа, СПЯ обыкновение создать его экземпляр для вашего, это будет просто Посмотрите из бина данного типа в данной области. См. Его here.

+0

Благодарим вас за это, но у меня есть параметр класса LessonSelection, поэтому он не позволит мне это сделать. Я попробовал class = "com.test.LessonSelection (1)", но это дает еще одну ошибку –

+0

@HasanTariq, попробуйте создать конструктор по умолчанию и посмотреть, работает ли он – BrunoDM

+0

Это для задания, и мой лектор дал класс, подобный этому , Я не думаю, что могу изменить его –