2013-09-26 105 views
1

在JSP和servlets中,我是一個新手,但我一直在做很多研究並嘗試了很多,但是我不能讓它工作。 我正在使用一個servlet和一個JSP。我做了一種登錄,其中我需要發送一些表單信息和一個數組(在這種情況下,我創建了數組,但我從Dynatree中得到了一個類似)到servlet,管理信息,然後繼續閱讀另一頁。從jsp傳遞數組到servlet

我已經嘗試了很多東西,但沒有辦法似乎工作。可能會做很多錯誤的事情,但我沒有更多的想法來測試可能的工作。

順便說一句,即時通訊工作的netBeans,與Tomcat。

JSP代碼:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 

<html> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> 
    <title>Dynatree - Example</title> 

    <script src="jquery/jquery.js" type="text/javascript"></script> 
    <script src="jquery/jquery-ui.custom.js" type="text/javascript"></script> 
    <script src="jquery/jquery.cookie.js" type="text/javascript"></script> 
    <link href="src/skin/ui.dynatree.css" rel="stylesheet" type="text/css"> 
    <script src="src/jquery.dynatree.js" type="text/javascript"></script> 

    <script type="text/javascript"> 

     function myFunction(){ 
      alert("Hello! I am an alert box!"); 
      }; 
    </script> 
</head> 

<body class="example"> 
    <h1>Example: Form</h1> 

    <form action="Test" method="post" name="form" > 
    Username: <input type="text" name="userName" /> 
    <br> 
    <textarea name="comment"></textarea> 
    <br> 
    <input type="submit" id="id2" value="Send data"> 
    <br> 
    <input type="button" onclick="myFunction();" value="Show alert box"> 
    </form> 

    <script type="text/javascript">  
     $("#id2").click(function() { 
       var json=[1,2,3,4]; 
      $.ajax({ 
       url:"Test", 
       type:"POST", 
       dataType:'json', 
       data: {json:json}, 
       success:function(data){ 
        alert("Hello! I am an alert box!"); 
       } 
       }); 
     }); 
    </script> 
</body> 
</html> 

而且我的servlet 「測試」 代碼:

@WebServlet(urlPatterns = {"/Test"}) 
public class Test extends HttpServlet { 
    @Override 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException {   

     PrintWriter out = response.getWriter();    
     String descr = request.getParameter("comment");    
     String[] myJsonData = request.getParameterValues("json[]"); 

     out.print("\nDescription:"); 
     out.print(descr); 
     out.print("\nPrint:");    
     out.print(myJsonData); 

     // response.sendRedirect("pasoServlet.jsp"); 
    } 
} /* end doPost() */  
} 

我的主要問題是,當我嘗試打印 「myJsonData」,版畫空的,我認爲它應該,但我不知道它爲什麼。

Description:This is the description 
Print:null 
+1

嗨chebeche,歡迎SO。具體問題是什麼? – Ben

+0

嘗試String descr = request.getParameter(「comment」)!= null?request.getParameter(「comment」):「」; String [] myJsonData = request.getParameterValues(「json []」)!= null?request.getParameterValues(「json []」):new String [] {「not found」};檢查我認爲你得到空指針異常。 – dev

+0

我的問題是,我得到參數「JSON」爲空。我認爲這個問題可能在.jsp中。 我試過Dev告訴我要做的事,但是我打印出「Print:[Ljava.lang.String; @ 23b5810f」 – chebeche

回答

0

嘗試改變

String[] myJsonData = request.getParameterValues("json[]"); 

String[] myJsonData = request.getParameterValues("json"); 
+0

這將返回所有請求參數的列表。不是'json'參數 – MaVRoSCy

+0

我認爲這工作正常,這就像複選框,我們可以使用相同的步驟。所以我認爲這是對的 – shivam