Question

I have created the JSP properly where it displays the 'values' of a database in a dropdown format. For some reason I am not sure of the correct way to get the siteId value in my servlet. Can someone help me?

Here is the relevant code from my JSP:

    <form name="input" action="getMasterData" method="get">
        <br />
    <br />
    <h1 align='center'>Master Data File</h1>
    <br />
    <br />


    <table border="0" align='center'>
        <tr>
            <td>
                <h2>Site Name</h2>
            </td>
            <td align='left'>
            <jsp:useBean id="masterDao"         class="master.dao.MasterDataDao"/>
                     <select name="siteId" id="siteId">
                     <c:forEach items="${masterDao.allSites}" var="siteDto">
                     <option value="${siteDto.id}">${siteDto.name}</option>
                    </c:forEach>
                    </select></td>
                </tr>

            </table>
            <br />
            <br />
            <div style="text-align: center">
                <input type="submit" value="Submit">
            </div>

            </form>

and here is my Servlet:

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws IOException, ServletException {
        MasterDataService masterDataService = new MasterDataService();
        try {
            System.out.println(request.getAttribute("siteId"));
            int siteId = (Integer) request.getAttribute("siteId");
            //=1650515; //intln(siteId);
            masterDataService.createMasterDataFile(siteId, 23);
            request.getRequestDispatcher("/masterDataQueryScreen.jsp").forward(request, response);
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

I just don't know what to write to read siteId in my servlet. Please let me know if I need to provide more information. I am a new programmer trying to learn this relationship. Thank you all in advance.

Was it helpful?

Solution

When you submit a <form>, the data is passed as request parameters, not as request attributes.Change request.getAttribute by request.getParameter.

int siteId = Integer.parseInt(request.getParameter("siteId"));
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top