2015-03-31 150 views
0

我的問題是我在由html頁面內的表單填充的servlet類中創建了一個ArrayList。 然後我將我的數組列表傳遞給打印所有對象的jsp頁面。 現在我打印的每個對象都變成了調用servlet的「doGet」方法的「href」。 我需要通過單擊鏈接所選對象的索引。如何將參數從jsp頁面傳遞給servlet?

//這是我的servlet的方法的doGet的實現:

//我知道這是錯誤的,使用的getAttribute,但我不知道還有什麼可以真正發揮作用。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    **String ciao = request.getAttribute("id");** //this is the error 
    int k = Integer.parseInt(ciao); // this is because i pass a String object and i'm already sure that it will be a number. 
    String invio = lista.get(k); 
    request.setAttribute("key", invio); 
    RequestDispatcher dispatcher = 
      getServletContext().getRequestDispatcher("/views/es3-item.jsp"); 
      dispatcher.forward(request, response); 
    } 

這是我的jsp(ES3-的List.jsp)頁面打印的對象:

<c:forEach var="valore" items="${requestScope.message}" varStatus="theCount">//message is the key to pass the ArrayList "lista" to this jsp page. 
<a href ="./es3"> <c:out value="${valore}"/> </a> 
<a id="${theCount.index}"></a> 
</c:forEach> 
+0

的可能重複的形式[如何將數據從JSP轉移到servlet中](http://stackoverflow.com/questions/4971877/how-to-transfer-data-from-jsp-to-servlet) – VedX 2015-03-31 12:01:06

+0

你必須通過它的價值附加在url – silentprogrammer 2015-03-31 12:04:47

回答

1

你可以追加參數,以請求的URL。我看你正在使用的doGet所以它只是你可以追加問號後的參數,如

myURL?param1=value1&param2=value2 

上述情況是定位標記的HREF。你將不得不像上面那樣創建href。 但這個可以有將提交到的doGet像

<form action="myservlet"> 
<input type="text" name="param1"/> 
<input type="text" name="param2"/>  
</form> 

而且從servlet的在這兩種情況下,你可以訪問值

request.getParameter("param1"); 
+0

它的工作! 感謝您的支持! 這是我第一次用jsp頁面和servlet進行編程,一般來說我還沒有任何分佈式系統的實踐。 – 2015-04-02 13:13:36

+0

@ A.B.V。幫助你很高興..如果解決方案爲你工作,你能接受答案嗎? – 2015-04-03 09:29:34