我有一个带有数据表的页面,该页面必须显示有关邮箱对象的各种信息。这些信息之一是邮箱的所有者,它由其 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();
}
}
谢谢你们!