[英]getAttribute() returns null for drop down list in jsp
我試圖使用getAttribute()將值從數據庫傳遞到下拉菜單。 但是,它返回null。
這是我的jsp(updateLecturer.jsp)文件:
<form action="updateLecturer" class="sky-form">
<header>Update Lecturer Information</header>
<center>
<fieldset>
<section>
<label class="select">
<select name="selectLecturer" id="lecturerFullname">
<option value="0" selected disabled>Lecturers Name</option>
**<option name="lecturerFullname"><%=((LecturerBean)request.getAttribute("LecturerFullname"))%></option>**
</select>
</label>
</section>
</center>
<footer>
<center><button type="submit" class="button">Update</button></center>
</footer>
</form>
這是我的Servlet UpdateLecturerServlet.java):
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, java.io.IOException {
String lecturerFullname = request.getParameter("LecturerFullame");
LecturerBean lecturer = new LecturerBean();
lecturer.setLecturerFullname(lecturerFullname);
request.setAttribute("LecturerFullname",lecturerFullname);
RequestDispatcher view = getServletContext().getRequestDispatcher("/updateLecturer.jsp");
view.forward(request,response);
}
這是我的UpdateLecturerDAO:
static Connection currentCon = null;
static ResultSet rs = null;
public static LecturerBean selectlecturer(LecturerBean Lbean) {
// preparing some objects for connection
System.out.println("JIJIJI");
Statement stmt = null;
String lecturerFullname = Lbean.getLecturerFullname();
System.out.println("j444444");
String searchQuery = "select lecturerfullname from lecturer";
System.out.println("Your lecturer is " + lecturerFullname);
System.out.println("Query: " + searchQuery);
try {
// connect to DB
currentCon = JavaConnectionDB.getConnection();
stmt = currentCon.createStatement();
rs = stmt.executeQuery(searchQuery);
// boolean more = rs.next();
while(rs.next())
{
LecturerBean lecturer = new LecturerBean();
lecturer.setLecturerFullname(rs.getString("LecturerFullname"));
lecturer.add(lecturer);
}
}
catch (Exception ex) {
System.out.println("Select failed: An Exception has occurred! " + ex);
}
我以前從未使用過任何此類代碼,因此我不確定屬性系統如何工作,但我注意到您的代碼中存在異常:
設置位置: request.setAttribute("LecturerFullname",lecturerFullname);
您將在何處獲得: lecturer.setLecturerFullname(request.getAttribute("lecturerFullname",lecturer));
注意到了嗎? 在您要設置它的地方,放一個大寫的“ L”,我相信它是區分大小寫的。 嘗試時不會受傷。
如果您在請求中設置這樣的屬性
request.setAttribute("key",obj);
您可以像這樣通過腳本將其顯示在jsp中
<%=request.getAttribute("key")%>
您的情況請檢查以下幾點
檢查以下代碼是否為您提供了空值。
String lecturerFullname = request.getParameter("LecturerFullame");
如果這為您提供了null,請檢查url中是否傳遞了參數LecturerFullame 。
在jsp中,請強制以下內容以更正對象
<option name="lecturerFullname"><%=((String)request.getAttribute("LecturerFullname"))%></option>
讓我知道。
在UpdateLecturerServlet.java
。
//calling selectlecturer() to retrieve list full names and store it in session
request.setAttribute("LecturerFullname",selectlecturer());
RequestDispatcher view = getServletContext().getRequestDispatcher("/updateLecturer.jsp");
view.forward(request,response);
現在是selectlecturer()
方法。
public static List<LecturerBean> selectlecturer() {
//DB query to retrieve all lecturer fullnames
List<LecturerBean> lecturers = new ArrayList<LecturerBean>();
while(rs.next())
{
LecturerBean lecturer = new LecturerBean();
lecturer.setLecturerFullname(rs.getString("LecturerFullname"));
lecturers.add(lecturer);
}
return lecturers;//return the list lecturer fullnames
}
在updateLecturer.jsp
。
<%
java.util.List<LecturerBean> lists = (java.util.List<LecturerBean>)request.getAttribute("LecturerFullname"));
for(LecturerBean bean:lists)
{
%>
<option name="lecturerFullname"><%=bean.getLecturerFullname()%></option>
<%
}
%>
但是您應該避免在JSP中使用Java代碼 。 僅供參考,我正在提供此代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.