Мы обновляемся с jsf 1.2 до jsf 2. Мы используем apache myfaces 2.1 и rich faces 4.3.Передача параметра a4j: ajax
Ниже приведен код XHTML:
До миграции:
<h:selectBooleanCheckbox id="comp1" value="#{bean.select}">
<a4j:support event="onclick" ajaxSingle="true" actionListener="#{bean.processInput}" reRender="compId">
<f:param name="name" value="paramValue"/>
</a4j:support>
</h:selectBooleanCheckbox>
Мы передаем один параметр с и принимает параметр в методе ActionListener как: (String)context.getExternalContext().getRequestParameterMap().get("name1");
После миграции:
<h:selectBooleanCheckbox id="comp1" value="#{bean.select}">
<a4j:ajax event="click" listener="#{bean.processInput}" execute="@this" render="compId"/>
</h:selectBooleanCheckbox>
Я хочу передать пункт метр метода bean.processInput, который после подписания:
public void processInput(AjaxBehaviorEvent event){
Согласно этому сообщению - Issues in passing parameter in f:ajax, мы не можем использовать <f:param>
(ее не работает также), и мы не используем EL 2.2, которая исключает прохождение параметра в методе подпись.
Поскольку мы не можем использовать context.getApplication(). EvaluateExpressionGet из-за ограничения на нашей странице Xhtml только опция доступна использование <a4j:param name="" value="" assignTo=""/>.
Но это должно иметь один переменные, определенные в компоненте требуют изменений коды.
Итак, мой вопрос в том, можем ли мы передать параметр от UI к слушателю во втором случае и без изменения кода.
Это сработало, спасибо @Alexandre Lavoie – Atul