我搜索了多个地方,但找不到我需要的地方。我是servlets和html的新手,很确定我错过了一些简单的东西。
我在其中有一个servlet servletA&do; doGet,我执行以下操作:
response.setContentType("text/html");
PrintWriter out = response.getWriter();
StringBuilder sb = new StringBuilder();
sb.append("<html><head></head><body>");
sb.append("<div><select name=\"thisparameter\">");
ArrayList<A> list = helper.getList();
sb.append("<option value=\"select\">Select an option</option>");
for (int i=0; i<list.size(); i++) {
A a = list.get(i);
sb.append("<option value="+ a.getYear()+">" + a.getName() + "</option>");
}
sb.append("</select>");
sb.append("<form action=\"servletB\" method=\"GET\">\n" +
" <button type=\"submit\">Go</button>\n" +
"</form></div>");
sb.append("</body>");
sb.append("</html>");
out.println(sb.toString());
out.close();
在servletB的doGet()
中PrintWriter out = response.getWriter();
StringBuilder sb = ServletHelper.getHeaderHtml();
response.setContentType("text/html");
String thisparameter = request.getParameter("thisparameter");
字符串thisparameter始终为null。我尝试了POST并获得了相同的结果。我真的只想使用servlet,而不是与JSP结合使用。任何帮助将受到高度赞赏。谢谢。
答案 0 :(得分:0)
您的select
需要位于form
内才能提交给servlet。要做到这一点,请更改您的代码。
PrintWriter out = response.getWriter();
StringBuilder sb = new StringBuilder();
sb.append("<html><head></head><body>");
sb.append("<form action=\"servletB\" method=\"GET\">");
sb.append("<div><select name=\"thisparameter\">");
ArrayList<A> list = helper.getList();
sb.append("<option value=\"select\">Select an option</option>");
for (int i=0; i<list.size(); i++) {
A a = list.get(i);
sb.append("<option value="+ a.getYear()+">" + a.getName() + "</option>");
}
sb.append("</select>");
sb.append("<button type=\"submit\">Go</button>\n" +
"</form></div>");
sb.append("</body>");
sb.append("</html>");
out.println(sb.toString());
out.close();