我已经正确地创建了JSP,它显示了'值'下拉格式的数据库。出于某种原因,我不确定在servlet中获取siteId值的正确方法。有人能帮助我吗?
以下是我的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>
这是我的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();
}
}
}
我只是不知道在我的servlet中写什么来读取siteId。如果我需要提供更多信息,请告诉我。我是一个试图学习这种关系的新程序员。 提前谢谢大家。
答案 0 :(得分:0)
当您提交<form>
时,数据将作为请求参数传递,而不是作为请求属性传递。request.getParameter
更改request.getAttribute
。
int siteId = Integer.parseInt(request.getParameter("siteId"));