jsf+hibernate开发小项目杂谈(二)

本文介绍如何在JSF应用中实现全选批量提交功能,包括在前端使用JavaScript配合HTML元素实现全选效果,以及在后端Java代码中处理被选中的记录。此外,还介绍了如何添加删除确认提示来提高数据安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二、全选批量提交及删除确认
    1. 全选和批量提交。首先,在javabean里增加一个checked的成员变量(private boolean checked;)表示是否被选中。
    然后,在浏览页面上,字段标题前增加一个复选框,在记录每一行前面增加一个复选款,这样就可以使用javascript实现“全选/取消”的功能。

    - 在字段标题上增加“全选”复选框(点击全选中或取消选中)
    <h:column>
        <f:facet name="header">
            <h:panelGroup>
                <h:outputText value="全选"></h:outputText>
                <h:selectBooleanCheckbox id="selectall" onclick="SetCheckedStatus()"></h:selectBooleanCheckbox>
            </h:panelGroup>
        </f:facet>
        <h:selectBooleanCheckbox value="#{obj.checked}"></h:selectBooleanCheckbox>
    </h:column>
    注意:复选款与checked属性对应起来,若checked=true时则复选框为显示选中状态,同时页面提交时会将客户端的复选框值传给该bean的checked属性。

    - javascript代码(IE6上测试通过,其它浏览器可能需要酌情修改)
    function SetCheckedStatus()
    {
        // 注意此处的id要与h:form, h:dataTable, h:selectBooleanCheckbox中的id保持一致!
        var oTable=document.all['fors:data'];
        var oChkAll=document.all['fors:data:selectall']
        if(oTable != null && oChkAll != null) {
            for(j=1;j<oTable.rows.length;j++) {
                oTable.rows(j).cells(0).children.item(0).checked=oChkAll.checked;
            }
        }
    }

    - 在java代码获取哪些记录已经被选中
    // 获取前台复选框的取值,遍历处理
    List list = (List) dataModel.getWrappedData();
    for (int i = 0; i < list.size(); i++) {
        DoubtCustBean obj = (DoubtCustBean) list.get(i);

        if (obj.checked) {
            // ... 该行记录被选中,进行处理
        }
    }
   
    对于批量操作,可以使用Hibernate中的批量提交进行性能上的优化。

    2. 删除提示
    出于数据安全性考虑,当用户点击删除时,应予以提示确认,添加一小段javascript代码即可。下面给出一个示例:
    <h:commandLink action="#{doubtCustBean.deleteAction}"
        onclick="if(!confirm('确认要删除该条记录吗?')) return false;">
        <h:outputText value="删除"></h:outputText>
        <f:param name="ctserial" value="#{obj.ctserial}"></f:param>
    </h:commandLink> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值