0

我对 JSF 和 Hibernate 很陌生,我找到了一些教程,我几乎理解了所有内容,但是有一些非常简单的东西我还没有理解,我自己无法意识到如何去做;

1.This is my html page

 <h:panelGrid columns="2">
   <h:outputLabel value="Title:"/>
   <h:inputText value='#{Activity.title}' />
 </h:panelGrid>

2.This is my save method at activityController

public void saveActivity(String title){
    Session session = HibernateUtil.getSessionFactory().openSession();
    Transaction transaction = null;

    try {
        transaction = session.beginTransaction();
        Activity activity = new Activity(title);
        session.save(activity);
        transaction.commit();
    } catch (HibernateException e) {
        transaction.rollback();
    }finally{
        session.close();
    }
}

我的疑问是:如何获取用户在 HTML 页面的 OutputText 中键入的内容并将其发送到我的 saveActivity 方法?

4

1 回答 1

2

您需要一个表单和一个提交按钮:

<h:form>
<h:panelGrid columns="2">
   <h:outputLabel value="Title:"/>
   <h:inputText value='#{activityBean.title}' />
 </h:panelGrid>
<h:commandButton action="#{activityBean.saveActivity()}" value="Save" />
</h:form>

然后,要么使你的控制器成为一个带有注解 @SessionScoped @ManagedBean(name = "activityBean") 的托管 Bean,要么为它使用一个类并给它一个对你的控制器的引用。

祝你好运 :)

于 2012-12-15T22:48:15.217 回答