Jsf 如何在h:inputText中指定命令属性?
我有一个函数,我在我的管理器中Dercare beans,我想在inputText中返回值,但当我将我的函数名放入inputText标记的value属性时,如下所示: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()
<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;
}