我目前正在创建一个使用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'。它仍然显示相同的错误。
答案 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。