【发布时间】:2015-03-05 14:50:53
【问题描述】:
我在从 jsp 获取下拉列表中的值时遇到了困难。我得到一个空值的字符串,它只是“”。但是,如果我只为部门使用文本框,它将起作用。我很难找到代码中的错误在哪里。
这是我的 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 准备的:
私系道dd;
@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;
【问题讨论】:
-
我可以在线搜索并提供答案,但我建议您根本不要使用
<sql:query>。将该查询移动到您的 Servlet 并从那里提供数据,而不是直接从您的 JSP 提供。 -
但是对于这种情况,您知道如何解决吗?
-
是的,但不会提供这样的答案。我不会支持糟糕的设计。
-
你能告诉我一些
-
这是一个例子:stackoverflow.com/questions/5003142/jsp-using-mvc-and-jdbc 顺便说一句,您的错误是一个简单的错字。仔细查看
${}中选项值的基本引用。
标签: java mysql jsp servlets jstl