簡體   English   中英

下拉列表Null Pointer JSP到Servlet

[英]Drop Down list Null Pointer JSP to Servlet

我很難從jsp獲得下拉列表中的值。 我得到的字符串的Null值僅是“”。 但是,如果我只為部門使用文本框,它將起作用。 我很難找到我的代碼中的錯誤在哪里。

這是我的JSP文件:

 <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
        <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
        <script type="text/javascript" src="js/jquery-ui-1.8.18.custom.min.js"></script>

        </head>
        <body>

            <form method="POST" action='PersonnelController' name="frmAddData" class="form">

                <fieldset>
                    <legend id="myLegend">User</legend>

                    <label for="firstname">First Name :</label>
                            <input type="text" name="firstname"
                                value="<c:out value="${data.firstname}" />" /><br />

                        <label>Last Name :</label>
                            <input type="text" name="lastname"
                                value="<c:out value="${data.lastname}" />" /><br />

                        <!--<label>Department Name :</label>
                            <input type="text" name="department_id" 
                            value="<c:out value="${data.department_id}" />" /><br />-->

                        <label>Department Name :</label>
                <select name="personnel">
                <c:forEach items="${personnels}" var="personnel">
                <option value="${personnel.department_id}"><c:out value="${personnel.department_name}" /></option>
                </c:forEach>
</select>
                </fieldset>
                <input type="submit" value="Submit" class="submit"/>
            </form>

        </body>
        </html>

這是針對Servlet的:

私人部門

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    List<DepartmentBean> personnels = dd.getAllDepartmentName();
    request.setAttribute("personnels", personnels);
    request.getRequestDispatcher("/WEB-INF/personnel.jsp").forward(request, response);
}

}

這是我的DAO:

   public List<DepartmentBean> getAllDepartmentName() {
                List<DepartmentBean> departments = new ArrayList<DepartmentBean>();
                try {
                    Statement statement = connection.createStatement();
                    ResultSet rs = statement.executeQuery("select department_name,id from department ORDER BY department_name");
                    while (rs.next()) {
                        DepartmentBean department = new DepartmentBean();
                        department.setPeople_manager_name(rs.getString("department_name"));
                        departments.add(department);
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }

                return departments;

問題是您沒有在dao類中的DepartmentBean對象引用中滿足必需的字段。 您只填寫了people_manager_name字段,並且在JSP中,您請求的是department_iddepartment_name的數據,這將調用DepartmentBean#getDepartment_id()DepartmentBean#getDepartment_name()方法。

getAllDepartmentName方法中對此進行更改:

while (rs.next()) {
    DepartmentBean department = new DepartmentBean();
    department.setDepartment_name(rs.getString("department_name"));
    department.setDepartment_id(rs.getInt("department_id"));
    departments.add(department);
}

這是有關表達式語言如何工作的有用鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM