2013-09-22 2 views
0

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

 <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> 

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

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

Какой объем ваших ManagedBean вы использовали? – Diganta

+0

SessionScope для моего управляемого компонента – user1097856

+0

вы можете попробовать добавить атрибут 'process =" @ this "' to ''? – Diganta

ответ

0
<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> 

может быть, это будет работать

Смежные вопросы