Cn мы сможем использовать язык выражений для renderRequest.getPreferences().getValue().
В настоящее время я использую скрипты на странице jsp, и я хочу избежать скриптлетов.
renderRequest на языке выражений
Ответы (1)
Если вы используете EL 2.2 или выше, выражения этой формы должны работать:
${request.getPreferences().getValue('foo', 'some default')}
Как правило, это доступно только на платформах Java EE 6.
В более ранних версиях вы должны иметь возможность использовать такое выражение:
${request.preferences.map['foo']}
Обратите внимание, что это вернет массив а>. Если вам нужно одно значение, вам может потребоваться использовать уровень косвенности.
Предостережение: ни один из этих кодов не тестировался.
person
McDowell
schedule
03.08.2012
Я использую ‹%@ taglib uri=java.sun.com/jsp/jstl/core prefix=c%› ‹%@ taglib uri=java.sun.com/jsp/jstl /fmt prefix=fmt%› и я не думаю, что это 2.2.
- person user525146; 04.08.2012
@user525146 user525146 - Если вы используете версию до WebSphere Application Server 8, возможно, у вас ее нет.
- person McDowell; 04.08.2012
+1. И подтверждение: работает. У меня есть два дополнения. 1) начиная с версии 2.0 Portlet можно получить доступ к portletPreferences прямо в JSP (при условии, что
<portlet:defineObjects />
было объявлено в этом JSP), например: ${portletPreferences.getValue('foo', 'some default')}
. Полный список объектов, доступных для JSP sinve версии 2.0, можно увидеть здесь (вместе со сравнением с предыдущей версией): JSR286: тег defineObjects (переменные доступны в JSP).
- person informatik01; 09.04.2014
2) Для полноты: чтобы получить конкретное значение, используя второе решение (карту), можно сослаться на возвращаемый массив, например:
${portletPreferences.map['foo'][0]}
. Может быть, это и очевидно, но опять же — на всякий случай.
- person informatik01; 09.04.2014