2016-07-31 113 views
1

我搜索了多個地方,但無法完全找到我所需要的。我是servlets和html的新手,很確定我缺少一些簡單的東西。如何檢索一個java servlet中的參數

我有一個它的servlet servletA的doGet,我做了以下內容:

response.setContentType("text/html"); 

PrintWriter out = response.getWriter(); 
StringBuilder sb = new StringBuilder(); 
sb.append("<html><head></head><body>"); 
sb.append("<div><select name=\"thisparameter\">"); 
ArrayList<A> list = helper.getList(); 
sb.append("<option value=\"select\">Select an option</option>"); 
for (int i=0; i<list.size(); i++) { 
    A a = list.get(i); 
    sb.append("<option value="+ a.getYear()+">" + a.getName() + "</option>"); 
} 
sb.append("</select>"); 
sb.append("<form action=\"servletB\" method=\"GET\">\n" + 
" <button type=\"submit\">Go</button>\n" + 
"</form></div>"); 

sb.append("</body>"); 
sb.append("</html>"); 
out.println(sb.toString()); 
out.close(); 

在servletB的doGet()

PrintWriter out = response.getWriter(); 
StringBuilder sb = ServletHelper.getHeaderHtml(); 

response.setContentType("text/html"); 

String thisparameter = request.getParameter("thisparameter"); 

字符串thisparameter總是空。我嘗試使用POST並得到相同的結果。我真的只想使用servlet,而不是與JSP的組合。任何幫助將不勝感激。謝謝。

回答

0

您的select需要在form之內才能夠提交給servlet。要做到這一點,請像這樣改變你的代碼。

PrintWriter out = response.getWriter(); 
StringBuilder sb = new StringBuilder(); 
sb.append("<html><head></head><body>"); 
sb.append("<form action=\"servletB\" method=\"GET\">"); 
sb.append("<div><select name=\"thisparameter\">"); 
ArrayList<A> list = helper.getList(); 
sb.append("<option value=\"select\">Select an option</option>"); 
for (int i=0; i<list.size(); i++) { 
    A a = list.get(i); 
    sb.append("<option value="+ a.getYear()+">" + a.getName() + "</option>"); 
} 
sb.append("</select>"); 
sb.append("<button type=\"submit\">Go</button>\n" + 
"</form></div>"); 

sb.append("</body>"); 
sb.append("</html>"); 
out.println(sb.toString()); 
out.close(); 
+0

**謝謝!!! ** – user2237511

+0

@ user2237511如果它適用於您,您是否可以將答案標記爲已接受? –

+0

是的,我的意思是,這是過早接受不斷告訴我嘗試一段時間後:) – user2237511

相關問題