Методы вызова с параметрами по EL в JSF 1.2 - PullRequest
6 голосов
/ 30 ноября 2011

Я использую данные, и для каждой строки у меня есть две кнопки: «Редактировать» и «Удалить».

Мне нужно, чтобы эти кнопки были доступны только для чтения, т.е. отключены, если определенное условиевстречается для рассматриваемой строки.В JSF 2 я видел, что можно передавать параметры в вызовы методов.Есть ли что-нибудь эквивалентное в JSF 1.2?

В идеале мне бы хотелось, чтобы это было примерно так (переменная цикла - loop , и есть еще один компонент, helper , который содержитметод, который я хотел бы вызвать):

<h:commandButton value="Edit"
                   disabled="#{helper.isEditable(loop.id)}" />

В этом случае не имеет смысла семантически добавлять атрибут isEditable к бобу, и создавать оболочку нецелесообразноОбъект вокруг боба.

Заранее спасибо.

1 Ответ

8 голосов
/ 30 ноября 2011

Я видел в JSF 2, что можно передавать параметры в вызовы методов. Есть ли что-нибудь эквивалентное в JSF 1.2?

Передача параметров в вызовы методов не специфична для JSF 2. Это специфично для EL 2.2, который, в свою очередь, является частью JSP 2.2 / Servlet 3.0 / Java EE 6. JSF 2 просто оказывается часть Java EE 6, а также. Другими словами, если вы развернете свое веб-приложение JSF 1.2 в контейнере, совместимом с Servlet 3.0, таком как Tomcat 7, Glassfish 3 и т. Д., И ваш web.xml будет объявлен в соответствии со спецификацией версии Servlet 3.0, то он просто отработает коробку для JSF 1.х также.

Если вы все еще нацеливаетесь на контейнер более старой версии сервлета, то вам нужно предоставить другую реализацию EL, которая поддерживает вызов методов с аргументами. Одна из этих реализаций - JBoss-EL , которую можно установить, просто поместив файл jboss-el.jar в /WEB-INF/lib вашего веб-приложения и добавив следующий параметр контекста в web.xml , Вот пример, характерный для Мохарры ( Мохарра - это кодовое имя JSF RI):

<context-param>     
    <param-name>com.sun.faces.expressionFactory</param-name>
    <param-value>org.jboss.el.ExpressionFactoryImpl</param-value>   
</context-param>

Если вы используете MyFaces в качестве реализации JSF, вам потребуется следующий контекстный параметр:

<context-param>
    <param-name>org.apache.myfaces.EXPRESSION_FACTORY</param-name>
    <param-value>org.jboss.el.ExpressionFactoryImpl</param-value>   
</context-param>

Смотри также:

...