Jsf 如何在h:inputText中指定命令属性?

Jsf 如何在h:inputText中指定命令属性?,jsf,primefaces,Jsf,Primefaces,我有一个函数,我在我的管理器中Dercare beans,我想在inputText中返回值,但当我将我的函数名放入inputText标记的value属性时,如下所示: <p: inputText value = "#{ticketBean.getLastIndexTache} "/> 下面是java代码 @ManagedBean(name="ticketBean") public class TicketBean { public int getLastIndexTache()

我有一个函数,我在我的管理器中Dercare beans,我想在inputText中返回值,但当我将我的函数名放入inputText标记的value属性时,如下所示:

<p: inputText value = "#{ticketBean.getLastIndexTache} "/> 
下面是java代码

@ManagedBean(name="ticketBean") 
public class TicketBean {
public int getLastIndexTache() {
        Session session =  HibernateUtil.getSessionFactory().getCurrentSession();
            int index = 0;
            try {
                session.beginTransaction();
                String sql = "select MAX(t.IDTICKET) from ticket t ";
                Query query = session.createSQLQuery(sql);
                if( query.uniqueResult()==null){

                    index=0;
                }else{

                    index=(int) query.uniqueResult();
                    index=index+1;
                }
            } catch (HibernateException e) {
                // TODO: handle exception
                session.getTransaction().rollback();
                e.printStackTrace();
            }
                return index;
            }
}

您应该在value中使用bean属性,如

并在@PostConstruct方法中设置值:

@PostConstruct
public void init() {
    Session session =  HibernateUtil.getSessionFactory().getCurrentSession();
    // etc....
    lastIndexTache = index;
 }
然后,getter就是

public Integer getLastIndexTache() {
    return lastIndexTache;
}
别忘了一个二传手:

public void setLastIndexTache(Integer newValue) {
   lastIndexTache = newValue;
}

另外,您可能应该在bean上添加一个作用域,例如@ViewScoped。

我添加了所有更改,但仍然存在相同的问题:尝试重新启动服务器,记住ViewScoped注释必须来自正确的包我在类管理器的头中添加了注释视图作用域,它在重建后仍然有效吗?你能把错误贴出来吗?我看不出怎么会是同样的错误?您是否使用此包中的javax.faces.bean.viewscope?有关不良做法的详细信息,请参阅
@PostConstruct
public void init() {
    Session session =  HibernateUtil.getSessionFactory().getCurrentSession();
    // etc....
    lastIndexTache = index;
 }
public Integer getLastIndexTache() {
    return lastIndexTache;
}
public void setLastIndexTache(Integer newValue) {
   lastIndexTache = newValue;
}