簡體   English   中英

從servlet到jsp獲取字符串列表

[英]Getting list of strings from servlet to jsp

我有一個JSP頁面,其中有兩個標簽。 首先,我嘗試輸入諸如塔塔,現代,豐田,奧迪等汽車制造商的名稱。當用戶首先選擇任何選項時,它應該顯示該制造商的汽車型號,例如Innova,Land Cruiser等。所以當用戶選擇第一個標記中的任何選項,我正在調用一個servlet,該servlet從數據庫中的列表中獲取所有模型,並將該列表設置為session的屬性,並將請求轉發回JSP。 但是在jsp中,當我嘗試獲取列表時,它給出了NULL POINTER EXCEPTION。 怎么解決呢? 代碼如下:

DbReviewCar.java

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    Connection conn= null;
    PreparedStatement pstmt= null;
    ResultSet rs;
    String sql= null;
    String maker= request.getParameter("make");
    List modellist= new ArrayList();
    /*if(maker==null)
    {
        modellist.add("ferrari");
        modellist.add("hummer");
         request.getSession().setAttribute("value", modellist);
         request.getRequestDispatcher("CarReview.jsp").forward(request,response);


    }
    else
    {*/


    try {
        Class.forName("com.mysql.jdbc.Driver");
        conn= DriverManager.getConnection("jdbc:mysql://localhost/cardetails", "root", "Welcome123");
        sql= "select model from cars where make=?;";
        pstmt= conn.prepareStatement(sql);
        pstmt.setString(1, maker);
        rs= pstmt.executeQuery();
        while(rs.next())
        {
            String mod= rs.getString(1);
            modellist.add(mod);
            System.out.println(mod+">>>>>>>>>>>>>>>>>>.");
        }


    } catch (ClassNotFoundException e) {

        e.printStackTrace();
    } catch (SQLException e) {

        e.printStackTrace();
    }


     request.getSession().setAttribute("value", modellist);
     request.getRequestDispatcher("CarReview.jsp").forward(request,response);
    }

CarReview.jsp

這是我的JSP文件

<form action="DbReviewCar" method="get" name="myform">
    <table>
        <tr>
            <td>
        <tr>
            <td>Make:</td>
            <td><select name="make" onchange="this.form.submit()"><option>select</option>
                    <option>Maruti</option>
                    <option>Ford</option>
                    <option>Honda</option>
                    <option>Skoda</option>
                    <option>Tata</option>
                    <option>Audi</option>
                    <option>Toyota</option></select><br></br></td>
        </tr>


        <%
            List list = new ArrayList();
            list.addAll((List) (request.getSession().getAttribute("value")));
        %>



        <tr>
            <td>Model:</td>
            <td><select name="model">


                    <%
                        for (int i = 0; i < list.size(); i++) {
                    %>
                    <option value=<%=list.get(i)%>><%=list.get(i)%></option>
                    <%
                        }
                    %>
            </select><br></br></td>
        </tr>

        <tr>
            <td>Rating For Style:</td>
            <td><input type="text" name="style"><br></br></td>
        </tr>
        <tr>
            <td>Rating for comfort:</td>
            <td><input type="text" name="comfort"><br></br></td>
        </tr>
        <tr>
            <td>Rating for Performance:</td>
            <td><input type="text" name="performance"><br></br></td>
        </tr>
        <tr>
            <td>Rating for FuelEconomy:</td>
            <td><input type="text" name="economy"><br></br></td>
        </tr>
        <tr>
            <td>Review:</td>
            <td><textarea cols="18" rows="3"></textarea><br></br></td>
        </tr>

        <tr>
            <td><Button>Save</Button></td>
            <td><input type="reset" name="cancel" value="Cancel" /></td>
        </tr>






    </table>


</form>

首次加載jsp時,未設置“值”屬性。 嘗試檢查null是否為值:

request.getSession().getAttribute("value")

暫無
暫無

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

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