如何在JSF中编辑数据库表

如何在JSF中编辑数据库表,jsf,jdbc,datatable,jsf-2,Jsf,Jdbc,Datatable,Jsf 2,我有一个id为、firstName、lastName属性为公共getter和setter的bean类,还有一个updateEmployee方法 我使用下面的jsf页面来获取数据库表值 当我点击更新按钮时,会显示成功页面,但数据库中的值不会改变。有谁能告诉我为什么淡水河谷公司的数据库没有变化 提前谢谢 JSF页面: <h:dataTable value="#{tableBean.employeeList}" var="employee" border="1"> <h:col

我有一个id为、firstName、lastName属性为公共getter和setter的bean类,还有一个updateEmployee方法

我使用下面的jsf页面来获取数据库表值

当我点击更新按钮时,会显示成功页面,但数据库中的值不会改变。有谁能告诉我为什么淡水河谷公司的数据库没有变化

提前谢谢

JSF页面:

<h:dataTable value="#{tableBean.employeeList}" var="employee" border="1">
   <h:column>
          <f:facet name="header">First name</f:facet>
          <h:inputText value="#{employee.firstName}" />
   </h:column>

   <h:column>
          <f:facet name="header">Last name</f:facet>
          <h:inputText value="#{employee.lastName}" />
   </h:column>
</h:dataTable>
<h:commandButton value = "update" action="#{employee.updateEmployee}"/>

如果在支持bean中有相应的属性,则会自动绑定值

为了更新bean值,您必须提交数据。在表单中添加commandButton或commandLink,如下所示:

<h:form>
 <h:dataTable> ... </h:dataTable>
 <h:commandButton value="Submit" action="tableBean.actionMethod">
</h:form>

... 

查询中只有两个参数占位符,但稍后将引用第2个和第3个参数:

pstmt.setString(2,this.firstName);
pstmt.setString(3,this.lastName); 

@谢谢回复,我已经编辑了问题,请再次检查。我强烈建议开始使用调试器。在
updateEmployee
方法的第一行设置一个断点,然后逐步执行。检查每个步骤后所有变量的状态。代码中有一些可疑的部分,例如表单包含输入字段id,而查询的id设置为“1”。catch/finally块看起来很奇怪。我希望这不是生产代码。了解
System.exit(1)
和您的web应用程序发生了什么是很有趣的。。。服务器将退出吗?;-)。。。。。刚刚测试:是的,服务器关闭。这是一个DB/JDBC问题。请将JSF逻辑与数据访问逻辑分离。使用
main()
方法创建一个独立的Java程序,在其中执行纯JDBC任务,并将其作为问题代码段提供。
pstmt.setString(2,this.firstName);
pstmt.setString(3,this.lastName);