我有一个带有动作链接和复选框的表格表的apache点击页面。表也有分页器。一旦用户通过选择复选框从表中选择一些条目,他就可以通过选择表单上的提交按钮来执行操作。但是当用户从一个表页移动到另一个表页时,复选框不会保留其状态。我尝试在静态arraylist中保存选定的条目,但它没有填充。
答案 0 :(得分:0)
Click是一个无状态框架。引用the documentation:
Click不会自动保存和恢复控制状态。 相反,国家储蓄和恢复是完全控制的 开发人员通过公共API。
正如您在Stateful接口的doc中所看到的,有几个控件实现了该合同,并使用"Search Table Page" example作为参考,您可以实现您的用例。
H个,
吉尔伯托
答案 1 :(得分:0)
请尝试以下步骤:
1.在java页面上创建一个隐藏字段。将其添加到表单中
2.点击每个复选框,使用javascript函数设置hiddenfield的值
3.添加虚拟表单到您的htm页面与虚拟隐藏提交。像
<form name="dummyForm" action="" method="POST" >
<input type="hidden" name="dummyHiddenCBSelected" value="" />
</form>
4。在java页面表上分页链接调用javascript函数提交上面的虚拟表单。 例如: table.getControlLink()。setAttribute(“onclick”,“tableAction(this); return false;”);
和javascript函数如:
function tableAction(_anchorObj) {
var linkHref;
linkHref = _anchorObj.getAttribute("href");
//Set the value in hidden field
var hiddenCBSelected = document.getElementById('your hiddenfield');
document.getElementsByName("dummyHiddenCBSelected")[0].value = hiddenCBSelected.value;
//Set the form href and submit form
document.getElementsByName('dummyForm')[0].action = linkHref;
document.getElementsByName('dummyForm')[0].submit();
}