我有两个问题,
首先:
表格
<FORM ACTION="create" METHOD="POST">
<fieldset>
<INPUT TYPE="TEXT" NAME="paraile">
<input type="submit" name="Submit" class="button" value="Gen" />
</fieldset>
</FORM>
servlet方法doPost
String ankieta = "WEB-INF/ankieta.jsp";
int ile = Integer.parseInt(request.getParameter("paraile"));
request.setAttribute("ile", ile);
request.getRequestDispatcher(ankieta).forward(request, response);
ankieta.jsp
<%
int a= Integer.parseInt(request.getParameter("ile"));
for (int i = 0; i < a; i++) {
%>
Number: <%=i%>
<%
}
%>
这个简单的练习不起作用。 真的,我需要循环来创建一个文本框来投票。
和我的第二个问题。当我有一些动态文本框时,我需要它们在servlet中的值。我可以将它们组合到jsp文件中的字符串,然后将一个参数发送到servlet吗?
修改 它工作正常,但这仍然是非常好的解决方案。谢谢你Luiggi!
<FORM ACTION="create" METHOD="POST">
<fieldset>
<legend>Vote</legend>
<%
String string = (String) request.getAttribute("ile");
int a= Integer.parseInt(string);
for (int i=1; i <= a; ++i) {
%>
<label>Option <%=i%></label>
<INPUT TYPE="TEXT" NAME="option<%=i%>">
<%
}
%>
<input type="submit" name="Submit" class="button" value="Accept" />
</fieldset>
答案 0 :(得分:7)
问题是,在设置属性后,您在 ankieta.jsp 中使用request.getParameter
。将其更改为request.getAttribute
:
int a= Integer.parseInt(request.getParameter("ile"));
现在,如果你正处于学习阶段,我强烈建议停止使用scriplets 。这里有很多解释:How to avoid Java code in JSP files?
使用EL和JSTL,JSP中的代码为:
<c:forEach var="i" begin="0" end="${a}">
Number: ${i} <br />
</c:forEach>