0

私には2つの問題があります、

初め:

<FORM ACTION="create" METHOD="POST">
<fieldset>
<INPUT TYPE="TEXT" NAME="paraile">
<input type="submit" name="Submit" class="button" value="Gen" />
</fieldset>
</FORM>

サーブレットメソッド 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%> 
  <%
      } 
  %>

この簡単なエクササイズはうまくいきません。本当に、投票するためのテキストボックスをいくつか作成するにはループが必要です。

そして私の2番目の質問。動的テキストボックスがいくつかあり、サーブレットでそれらの値が必要な場合。それらを jsp ファイルの文字列に結合してから、1 つのパラメーターをサーブレットに送信できますか?

編集: それは機能していますが、それでもこれはひどく解決策です. ルイージありがとう!

<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>
4

1 に答える 1

7

問題は、属性を設定したときにankieta.jsprequest.getParameterで使用していることです。次のように変更します。request.getAttribute

int a= Integer.parseInt(request.getParameter("ile"));

現在、学習段階にある場合は、scriplets の使用を停止することを強くお勧めします。これについては、ここで詳しく説明されています: JSP ファイルで Java コードを回避するにはどうすればよいですか?

EL と JSTL を使用すると、JSP のコードは次のようになります。

<c:forEach var="i" begin="0" end="${a}">
    Number: ${i} <br />
</c:forEach>
于 2013-06-03T22:10:38.477 に答える