JSF 提交后只刷新页面不执行绑定的后台方法

来源:百度知道 编辑:UC知道 时间:2024/06/03 12:27:12
用JSF做了个页面,有个dataTable,value绑定后台一个数组,对应的get方法是从数据库中读取相关数据,赋值给数组,再将数组返回。dataTable每一行有一个删除按钮,绑定后台删除方法,点击按钮则删除对应行的数据。现在的问题是我点击删除按钮后只是刷新一下页面就完了,根本就没执行删除方法
我给dataTable和delete都放了message,没出问题,页面就这么个dataTable,里边大体就这样,不知道哪里出了问题
<h:dataTable value="#{bookInfoList.currentUserList}" var="bookInfo" border="1">
<h:column>
<f:facet name="header">
<h:outputLabel value="会议室" />
</f:facet>
<h:outputLabel id="cr_name" value="#{bookInfo.bkCrName}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputLabel value="操作" />
</f:facet>
<h:commandLink id="delete" value="删除" action="#{bookInfoList.delete}">
<f:param name="id_del" value="#{bookInfo.bkId}"></f:param>

肯定是你写的代码就问题呀,把你的代码发上来
_______________________________________________
在你的bookInfoList.delete方法加入断点,请确认你的方法中的代码都执行了吗?如果执行了,看看是哪些步骤被跳过了没有。
再有看看你的bookInfo.bkId参数到底传过去了没有?
______________________________________________
public ArrayList getList() 方法不用那么麻烦,
直接这样写就可以了:
public ArrayList getList() {
FindBookInfo fbi = new FindBookInfo();
List results = fbi.findCurrentUserBookInfo();

return results;
}
___________________________________________
如果点删除后不执行操作,有可能是你的前台页面有错误,请在前台页面中加入
<h:messages />以显示错误.

————————————————————————
请使用试试:
<h:commandLink id="delete" value="删除" action="#{bookInfoList.delete}" immediate="true">
再有message显示的错误不全
请用<h:messages />试试看