JSP从servlet获取变量

时间:2013-06-03 22:09:19

标签: 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>

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>

1 个答案:

答案 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>