![](/img/trans.png)
[英]equivalent for request.getParameterValues() in javascript
[英]How to use request.getParameterValues?
我正在嘗試使用隱藏表單將數組從一個jsp頁面傳遞到另一個頁面。
這是我的jsp文件的相關代碼。
<td style="vertical-align: top;"><button onclick="getPlayerNames()"id="generate">Generate</button><br></td>
<form id="playerNames" method="post" action="lineups.jsp">
<input type="hidden" id="players" />
</form>
<script>
function getPlayerNames(){
var selected = document.querySelectorAll("#selected-players > tr > td");
var playernames = [];
for(var i=0; i<selected.length; ++i){
//alert(selected[i].textContent);
var num = (i-1)%6;
if(num==0){
playernames.push(selected[i].textContent);
}
}
document.getElementById("players").values=playernames;
alert(document.getElementById("players").values);
document.getElementById("playerNames").submit();
}</script>
警報消息確實顯示正確的值被放置在“玩家”中
然后在我的lineup.jsp中,我有:
<%String[] s = request.getParameterValues("players");
System.out.println(s[0]);%>
我在'System.out.println(s [0]);'的行上得到一個空指針異常
沒有為輸入標簽指定name屬性,如果未指定name屬性,則不會發送任何值。
在您的情況下,因為players
元素僅指定一個,所以request.getParameter
和request.getParameterValues
返回相同的值。 當您使用request.getParameter
它將返回直接string
, request.getParameterValues
將返回長度為1
string[]
。
如果要發送多個玩家,並且不想在jsp中重復元素,請使用以下特殊字符來連接players
:
document.getElementById("players").value=playernames.join("::");
您可以在lineup.jsp
它作為字符串lineup.jsp
並可以使用相同的特殊字符將其拆分,如下所示:
<%
String players = request.getParameter("players");
String[] s = players.split("::");
%>
String []播放器= request.getParametervalues(“ nameOfTheHiddenField”);
請嘗試為隱藏字段指定一個名稱,它將起作用。
OK,s在這里為null,因此s[0]
拋出NullPointerException
如果有可能為任何輸入參數獲取多個值,則通常會使用方法getParameterValues()
,此方法將檢索所有值並將其作為字符串數組返回。
但是在您的情況下,我認為您只有一個值要提取,請使用request.getAttribute
並嘗試打印結果,即s而不是s [0]
一旦s不為null,就可以使用s [0]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.