访问JSP中的字符串集合(应用程序范围与会话范围)

时间:2012-01-29 18:53:06

标签: java jsp enums scope

好的,基本上我有一个枚举:

public enum A {

    A, B, C, D;

    public static final Collection<String> displayColl = createDisplay();
    private static Collection<String> createDisplay() {
        // Convert enum to acceptable String display magic here... 
        return ImmutableCollection.copyOf(string collection);  
    }
}

我想在JSP上访问此集合作为菜单选项。我有以下四个选项,想知道我应该使用哪一个以及如何...

  1. 将集合放在ServletContext属性中,并通过调用${application.StringDisplayCollection}在jsp上访问它。

  2. 在需要时删除集合的不可变副本并将其存储在会话中,然后通过会话范围在jsp上访问它。

  3. 将集合转换为JSON,并在页面加载时通过ajax获取它。

  4. 一些很酷的方式我没有想到会更好和/或更简单......

  5. 谢谢你,如果你需要任何澄清,请告诉我。

2 个答案:

答案 0 :(得分:0)

建议:将集合放在ServletContext属性中,并通过调用$ {application.StringDisplayCollection}在jsp上访问它。

不在会话范围内,因为这不会在每个用户/会话的基础上更改。

答案 1 :(得分:0)

使用String输入(类名)和Collection结果编写静态方法,然后在.tld文件中将静态方法定义为EL函数。所以你可以这样: $ {fx:enumItems('EnumFullyQuallifiedClassName')}