如何在JSF中编辑数据库表
我有一个id为、firstName、lastName属性为公共getter和setter的bean类,还有一个updateEmployee方法 我使用下面的jsf页面来获取数据库表值 当我点击更新按钮时,会显示成功页面,但数据库中的值不会改变。有谁能告诉我为什么淡水河谷公司的数据库没有变化 提前谢谢 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
<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);