我已经试着通过这个网站搜索,但也许我没有得到很好的理解。请对我的情况提出建议。
我使用Netbeans 7.3 + Primefaces + Hibernate。我想显示查询的一个列表。
我的查询已经在…没有错误显示,但显示不是我想要的(我认为它返回一个对象或其他东西,不确定)。
如果我遗漏了什么,请指正。
这是我的PtlLovBean
@ManagedBean(name = "ptlLovBean")
@SessionScoped
public class PtlLovBean implements Serializable {
private static final String FLIGHT = "LOV_FLIGHT";
private List lovFlight;
public List getLovFlight() {
PtlLovDao ptlLovDao = new PtlLovDaoImpl();
return ptlLovDao.getByKey(FLIGHT);
}
}
这是ptlLovDao
public interface PtlLovDao {
public List getByKey(String key);
}
这是PtlLovDaoImpl
public class PtlLovDaoImpl implements PtlLovDao {
@Override
public List getByKey(String key) {
Session session = HibernateUtil.getSessionFactory().openSession();
Query query = session.createQuery("from PtlLov where LOV_KEY = :param");
query.setParameter("param", key);
return query.list();
}
}
这是我的JSF:
<p:selectOneMenu id="flightName" value="#{wizard.user.selectedFlightName}">
<f:selectItem itemLabel="Select Flight" itemValue="" />
<f:selectItems value="#{ptlLovBean.lovFlight}" />
</p:selectOneMenu>
代码:
后显示对不起,我不能插入图片,所以这里是图像链接:http://i117.photobucket.com/albums/o56/po_se_for/PIC_zps88ec4983.png
您可以在PtlLov
类中重写toString
方法,也可以在f:selectItems
标记中定义itemValue
和itemLabel
属性。
像这样:
<f:selectItems value="#{ptlLovBean.lovFlight}" var="flight"
itemValue="#{flight}" itemLabel="#{flight.description}" />