Вопрос

Я использую Eclipse 3.6.2 (Helios), Tomcat 7, Myfaces 1.2.9

У меня нет проблем, когда я использую F: Param в H: CommandLink, но когда я помещаю F: Param в H: Commandbutton, это не работает. в чем проблема ?

Этот образец работает нормально:

<h:commandLink value="Click here" action="#{myBean.action}">
<f:param name="parameterName1" value="parameterValue1" />
<f:param name="parameterName2" value="parameterValue2" />
</h:commandLink>

Но это не так

<h:commandButton value="Click here" action="#{myBean.action}">
<f:param name="parameterName1" value="parameterValue1" />
<f:param name="parameterName2" value="parameterValue2" />
</h:commandButton>
Это было полезно?

Решение

В JSF 1.x, <f:param> поддерживается только в <h:commandLink>, <h:outputLink> а также <h:outputFormat>, не в <h:commandButton>. Анкет Эта поддержка только в JSF 2.0 и новее.

У вас есть как минимум 4 варианта:

  1. Использовать <h:commandLink> вместо. При необходимости используйте CSS, чтобы стилизовать его, чтобы выглядеть как кнопка. Смотрите также пример также Jsf commandbutton url параметры.

  2. Использовать <f:attribute> или же <f:setPropertyActionListener> вместо. Смотрите также Коммуникация в JSF.

  3. Передать их в качестве аргументов метода action="#{myBean.action('param1', 'param2')}". Анкет Tomcat 7 - это контейнер Servlet 3.0, который поддерживает EL 2.2, который, в свою очередь, поддерживает аргументы прохождения метода. Вам нужно только убедиться, что ваш web.xml Объявлено Сервлет 3 3.0. Смотрите также Вызывая методы с параметрами EL в JSF 1.2.

  4. Обновите до JSF 2.0. Он предлагает столько преимуществ по сравнению с JSF 1.x. Смотрите также Мигрирование с JSF 1,2 в JSF 2.0 а также Коммуникация в JSF 2.0.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top