簡體   English   中英

JSP從Servlet獲取變量

[英]JSP get variable from servlet

我有兩個問題,

第一:

形成

<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嗎?

編輯:它正在工作,但這仍然是一個糟糕的解決方案。 謝謝路易吉!

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

問題在於,設置屬性后,您正在ankieta.jsp中使用request.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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM