您的代码是否满足以下条件:
request
是对象HttpServletRequest
- 此代码在方法内部,例如
doGet
和doPost
- 你点击
submit
按钮了吗?
如果不是,请尝试满足上述条件。我希望这会奏效。
更新:
我认为您的代码有错误:请使用并查看我在本地电脑上测试过的以下代码。
out.println("<form action=\"sampleServlet\" method=\"POST\">");
代替
out.println("<form action=sampleServlet method=POST>");
小服务程序代码:Test.java
@Override
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
try {
String[] collectdata = {"a", "b", "c", "d"};
PrintWriter out = response.getWriter();
response.setContentType("text/html");
String elements = request.getParameter("data");
out.println("<form action=\"Test\" method=\"POST\">");
out.println("<select name=\"data\">");
for (int i = 0; i < collectdata.length; i++) {
out.println("<option value='" + collectdata[i] + "'>" + collectdata[i] + "</option>");
}
out.println("</select>");
out.println("<button type='submit'>Submit</button>");
out.println("</form>");
elements = request.getParameter("data");
out.println(elements);
} catch (Exception e) {
e.printStackTrace();
}
}
web.xml
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>Test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/Test</url-pattern>
</servlet-mapping>
以下是我的输出:
现在,我确定并确认您的列表nw.collectdata
是空的。所以你得到空值。因为如果您只设置 String[] collectdata = {};
而不是String[] collectdata = {"a", "b", "c", "d"};
在此(MyCode)代码上设置,您将获得空值。所以我对你的建议是,请获取列表中的值:nw.collectdata
. 你也可以用我的代码测试自己。