Передача языка выражения в качестве параметра в jsp [duplicate]

Вот моя совместимая с Python 2/3 версия. Поскольку перевод api изменился.

def remove(str_, chars):
    """Removes each char in `chars` from `str_`.

    Args:
        str_: String to remove characters from
        chars: String of to-be removed characters

    Returns:
        A copy of str_ with `chars` removed

    Example:
            remove("What?!?: darn;", " ?.!:;") => 'Whatdarn'
    """
    try:
        # Python2.x
        return str_.translate(None, chars)
    except TypeError:
        # Python 3.x
        table = {ord(char): None for char in chars}
        return str_.translate(table)
2
задан BalusC 23 December 2012 в 02:52
поделиться

1 ответ

Вы смешиваете скрипты и EL и ожидаете, что они будут запускаться «синхронно». Это просто не сработает. Один из способов написания JSPs и - это старый способ записи JSP . Вы должны использовать тот или иной, а не оба.

Возвращаясь к конкретному вопросу, под капотами EL разрешает переменные с помощью PageContext#findAttribute() . Так что просто сделайте точно то же самое в scriptlets .

Frage frage = (Frage) pageContext.findAttribute("frage");
session.setAttribute("korrekteAntwort", frage.getKorrekteAntwort());

Однако, как сказано, это старый способ использования JSP и не обязательно «лучший» способ для функциональное требование, которое вы имели в виду, но ничего не сообщило о . Современный JSP-метод будет использовать JSTL <c:set>:

<c:set var="korrekteAntwort" value="${frage.korrekteAntwort}" scope="session" />

Это будет доступно в области сеанса как ${korrekteAntwort} из этой строки, что является именно тем, что строка scriptlet делает.

8
ответ дан Community 26 August 2018 в 15:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: