JSP从servlet获取变量

0 java jsp servlets

我有两个问题,

第一:

形成

<FORM ACTION="create" METHOD="POST">
<fieldset>
<INPUT TYPE="TEXT" NAME="paraile">
<input type="submit" name="Submit" class="button" value="Gen" />
</fieldset>
</FORM>
Run Code Online (Sandbox Code Playgroud)

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);
Run Code Online (Sandbox Code Playgroud)

ankieta.jsp

  <%
  int a= Integer.parseInt(request.getParameter("ile"));
      for (int i = 0; i < a; i++) {
  %>
         Number: <%=i%> 
  <%
      } 
  %>
Run Code Online (Sandbox Code Playgroud)

这个简单的练习不起作用.真的,我需要循环来创建一个文本框来投票.

我的第二个问题.当我有一些动态文本框时,我需要它们在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>
Run Code Online (Sandbox Code Playgroud)

Lui*_*oza 7

问题是,你使用request.getParameterankieta.jsp当您设置的属性.将其更改为request.getAttribute:

int a= Integer.parseInt(request.getParameter("ile"));
Run Code Online (Sandbox Code Playgroud)

现在,如果您正处于学习阶段,我强烈建议您停止使用scriplet.这里有很多解释:如何避免JSP文件中的Java代码?

使用EL和JSTL,JSP中的代码将是:

<c:forEach var="i" begin="0" end="${a}">
    Number: ${i} <br />
</c:forEach>
Run Code Online (Sandbox Code Playgroud)