Primefaces p: commandlink в p: datatable дает неправильное значение

У меня есть таблица данных, которая состоит из списка имен, взятых из базы данных. Эти имена отображаются с помощью commandlink. Код показан ниже:

      <h:form id="formp">
              <p:dataTable id="listpat" var="p" value="#{loginBean.patient}"> 
                    <p:column> 
                        <p:commandLink value="#{p.firstname} #{p.lastname}" action="#     {loginBean.getPatientID(p.firstname)}" onclick="tabview.select(1);">
                        </p:commandLink>
                    </p:column>
              </p:dataTable>                  
      </h:form>

щелчок по командной ссылке вызывает метод getPatientID(p.firstname) в компоненте поддержки. Я понял, что имя в ссылке, по которой я нажимаю, не соответствует тому, что находится в компоненте поддержки. (например, имя, выбранное в командной ссылке, не совпадает с именем, полученным при передаче в вспомогательный компонент). Что может быть причиной? Как я могу это решить?

public void getPatientID(String fname) {
    System.out.println(fname);
}

person user1097856    schedule 22.09.2013    source источник
comment
Какую область вашего ManagedBean вы использовали?   -  person Diganta    schedule 22.09.2013
comment
SessionScope для моего управляемого компонента   -  person user1097856    schedule 22.09.2013
comment
вы можете попробовать добавить атрибут process="@this" к <p:commandLink> ?   -  person Diganta    schedule 22.09.2013
comment
попробовал, все та же проблема.   -  person user1097856    schedule 22.09.2013


Ответы (1)


<p:commandLink value="#{p.firstname} #{p.lastname}" action="#{loginBean.getPatientID(p.firstname)}" onclick="tabview.select(1);">
<f:setPropertyActionListener target="#{loginBean.patient.firstname}" value="#{p.firstname}"
                    </p:commandLink>

может это сработает

person tddiaz    schedule 22.09.2013