Доступ к коллекции строк в JSP (область приложения и область сеанса) - PullRequest
0 голосов
/ 29 января 2012

Хорошо, поэтому в основном у меня есть перечисление:

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 и получите доступ к ней в jsp с помощьювызов ${application.StringDisplayCollection}.

  2. При необходимости извлекайте неизменную копию коллекции и сохраняйте ее в сеансе, а затем обращайтесь к ней в jsp через область сеанса.

  3. Преобразование коллекции в JSON и получение ее через ajax при необходимости при загрузке страницы.

  4. Какой-нибудь крутой способ, о котором я даже не думал, будетлучше и / или проще ...

Спасибо и дайте мне знать, если вам нужны какие-либо разъяснения.

Ответы [ 2 ]

0 голосов
/ 30 января 2012

Напишите статический метод с входными данными String (имя класса) и результатом Collection, затем определите ваш статический метод как функцию EL в файле .tld. Таким образом, вы можете получить что-то вроде: $ {fx: enumItems ('EnumFullyQuallifiedClassName')} .

0 голосов
/ 29 января 2012

Предложение: Поместите коллекцию в атрибут ServletContext и получите доступ к ней в jsp, вызвав $ {application.StringDisplayCollection}.

Не в области сеанса, поскольку это не изменяетсядля каждого пользователя / сеанса.

...