Мне грозит проблема с передачей объекта на бэк-файл из actionListener
в commandLink. У меня есть фасоль MeasureBean
и файл xhtml
, в котором используется компонент.Pass <p: selectOneListbox var = "ch"> в качестве аргумента <h: commandLink action>
В XHTML у меня есть:
<p:selectOneListbox var="ch">
<f:selectItems value="#{MeasureBean.checkpoints}" var="cp" itemValue="#{cp}" />
<p:column>
<h:outputText value="#{ch.name}" />
</p:column>
<p:column>
<h:commandLink actionListener="#{MeasureBean.onCheckpointRemoved(ch)}">
<h:graphicImage library="#{ctx.theme}" name="images/delete.gif" />
<f:ajax event="click" />
</h:commandLink>
</p:column>
</p:selectOneListbox>
В боба у меня метод:
public void onCheckpointRemoved(Checkpoint viewCheckpoint) {
System.out.println(viewCheckpoint);
// TODO
}
Проблема заключается в том, что независимо от whethert я использую тег <f:ajax>
или нет, параметр viewCheckpoint метода в bean-компоненте всегда равно нулю. Мне нужно передать этот параметр в bean-компонент. Он не должен быть целым объектом, ему разрешено передавать только идентификатор контрольной точки. То, что я пробовал, было:
<h:commandLink actionListener="#{MeasureBean.onCheckpointRemoved(cp)}">
(cp
вместо ch
). Но никакой разницы.
Пожалуйста, помогите,
Матеуш
Спасибо Pellizon. Я попробовал ваше предложение, но теперь он не отображает его содержимое. В коробке нет предметов. Я думаю, что тег '' необходим в определении списка. –
Проверьте ответ еще раз! Теперь это немного более точный снимок :) – Pellizon
Спасибо! Точно так же, как я это сделал, не так ли? Единственная разница - это значение и наличие конвертера ... Редактировать: Мне удалось решить проблему с помощью JS «взломать». Я добавил '', на который я установил значение с JS на событие click, а затем вызываю метод bean-компонента. ' ' Теперь это работает как шарм –