今天下午被一个函数弄的头疼死了,
时这个函数:
 Enumeration vj = request.getParameterNames();
 for (int i = 0; i < 4; i++) {
    xz[i] =request.getParameter(String.valueOf(vj.nextElement()));
  }
 while(vj.hasMoreElements())
 {
   out.print(vj.nextElement());
 }
getParameterNames()有两个方法:一个是hasMoreElements()判断 Enumeration抽象类是否还有其他对象:
另一个是nextElement()返回 Enumeration抽象类中的下一个对象,同时“指针”向下移动一位(jsp中没有指针)
其实他的返回的对象并不是我想象的那样:重静态的html页面传回的name属性的对象并不是按顺序输出的:比如说静态页面的单选按钮组
an1,an2,an3....an10;
他是这样输出的:an10,an9.....an3,an2;
在比如静态页面的单选按钮组
an1,an2,an3....an10;
an11,an2,an13....an20;
an21,an2,an23....an30;
an31,an32,an33....an40;
他是这样输出的:
an9.....an3,an2;
an19.....an13,an12;
an29.....an23,an22;
an39.....an33,an32;
而且静态页面单选按钮未选中状态组如果是处于未选中状态,那么这个单选按钮组的name就不返回
我很郁闷,这到底是什么回事?
 

解决方案 »

  1.   

    按不按顺序无所谓吧...
    他是得到来自表单中的名字,就像MAP一样,只要根据名字得到值就OK了啊.要顺序干吗..
    如果单选按钮处于未选种状态,当然是没有值的。..
      

  2.   

    Returns an Enumeration of String objects containing the names of the parameters contained in this request. If the request has no parameters, the method returns an empty Enumeration. 看没说一定是按顺序的 还有就是参数得是包含于此次请求中
      

  3.   

    我做的是个在线测试的网站,然后根据传回来的值进行给分,调试了很多时间,老是不对,写了个test程序看看这个方法到底是怎么工作的,不看不知道,一看吓一跳
    我很郁闷
    这个jdk里面的方法怎么会这样!
    有遇到同样的问题吗
      

  4.   

    如果我做一个在线测试的jsp,需要对传回来的值进行一次处理,怎么办呢啊?
    这个jdk的方法这么做不是浪费我们时间啊?
    这个返回值的规律到底是什么意思啊?