Java Primefaces数据表中的排序不起作用
排序在Primefaces datatable中不起作用。显示了我的jsf代码。我们需要在backingbean中做任何事情才能使它起作用吗Java Primefaces数据表中的排序不起作用,java,google-app-engine,jsf-2,primefaces,Java,Google App Engine,Jsf 2,Primefaces,排序在Primefaces datatable中不起作用。显示了我的jsf代码。我们需要在backingbean中做任何事情才能使它起作用吗 <p:dataTable id="employees" value="#{employeeList.employees}" var="employee" emptyMessage="No Employees found" rows="10" paginator="true" paginatorTemplate="{Cur
<p:dataTable id="employees" value="#{employeeList.employees}"
var="employee" emptyMessage="No Employees found" rows="10"
paginator="true"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,15" rowIndexVar="rowIndex">
<p:column sortBy="#{employee.firstName}">
<f:facet name="header">
<h:outputText value="First Name" />
</f:facet>
<h:outputText value="#{employee.firstName}">
</h:outputText>
</p:column>
<p:column sortBy="#{employee.lastName}">
<f:facet name="header">
<h:outputText value="Last Name" />
</f:facet>
<h:outputText value="#{employee.lastName}" />
</p:column>
</p:dataTable>
我的Primefaces版本是3.0.M3,带有JSF2和谷歌云SQL
EmployeeList.java:
public List<Employee> getEmployees() throws HibernateException, SQLException {
List<Employee> employees = new ArrayList<Employee>();
employees.addAll(empList());
}
public List getEmployees()抛出HibernateeException,SQLException{
List employees=new ArrayList();
employees.addAll(employist());
}
其中,在empList()中,我编写了检索所有雇员的查询,并返回所有雇员
EmployeeList.java
@Component("employeeList")
@SessionScoped
@Repository
public class newb implements Serializable {
private static final long serialVersionUID = -2417394435764260084L;
public static HibernateTemplate hibernateTemplate;
@Autowired
public void setSessionFactory(SessionFactory sessionFactory)
{
this.hibernateTemplate = new HibernateTemplate(sessionFactory);
}
public List<Employee> getEmployees() throws HibernateException, SQLException {
List<Employee> employees = new ArrayList<Employee>();
employees.addAll(empList());
return employees;
}
@SuppressWarnings("unchecked")
public List<Employee> empList() {
try
{
List <Employee> result = hibernateTemplate.find("from Employee");
return result;
}
finally {
//close the session and user-supplied JDBC connection
}
}
}
@组件(“员工列表”)
@会议范围
@存储库
公共类newb实现了可序列化{
私有静态最终长serialVersionUID=-2417394435764260084L;
公共静态HibernateTemplate HibernateTemplate;
@自动连线
public void setSessionFactory(SessionFactory SessionFactory)
{
this.hibernateTemplate=新的hibernateTemplate(sessionFactory);
}
public List getEmployees()引发HibernateeException,SQLException{
List employees=new ArrayList();
employees.addAll(employist());
返回员工;
}
@抑制警告(“未选中”)
公共列表雇员列表(){
尝试
{
列表结果=hibernateTemplate.find(“来自员工”);
返回结果;
}
最后{
//关闭会话和用户提供的JDBC连接
}
}
}
试试这个:
private List<Employee> employees = new ArrayList<Employee>();
public List<Employee> getEmployees() {
if(employees.isEmpty()){
employees.addAll(empList());
}
return employees;
}
private List employees=new ArrayList();
公开名单{
if(employees.isEmpty()){
employees.addAll(employist());
}
返回员工;
}
试试这个:
private List<Employee> employees = new ArrayList<Employee>();
public List<Employee> getEmployees() {
if(employees.isEmpty()){
employees.addAll(empList());
}
return employees;
}
private List employees=new ArrayList();
公开名单{
if(employees.isEmpty()){
employees.addAll(employist());
}
返回员工;
}
如果在get中填充了列表,则它将不起作用。如果每次在get中填充列表,则“排序它”素数面将不起作用。相反,尝试将bean的viewscope设置为,并在构造函数中填充列表,这样应该可以工作。如果在get中填充列表,则不会工作。如果每次在get中填充列表,则“排序它”素数面将不起作用。取而代之的是,尝试将bean视图范围设置为可访问的,并在构造函数中填充列表,这样应该可以工作。如果尝试单击排序按钮,会发生什么情况?您的
标记是否在
中?单击排序箭头/列标题,对信息没有影响。是,它在
中。我用PrimeFaces 3.0.M3在GlassFish 3.1上编译您的代码,效果很好。如果您尝试单击排序按钮会发生什么?您的
标记在
中吗?单击排序箭头/列标题,对信息没有影响。是,它位于
中。我使用PrimeFaces 3.0.M3在GlassFish 3.1上编译了您的代码,并且运行良好。当employees.addAll(empList())时,它会导致空指针异常代码>在构造函数中。`无法实例化bean类[com.fetchinglife.application.modules.employee.view.EmployeeList]:构造函数引发异常;嵌套的异常是java.lang.NullPointerException`显示完整的EmployeeList类代码>从getEmployees
到顶部,如您所说,然后列表项被复制,控制台显示程序连续运行而不停止,随后出现一个错误,如,无法打开连接
。这很奇怪,因为当employees为空时,您只调用一次employees()。当employees.addAll时,它会导致空指针异常(employist());
在构造函数中。`无法实例化bean类[com.fetchinglife.application.modules.employee.view.EmployeeList]:构造函数引发异常;嵌套异常为java.lang.NullPointerException`显示完整的EmployeeList类。当我替换List employees=new ArrayList()时
从getEmployees
到顶部,如您所说,然后列表项被复制,控制台显示程序连续运行而不停止,随后出现一个错误,如,无法打开连接。
。这很奇怪,因为您只调用了一次empList()当员工为空时。如果我们使用CDIBeans呢?如果我们使用CDIBeans呢?