【问题标题】:JPS useBean with HashMapJPS useBean 与 HashMap
【发布时间】:2011-03-16 20:56:22
【问题描述】:

如何正确使用 jsp:useBean 和 Lists 和 Maps 等集合?

我可以通过使用获取列表

    type="List<MyObject>"

但如果没有传递任何内容,我无法让 List 实例化。

    class="ArrayList<MyObject>"

而且上面的属性报错:

useBean类属性ArrayList&lt;MyObject>的值无效。

对于 HashMap,这两个属性都失败了。

目前,我正在使用 getAttribute() 读取对象,但使用标签并设置它们会更简洁。

【问题讨论】:

    标签: java jsp servlets javabeans


    【解决方案1】:

    你试过了吗

    class="java.util.ArrayList"
    

    请记住,实际类型名称不包括泛型类型,这是 Java 语言本身使用的语法糖,&lt;jsp:useBean&gt; 不是 Java 语言的一部分。

    【讨论】:

    • 我猜我的措辞不清楚。我对我的帖子进行了一些编辑。类属性是引发错误的属性。 type 属性适用于列表,但如果传递了 null,则不会实例化列表。
    • @manu101:是的,但是class="ArrayList&lt;MyObject&gt;" 无效,因为ArrayList&lt;MyObject&gt; 不是有效类型。类型为java.util.ArrayList
    • @manu1001,斯卡夫曼完全正确。我只是想补充一下,如果您不需要在列表中设置项目(顺便说一下,无法使用jsp:c: 标签)并且当您使用它访问它时,jsp:useBean 是多余的纯 EL(例如 ${foo} 等)。除非出于纯粹的文档或 IDE 支持目的,否则您可以离开 jsp:useBean 行。
    • 好的,知道了。它现在适用于列表。但是 HashMap 呢?同样行不通。基本上,我想知道如何使用 useBean 标记从请求范围中读取 HashMap
    • @manu1001:如果java.util.ArrayList 有效,那么java.util.HashMap 也会有效
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-23
    • 2015-03-31
    • 2014-10-23
    相关资源
    最近更新 更多