2017-01-03 74 views
0

我目前正在創建一個使用java servlets和jspx頁面的web應用程序。我使用類爲LessonSelection(int owner)的類調用了一個帶有參數的java類。我知道你不能使用帶有參數的bean,所以我用該參數創建了該類的對象,然後將它添加到會話中,然後在useBean中使用該會話屬性。會話屬性不能使用useBean值

我有一個錯誤來了說「的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"); 

如果您需要更多我編寫的代碼,請問謝謝。

編輯1:

我以爲我會檢查它是否真正添加到會話屬性,並且將其添加。它被打印爲'[email protected]'。它仍然顯示相同的錯誤。

回答

0

classjsp: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

+0

謝謝你,但我有一個LessonSelection類的參數,所以它不會允許我這樣做。我已經嘗試過class =「com.test.LessonSelection(1)」,但是這給出了另一個錯誤 –

+0

@HananTariq,嘗試創建默認構造函數,看看它是否可行 – BrunoDM

+0

這是一個任務,我的講師給了這樣的類。我不認爲我可以改變它 –