从会话中获取会话变量

发布于 2024-11-04 21:33:17 字数 469 浏览 1 评论 0原文

当我编译以下代码时出现以下错误

Enumeration e = bean.getSession().getAttributeNames(); 
        while (e.hasMoreElements()) { 
        String name = (String)e.nextElement(); 
        String value = session.getAttribute(name).toString(); 
        System.out.println(name + " = " + value); 

Error:
found   : java.util.Iterator
required: java.util.Enumeration
        Enumeration e = bean.getSession().getAttributeNames(); 

I am getting the below error when I compile the below code

Enumeration e = bean.getSession().getAttributeNames(); 
        while (e.hasMoreElements()) { 
        String name = (String)e.nextElement(); 
        String value = session.getAttribute(name).toString(); 
        System.out.println(name + " = " + value); 

Error:
found   : java.util.Iterator
required: java.util.Enumeration
        Enumeration e = bean.getSession().getAttributeNames(); 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

护你周全 2024-11-11 21:33:18

我认为问题出在第一行。这对我有用:

<%
    Enumeration attrs = session.getAttributeNames(); //you will need to include java.util.Enumeration
    while(attrs.hasMoreElements()){ //for each item in the session array
        String id = attrs.nextElement().toString(); //the name of the attribute
        out.print("'" + id + "': '" + session.getAttribute(id) + "'"); //print out the key/value pair
    }
%>

正如其他人指出的那样,你应该使用迭代器

I think the problem is in the first line. This works for me:

<%
    Enumeration attrs = session.getAttributeNames(); //you will need to include java.util.Enumeration
    while(attrs.hasMoreElements()){ //for each item in the session array
        String id = attrs.nextElement().toString(); //the name of the attribute
        out.print("'" + id + "': '" + session.getAttribute(id) + "'"); //print out the key/value pair
    }
%>

As others pointed out though, you should be using an Iterator

薄情伤 2024-11-11 21:33:17

您不应该使用枚举,它应该是迭代器。然后使用迭代器的方法,如 hasNext() 来检查是否有下一个项目,使用 next() 来获取下一个项目。希望它有帮助:)

You shouldn't be using an enumeration, it should be an Iterator. Then use the methods of the Iterator like hasNext() to check if there is a next item and next() to get the next item. Hope it helps :)

窝囊感情。 2024-11-11 21:33:17

只使用 for 循环怎么样?

for (String name : bean.getSession().getAttributeNames() ) {
    String value = session.getAttribute(name).toString();
    System.out.println( name + " = " + value );
}

how about just using a for loop?

for (String name : bean.getSession().getAttributeNames() ) {
    String value = session.getAttribute(name).toString();
    System.out.println( name + " = " + value );
}
时光匆匆的小流年 2024-11-11 21:33:17

看起来您实际上正在使用返回 java.util.Iterator 实例的 getAttributeNames() 方法。因此,作为快速修复,这应该可行:

Iterator it = bean.getSession().getAttributeNames(); 
while (it.hasNext()) { 
    String name = (String)it.next(); 
    String value = session.getAttribute(name).toString(); 
    System.out.println(name + " = " + value);

如果我们知道 bean 变量的实际类型和/或 bean.getSession()< 的返回值,则可以提供更多帮助/信息/代码>。

It looks like you're actually using a getAttributeNames() method that return an instance of java.util.Iterator. So as a quick fix, this should work:

Iterator it = bean.getSession().getAttributeNames(); 
while (it.hasNext()) { 
    String name = (String)it.next(); 
    String value = session.getAttribute(name).toString(); 
    System.out.println(name + " = " + value);

More help/info could be provided if we knew the actual types of the bean variable and/or the return value of bean.getSession().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文