request.getParameterNames()的顺序

如何以相同的顺序获取HTML表单中的所有parameterNames。

即,如果表单包含…。FirstName,LastName,MiddleName和Age。输出应该以相同的顺序出现

我尝试使用以下内容,但这会改变输出的顺序:

Enumeration paramNames = request.getParameterNames();

while(paramNames.hasMoreElements())

{

String paramName =

(String)paramNames.nextElement();

out.print(paramName);

}

回答:

我认为HTTP规范中没有任何内容可以强制浏览器按照它们在表单中出现的顺序发送参数。您可以通过在参数名称前添加数字来解决此问题,例如:

FirstName --> 0_FirstName

LastName --> 1_LastName

....

之后,您基本上可以按前缀对元素进行排序。这是一个丑陋的解决方案,但这是唯一的方法。就像是 …

//Assuming you fill listOfParameters with all the parameters.

Collections.sort(listOfParameters, new Comparator<String>() {

int compare(String a,String b) {

return Integer.getInt(a.substring(0,a.indexOf("_"))) - Integer.getInt(a.substring(0,b.indexOf("_")))

}

}

);

for (String param : listOfParameters) {

//traverse in order of the prefix

}

顺便说一句-接收参数的顺序真的很重要吗?

以上是 request.getParameterNames()的顺序 的全部内容, 来源链接: utcz.com/qa/405125.html

回到顶部