如何使用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]);’的行上得到一个空指针异常

回答:

  1. 没有为输入标签指定name属性,如果未指定name属性,则不会发送任何值。

  2. 在您的情况下request.getParameterrequest.getParameterValues返回相同的值,因为playerselement仅指定了一个。使用request.getParameter时将直接返回stringrequest.getParameterValues将返回string[]length 1

如果您想派遣多个玩家并且不想在jsp中重复元素,请players使用以下特殊字符来连接该字符:

document.getElementById("players").value=playernames.join("::");

您可以将as作为字符串输入,lineup.jsp并可以使用相同的特殊字符将其拆分,如下所示:

<%

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

String[] s = players.split("::");

%>

以上是 如何使用request.getParameterValues? 的全部内容, 来源链接: utcz.com/qa/420450.html

回到顶部