能有人向我解釋爲什麼ServletRequest.getParameterMap()
返回一個類型ServletRequest.getParameterMap()返回Map <String,String []>和ServletRequest.getParameter()返回String?
Map<String, String[]>
ServletRequest.getParameter()
剛剛返回類型String
我不明白,爲什麼在地圖將永遠映射到一個以上的價值。 TIA。
能有人向我解釋爲什麼ServletRequest.getParameterMap()
返回一個類型ServletRequest.getParameterMap()返回Map <String,String []>和ServletRequest.getParameter()返回String?
Map<String, String[]>
ServletRequest.getParameter()
剛剛返回類型String
我不明白,爲什麼在地圖將永遠映射到一個以上的價值。 TIA。
它返回控件的所有參數值,其中的名稱與相同。
例如:
<input type="checkbox" name="cars" value="audi" /> Audi
<input type="checkbox" name="cars" value="ford" /> Ford
<input type="checkbox" name="cars" value="opel" /> Opel
或
任何檢查/選擇的值會在爲:
String[] cars = request.getParameterValues("cars");
它也是在表可選擇多個有用:
<table>
<tr>
<th>Delete?</th>
<th>Foo</th>
</tr>
<c:forEach items="${list}" var="item">
<tr>
<td><input type="checkbox" name="delete" value="${item.id}"></td>
<td>${item.foo}</td>
</tr>
</c:forEach>
</table>
結合
與
itemDAO.delete(request.getParameterValues("delete"));
如果您具有多值選擇控件(如多選列表或一組映射到相同名稱的按鈕),則多個選擇將映射到一個數組。
我不確定在按鈕的情況下是否看到該值。在體面的瀏覽器中,它只會返回**按下**按鈕的值,而不是**全部**按鈕的值。 – BalusC 2009-12-18 15:29:00
http://foo.com/bar?biff=banana&biff=pear&biff=grape
「一擊」現在映射到{"banana","pear","grape"}
在具有多值的控制(複選框,多選等)時,request.getParameterValues(..)
用於取的值的情況。
真正的函數來獲取所有參數值是
request.getParameterValues();
getParameter()
僅僅是一個捷徑來獲得第一個。
感謝您的反饋。它現在非常有意義。有時很容易錯過顯而易見的東西。我想這就是這個網站如果:)。 – BillMan 2009-12-18 15:19:33