Session属性不使用useBean值

时间:2017-01-03 19:25:58

标签: java session servlets javabeans jspx

我目前正在创建一个使用java servlets和jspx页面的Web应用程序。我在使用LessonSelection(int owner)类调用时创建了一个带有参数的java类。我知道您不能使用带参数的bean,因此我使用参数创建了该类的对象,然后将其添加到会话中,然后在useBean中使用该会话属性。

我有一个错误,说'useBean类属性$ {selected}的值无效'

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

如果您还需要我编写的代码,请致谢。

编辑1:

我想我会检查它是否实际上已添加到会话属性中并且已添加。它打印为'model.LessonSelection@1457de3'。它仍然显示相同的错误。

1 个答案:

答案 0 :(得分:0)

class jsp:useBean必须是您的属性的包+类!假设您的LessonSelection位于包com.test中。代码如下:

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

修改1

试试这个:

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

它认为使用类型,JSP不会为你实例化它,它只是从给定范围内给定类型的bean看。见here