メールボックスオブジェクトに関するさまざまな情報を表示する必要があるデータテーブルのあるページがあります。これらの情報の1つは、メールボックスオブジェクトのIDによって保存されるメールボックスの所有者です。出力では、メールボックスオブジェクトによってユーザー名を取得するバッキングBeanのメソッドでこれを解決しました。入力では、pojoでオートコンプリートを使用することを考えましたが、これをどのように行うかを正確に理解することはできません。
私のjsfページ:
<p:dataTable id="dataTable" value="#{bean.mailboxes}" var="m" editable="true">
<!-- other table -->
<p:column headerText="Owner">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{bean.userByMailbox(m)}" />
</f:facet>
<f:facet name="input">
<!-- here comes autocomplete -->
</f:facet>
</p:cellEditor>
</p:column>
</p:dataTable>
そして私の豆:
public class Bean {
// Other properties and methods
List<Mailbox> mailboxes;
public List<Mailbox> getMailboxes() {
if (mailboxes == null) {
Query q = em.createNamedQuery("Mailbox.findAll");
mailboxes = q.getResultList();
}
return mailboxes;
}
public User getUserByMailbox(Mailbox m) {
Query q = em.createNamedQuery("User.findByUsrId");
q.setParameter("usrId", m.getUsrId());
return (User)q.getSingleResult();
}
}
皆さん、ありがとうございました!