0

请在这里提供帮助,getParameter 仅打印标签中字符串元素的第一部分。

这是选择标签

<select name="ActionSelect" id="ActionSelect" >
<%Iterator itr;%>
<% List data = (List) request.getAttribute("data");
   for (itr = data.iterator(); itr.hasNext();) {
     String value = (String) itr.next();
%>
<option value=<%=value%>><%=value%></option>
<%}%>
</select>

这是servlet中的代码

PrintWriter pw = response.getWriter();
String connectionURL = "jdbc:mysql://localhost/db";
Connection connection;
try{
  this.ibrand = request.getParameter("ActionSelect");
  pw.println(ibrand);
} catch (Exception e) {
  pw.println(e);
}
4

1 回答 1

6

在选项标签中使用双引号引起来:

<option value="<%=value%>"><%=value%></option>

就像现在一样,您的值中可能有一个空格,因此仅返回空间之前的值部分。

顺便说一句,没有必要在顶部声明迭代器;您可以直接在 for 循环中执行此操作:

for (Iterator itr = data.iterator(); itr.hasNext();) {

最后,考虑使用标记库而不是直接将 java 代码编写为 JSP 中的 scriptlet。

于 2009-10-15T06:18:53.203 回答