当前位置: 首页 > 面试题库 >

request.getParameterNames()的顺序

山鸿彩
2023-03-14
问题内容

如何以相同的顺序获取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
    }

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



 类似资料:
  • 问题内容: 有没有一种方法可以验证在Mockito中是否曾经调用过a? 问题答案: 帮助您做到这一点。

  • 问题内容: Javadoc 表示(重点是我): 该操作的行为明确地是不确定的。 对于并行流管道,此操作不能保证遵守流的遇到顺序 ,因为这样做会牺牲并行性的好处。对于任何给定的元素,可以在库选择的任何时间和线程中执行操作。如果操作访问共享状态,则它负责提供所需的同步。 Java 9 Early Access Javadoc中提供了相同的文本。 第一句话(“明确地不确定”)表明(但未明确说明)此方法未

  • 的Javadoc表示(强调是我的): 此操作的行为显式不确定。对于并行流管道,此操作不能保证尊重流的相遇顺序,因为这样做会牺牲并行性的好处。对于任何给定的元素,操作可以在库选择的任何时间和线程中执行。如果操作访问共享状态,则它负责提供所需的同步。 同样的文本也出现在Java9早期访问Javadoc中。 如果forEach不保留遭遇顺序,则会引入bug。在报告针对NetBeans的bug之前,我想知

  • 问题内容: 我有两张桌子。一个是在用户ID上带有主键的User表,另一个是使用外键引用该用户表的表。 “用户”表仅具有一个条目(目前),而另一个表则具有一百万个条目。 以下联接使我发疯: 在速度非常快的计算机上,查询耗时12秒,而排序的时间为0.0005秒,而没有排序的时间为0.0005秒。 我在user_id(IDX_14B78418A76ED395)上有一个索引,在user_id和upload

  • 问题内容: 我在语句中使用序列有问题。 给我一个错误: 00000-“此处不允许使用序列号” 原因:在此语句中,指定的序列号(CURRVAL或NEXTVAL)不合适。操作:删除序列号。 我做错了可能很明显,因此希望这是一个简单的答案。 问题答案: 您不能在带有的查询中使用序列。 删除或放入子查询中:

  • 问题内容: 如何在JavaFX中设置Z顺序? 问题答案: JavaFX中的Z顺序实际上是场景图中的顺序,例如。在场景的内容序列中(然后在组,容器等的内容中)。 所有节点还具有toFront()和toBack()函数以帮助更改此顺序。为了更好地控制,您必须从一个位置删除节点,然后按顺序将其插入较高或较低的位置。